67 lines · plain
1; Basic ThinLTO tests.2; RUN: rm -rf %t && mkdir %t && cd %t3; RUN: mkdir d e4 5; RUN: opt -module-summary %s -o a.o6; RUN: opt -module-summary %p/Inputs/thinlto.ll -o d/b.o7 8; First force single-threaded mode9; RUN: rm -f out.lto.a.o d/out.lto.b.o10; RUN: wasm-ld -r -save-temps --thinlto-jobs=1 a.o d/b.o -o e/out11; RUN: llvm-nm out.lto.a.o | FileCheck %s --check-prefix=NM112; RUN: llvm-nm d/out.lto.b.o | FileCheck %s --check-prefix=NM213 14; Next force multi-threaded mode15; RUN: rm -f out.lto.a.o d/out.lto.b.o16; RUN: wasm-ld -r -save-temps --thinlto-jobs=2 a.o d/b.o -o e/out17; RUN: llvm-nm out.lto.a.o | FileCheck %s --check-prefix=NM118; RUN: llvm-nm d/out.lto.b.o | FileCheck %s --check-prefix=NM219 20;; --thinlto-jobs= defaults to --threads=.21; RUN: rm -f out.lto.a.o d/out.lto.b.o22; RUN: wasm-ld -r -save-temps --threads=2 a.o d/b.o -o e/out23; RUN: llvm-nm out.lto.a.o | FileCheck %s --check-prefix=NM124; RUN: llvm-nm d/out.lto.b.o | FileCheck %s --check-prefix=NM225 26;; --thinlto-jobs= overrides --threads=.27; RUN: rm -f out.lto.a.o d/out.lto.b.o28; RUN: wasm-ld -r -save-temps --threads=1 --thinlto-jobs=2 a.o d/b.o -o e/out29; RUN: llvm-nm out.lto.a.o | FileCheck %s --check-prefix=NM130; RUN: llvm-nm d/out.lto.b.o | FileCheck %s --check-prefix=NM231 32; Test with all threads, on all cores, on all CPU sockets33; RUN: rm -f out.lto.a.o d/out.lto.b.o34; RUN: wasm-ld -r -save-temps --thinlto-jobs=all a.o d/b.o -o e/out35; RUN: llvm-nm out.lto.a.o | FileCheck %s --check-prefix=NM136; RUN: llvm-nm d/out.lto.b.o | FileCheck %s --check-prefix=NM237 38; Test with many more threads than the system has39; RUN: rm -f out.lto.a.o d/out.lto.b.o40; RUN: wasm-ld -r -save-temps --thinlto-jobs=100 a.o d/b.o -o e/out41; RUN: llvm-nm out.lto.a.o | FileCheck %s --check-prefix=NM142; RUN: llvm-nm d/out.lto.b.o | FileCheck %s --check-prefix=NM243 44; Test with a bad value45; RUN: rm -f out.lto.a.o d/out.lto.b.o46; 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-JOBS47; BAD-JOBS: error: --thinlto-jobs: invalid job count: foo48 49; Check without --thinlto-jobs (which currently defaults to heavyweight_hardware_concurrency, meanning one thread per hardware core -- not SMT)50; RUN: rm -f out.lto.a.o d/out.lto.b.o51; RUN: wasm-ld -r -save-temps a.o d/b.o -o e/out52; RUN: llvm-nm out.lto.a.o | FileCheck %s --check-prefix=NM153; RUN: llvm-nm d/out.lto.b.o | FileCheck %s --check-prefix=NM254 55; NM1: T f56; NM2: T g57 58target triple = "wasm32-unknown-unknown"59 60declare void @g(...)61 62define void @f() {63entry:64 call void (...) @g()65 ret void66}67