1 | // REQUIRES: x86-registered-target |
2 | |
3 | // RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -emit-llvm-bc -o /dev/null -fexperimental-new-pass-manager -fdebug-pass-manager -flto=full -O0 %s 2>&1 | FileCheck %s \ |
4 | // RUN: -check-prefix=CHECK-FULL-O0 |
5 | // RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -emit-llvm-bc -o /dev/null -fexperimental-new-pass-manager -fdebug-pass-manager -flto=thin -O0 %s 2>&1 | FileCheck %s \ |
6 | // RUN: -check-prefix=CHECK-THIN-O0 |
7 | // RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -emit-llvm-bc -o /dev/null -fexperimental-new-pass-manager -fdebug-pass-manager -flto=full -O1 %s 2>&1 | FileCheck %s \ |
8 | // RUN: -check-prefix=CHECK-FULL-OPTIMIZED |
9 | // RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -emit-llvm-bc -o /dev/null -fexperimental-new-pass-manager -fdebug-pass-manager -flto=thin -O1 %s 2>&1 | FileCheck %s \ |
10 | // RUN: -check-prefix=CHECK-THIN-OPTIMIZED |
11 | // RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -emit-llvm-bc -o /dev/null -fexperimental-new-pass-manager -fdebug-pass-manager -flto=full -O2 %s 2>&1 | FileCheck %s \ |
12 | // RUN: -check-prefix=CHECK-FULL-OPTIMIZED |
13 | // RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -emit-llvm-bc -o /dev/null -fexperimental-new-pass-manager -fdebug-pass-manager -flto=thin -O2 %s 2>&1 | FileCheck %s \ |
14 | // RUN: -check-prefix=CHECK-THIN-OPTIMIZED |
15 | // RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -emit-llvm-bc -o /dev/null -fexperimental-new-pass-manager -fdebug-pass-manager -flto=full -O3 %s 2>&1 | FileCheck %s \ |
16 | // RUN: -check-prefix=CHECK-FULL-OPTIMIZED |
17 | // RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -emit-llvm-bc -o /dev/null -fexperimental-new-pass-manager -fdebug-pass-manager -flto=thin -O3 %s 2>&1 | FileCheck %s \ |
18 | // RUN: -check-prefix=CHECK-THIN-OPTIMIZED |
19 | // RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -emit-llvm-bc -o /dev/null -fexperimental-new-pass-manager -fdebug-pass-manager -flto=full -Os %s 2>&1 | FileCheck %s \ |
20 | // RUN: -check-prefix=CHECK-FULL-OPTIMIZED |
21 | // RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -emit-llvm-bc -o /dev/null -fexperimental-new-pass-manager -fdebug-pass-manager -flto=thin -Os %s 2>&1 | FileCheck %s \ |
22 | // RUN: -check-prefix=CHECK-THIN-OPTIMIZED |
23 | // RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -emit-llvm-bc -o /dev/null -fexperimental-new-pass-manager -fdebug-pass-manager -flto=full -Oz %s 2>&1 | FileCheck %s \ |
24 | // RUN: -check-prefix=CHECK-FULL-OPTIMIZED |
25 | // RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -emit-llvm-bc -o /dev/null -fexperimental-new-pass-manager -fdebug-pass-manager -flto=thin -Oz %s 2>&1 | FileCheck %s \ |
26 | // RUN: -check-prefix=CHECK-THIN-OPTIMIZED |
27 | |
28 | // CHECK-FULL-O0: Starting llvm::Module pass manager run. |
29 | // CHECK-FULL-O0: Running pass: AlwaysInlinerPass |
30 | // CHECK-FULL-O0-NEXT: Running pass: CanonicalizeAliasesPass |
31 | // CHECK-FULL-O0-NEXT: Running pass: NameAnonGlobalPass |
32 | // CHECK-FULL-O0-NEXT: Running pass: BitcodeWriterPass |
33 | // CHECK-FULL-O0: Finished llvm::Module pass manager run. |
34 | |
35 | // CHECK-THIN-O0: Starting llvm::Module pass manager run. |
36 | // CHECK-THIN-O0: Running pass: AlwaysInlinerPass |
37 | // CHECK-THIN-O0-NEXT: Running pass: CanonicalizeAliasesPass |
38 | // CHECK-THIN-O0-NEXT: Running pass: NameAnonGlobalPass |
39 | // CHECK-THIN-O0-NEXT: Running pass: ThinLTOBitcodeWriterPass |
40 | // CHECK-THIN-O0: Finished llvm::Module pass manager run. |
41 | |
42 | // TODO: The LTO pre-link pipeline currently invokes |
43 | // buildPerModuleDefaultPipeline(), which contains LoopVectorizePass. |
44 | // This may change as the pipeline gets implemented. |
45 | // CHECK-FULL-OPTIMIZED: Starting llvm::Function pass manager run. |
46 | // CHECK-FULL-OPTIMIZED: Running pass: LoopVectorizePass |
47 | // CHECK-FULL-OPTIMIZED: Running pass: BitcodeWriterPass |
48 | |
49 | // The ThinLTO pre-link pipeline shouldn't contain passes like |
50 | // LoopVectorizePass. |
51 | // CHECK-THIN-OPTIMIZED: Starting llvm::Function pass manager run. |
52 | // CHECK-THIN-OPTIMIZED-NOT: Running pass: LoopVectorizePass |
53 | // CHECK-THIN-OPTIMIZED: Running pass: CanonicalizeAliasesPass |
54 | // CHECK-THIN-OPTIMIZED: Running pass: NameAnonGlobalPass |
55 | // CHECK-THIN-OPTIMIZED: Running pass: ThinLTOBitcodeWriterPass |
56 | |
57 | void Foo() {} |
58 | |