|
1 | 1 | ; Basic ThinLTO tests.
|
2 |
| -; RUN: opt -module-summary %s -o %t1.o |
3 |
| -; RUN: opt -module-summary %p/Inputs/thinlto.ll -o %t2.o |
| 2 | +; RUN: rm -rf %t && mkdir %t && cd %t |
| 3 | +; RUN: mkdir d e |
| 4 | + |
| 5 | +; RUN: opt -module-summary %s -o a.o |
| 6 | +; RUN: opt -module-summary %p/Inputs/thinlto.ll -o d/b.o |
4 | 7 |
|
5 | 8 | ; First force single-threaded mode
|
6 |
| -; RUN: rm -f %t31.lto.o %t32.lto.o |
7 |
| -; RUN: wasm-ld -r -save-temps --thinlto-jobs=1 %t1.o %t2.o -o %t3 |
8 |
| -; RUN: llvm-nm %t31.lto.o | FileCheck %s --check-prefix=NM1 |
9 |
| -; RUN: llvm-nm %t32.lto.o | FileCheck %s --check-prefix=NM2 |
| 9 | +; RUN: rm -f out.lto.a.o d/out.lto.b.o |
| 10 | +; RUN: wasm-ld -r -save-temps --thinlto-jobs=1 a.o d/b.o -o e/out |
| 11 | +; RUN: llvm-nm out.lto.a.o | FileCheck %s --check-prefix=NM1 |
| 12 | +; RUN: llvm-nm d/out.lto.b.o | FileCheck %s --check-prefix=NM2 |
10 | 13 |
|
11 | 14 | ; Next force multi-threaded mode
|
12 |
| -; RUN: rm -f %t31.lto.o %t32.lto.o |
13 |
| -; RUN: wasm-ld -r -save-temps --thinlto-jobs=2 %t1.o %t2.o -o %t3 |
14 |
| -; RUN: llvm-nm %t31.lto.o | FileCheck %s --check-prefix=NM1 |
15 |
| -; RUN: llvm-nm %t32.lto.o | FileCheck %s --check-prefix=NM2 |
| 15 | +; RUN: rm -f out.lto.a.o d/out.lto.b.o |
| 16 | +; RUN: wasm-ld -r -save-temps --thinlto-jobs=2 a.o d/b.o -o e/out |
| 17 | +; RUN: llvm-nm out.lto.a.o | FileCheck %s --check-prefix=NM1 |
| 18 | +; RUN: llvm-nm d/out.lto.b.o | FileCheck %s --check-prefix=NM2 |
16 | 19 |
|
17 | 20 | ;; --thinlto-jobs= defaults to --threads=.
|
18 |
| -; RUN: rm -f %t31.lto.o %t32.lto.o |
19 |
| -; RUN: wasm-ld -r -save-temps --threads=2 %t1.o %t2.o -o %t3 |
20 |
| -; RUN: llvm-nm %t31.lto.o | FileCheck %s --check-prefix=NM1 |
21 |
| -; RUN: llvm-nm %t32.lto.o | FileCheck %s --check-prefix=NM2 |
| 21 | +; RUN: rm -f out.lto.a.o d/out.lto.b.o |
| 22 | +; RUN: wasm-ld -r -save-temps --threads=2 a.o d/b.o -o e/out |
| 23 | +; RUN: llvm-nm out.lto.a.o | FileCheck %s --check-prefix=NM1 |
| 24 | +; RUN: llvm-nm d/out.lto.b.o | FileCheck %s --check-prefix=NM2 |
22 | 25 |
|
23 | 26 | ;; --thinlto-jobs= overrides --threads=.
|
24 |
| -; RUN: rm -f %t31.lto.o %t32.lto.o |
25 |
| -; RUN: wasm-ld -r -save-temps --threads=1 --thinlto-jobs=2 %t1.o %t2.o -o %t3 |
26 |
| -; RUN: llvm-nm %t31.lto.o | FileCheck %s --check-prefix=NM1 |
27 |
| -; RUN: llvm-nm %t32.lto.o | FileCheck %s --check-prefix=NM2 |
| 27 | +; RUN: rm -f out.lto.a.o d/out.lto.b.o |
| 28 | +; RUN: wasm-ld -r -save-temps --threads=1 --thinlto-jobs=2 a.o d/b.o -o e/out |
| 29 | +; RUN: llvm-nm out.lto.a.o | FileCheck %s --check-prefix=NM1 |
| 30 | +; RUN: llvm-nm d/out.lto.b.o | FileCheck %s --check-prefix=NM2 |
28 | 31 |
|
29 | 32 | ; Test with all threads, on all cores, on all CPU sockets
|
30 |
| -; RUN: rm -f %t31.lto.o %t32.lto.o |
31 |
| -; RUN: wasm-ld -r -save-temps --thinlto-jobs=all %t1.o %t2.o -o %t3 |
32 |
| -; RUN: llvm-nm %t31.lto.o | FileCheck %s --check-prefix=NM1 |
33 |
| -; RUN: llvm-nm %t32.lto.o | FileCheck %s --check-prefix=NM2 |
| 33 | +; RUN: rm -f out.lto.a.o d/out.lto.b.o |
| 34 | +; RUN: wasm-ld -r -save-temps --thinlto-jobs=all a.o d/b.o -o e/out |
| 35 | +; RUN: llvm-nm out.lto.a.o | FileCheck %s --check-prefix=NM1 |
| 36 | +; RUN: llvm-nm d/out.lto.b.o | FileCheck %s --check-prefix=NM2 |
34 | 37 |
|
35 | 38 | ; Test with many more threads than the system has
|
36 |
| -; RUN: rm -f %t31.lto.o %t32.lto.o |
37 |
| -; RUN: wasm-ld -r -save-temps --thinlto-jobs=100 %t1.o %t2.o -o %t3 |
38 |
| -; RUN: llvm-nm %t31.lto.o | FileCheck %s --check-prefix=NM1 |
39 |
| -; RUN: llvm-nm %t32.lto.o | FileCheck %s --check-prefix=NM2 |
| 39 | +; RUN: rm -f out.lto.a.o d/out.lto.b.o |
| 40 | +; RUN: wasm-ld -r -save-temps --thinlto-jobs=100 a.o d/b.o -o e/out |
| 41 | +; RUN: llvm-nm out.lto.a.o | FileCheck %s --check-prefix=NM1 |
| 42 | +; RUN: llvm-nm d/out.lto.b.o | FileCheck %s --check-prefix=NM2 |
40 | 43 |
|
41 | 44 | ; Test with a bad value
|
42 |
| -; RUN: rm -f %t31.lto.o %t32.lto.o |
43 |
| -; RUN: not wasm-ld -r -save-temps --thinlto-jobs=foo %t1.o %t2.o -o %t3 2>&1 | FileCheck %s --check-prefix=BAD-JOBS |
| 45 | +; RUN: rm -f out.lto.a.o d/out.lto.b.o |
| 46 | +; RUN: not wasm-ld -r -save-temps --thinlto-jobs=foo a.o d/b.o -o e/out 2>&1 | FileCheck %s --check-prefix=BAD-JOBS |
44 | 47 | ; BAD-JOBS: error: --thinlto-jobs: invalid job count: foo
|
45 | 48 |
|
46 | 49 | ; Check without --thinlto-jobs (which currently defaults to heavyweight_hardware_concurrency, meanning one thread per hardware core -- not SMT)
|
47 |
| -; RUN: rm -f %t31.lto.o %t32.lto.o |
48 |
| -; RUN: wasm-ld -r -save-temps %t1.o %t2.o -o %t3 |
49 |
| -; RUN: llvm-nm %t31.lto.o | FileCheck %s --check-prefix=NM1 |
50 |
| -; RUN: llvm-nm %t32.lto.o | FileCheck %s --check-prefix=NM2 |
| 50 | +; RUN: rm -f out.lto.a.o d/out.lto.b.o |
| 51 | +; RUN: wasm-ld -r -save-temps a.o d/b.o -o e/out |
| 52 | +; RUN: llvm-nm out.lto.a.o | FileCheck %s --check-prefix=NM1 |
| 53 | +; RUN: llvm-nm d/out.lto.b.o | FileCheck %s --check-prefix=NM2 |
51 | 54 |
|
52 | 55 | ; NM1: T f
|
53 | 56 | ; NM2: T g
|
|
0 commit comments