Bump version to 19.1.0-rc3
[llvm-project.git] / llvm / test / ThinLTO / X86 / emit_imports.ll
blobb1e5b4e577721ced3fc0f11bcb8a87eb5c701490
1 ; RUN: opt -module-summary %s -o %t1.bc
2 ; RUN: opt -module-summary %p/Inputs/emit_imports.ll -o %t2.bc
3 ; RUN: opt -module-summary %p/Inputs/emit_imports2.ll -o %t2b.bc
4 ; Include a file with an empty module summary index, to ensure that the expected
5 ; output files are created regardless, for a distributed build system.
6 ; RUN: opt -module-summary %p/Inputs/empty.ll -o %t3.bc
7 ; RUN: rm -f %t3.bc.imports
8 ; RUN: llvm-lto -thinlto-action=thinlink -o %t.index.bc %t1.bc %t2.bc %t2b.bc %t3.bc
9 ; RUN: llvm-lto -thinlto-action=emitimports -thinlto-index %t.index.bc %t1.bc %t2.bc %t2b.bc %t3.bc
11 ; The imports file for this module contains the bitcode file for
12 ; Inputs/emit_imports.ll
13 ; RUN: cat %t1.bc.imports | count 2
14 ; RUN: cat %t1.bc.imports | FileCheck %s --check-prefix=IMPORTS1
15 ; IMPORTS1: emit_imports.ll.tmp2.bc
16 ; IMPORTS1: emit_imports.ll.tmp2b.bc
18 ; The imports file for Input/emit_imports.ll is empty as it does not import anything.
19 ; RUN: cat %t2.bc.imports | count 0
21 ; The imports file for Input/empty.ll is empty but should exist.
22 ; RUN: cat %t3.bc.imports | count 0
24 ; RUN: rm -f %t1.thinlto.bc %t1.bc.imports
25 ; RUN: rm -f %t2.thinlto.bc %t2.bc.imports
26 ; RUN: rm -f %t3.bc.thinlto.bc %t3.bc.imports
27 ; RUN: llvm-lto2 run %t1.bc %t2.bc %t2b.bc %t3.bc -o %t.o -save-temps \
28 ; RUN:     -thinlto-distributed-indexes \
29 ; RUN:     -r=%t1.bc,g, \
30 ; RUN:     -r=%t1.bc,h, \
31 ; RUN:     -r=%t1.bc,f,px \
32 ; RUN:     -r=%t2.bc,g,px \
33 ; RUN:     -r=%t2b.bc,h,px
35 ; Ensure imports weren't generated since -thinlto-emit-imports wasn't specified
36 ; RUN: not ls %t1.bc.imports
37 ; RUN: not ls %t2.bc.imports
38 ; RUN: not ls %t3.bc.imports
40 ; RUN: llvm-lto2 run %t1.bc %t2.bc %t2b.bc %t3.bc -o %t.o -save-temps \
41 ; RUN:     -thinlto-distributed-indexes \
42 ; RUN:     -thinlto-emit-imports \
43 ; RUN:     -r=%t1.bc,g, \
44 ; RUN:     -r=%t1.bc,h, \
45 ; RUN:     -r=%t1.bc,f,px \
46 ; RUN:     -r=%t2.bc,g,px \
47 ; RUN:     -r=%t2b.bc,h,px
49 ; RUN: cat %t1.bc.imports | count 2
50 ; RUN: cat %t1.bc.imports | FileCheck %s --check-prefix=IMPORTS1
52 ; The imports file for Input/emit_imports.ll is empty as it does not import anything.
53 ; RUN: cat %t2.bc.imports | count 0
55 ; The imports file for Input/empty.ll is empty but should exist.
56 ; RUN: cat %t3.bc.imports | count 0
58 ; The index file should be created even for the input with an empty summary.
59 ; RUN: ls %t3.bc.thinlto.bc
61 target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
62 target triple = "x86_64-unknown-linux-gnu"
64 declare void @g(...)
65 declare void @h(...)
67 define void @f() {
68 entry:
69   call void (...) @g()
70   call void (...) @h()
71   ret void