Mercurial > hg > CbC > CbC_llvm
comparison llvm/test/Feature/optnone-opt.ll @ 150:1d019706d866
LLVM10
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 15:10:13 +0900 |
parents | |
children | 2e18cbf3894f |
comparison
equal
deleted
inserted
replaced
147:c2174574ed3a | 150:1d019706d866 |
---|---|
1 ; RUN: opt -S -debug %s 2>&1 | FileCheck %s --check-prefix=OPT-O0 | |
2 ; RUN: opt -O1 -S -debug %s 2>&1 | FileCheck %s --check-prefix=OPT-O1 | |
3 ; RUN: opt -O2 -S -debug %s 2>&1 | FileCheck %s --check-prefix=OPT-O1 --check-prefix=OPT-O2O3 | |
4 ; RUN: opt -O3 -S -debug %s 2>&1 | FileCheck %s --check-prefix=OPT-O1 --check-prefix=OPT-O2O3 | |
5 ; RUN: opt -dce -die -gvn-hoist -loweratomic -S -debug %s 2>&1 | FileCheck %s --check-prefix=OPT-MORE | |
6 ; RUN: opt -indvars -licm -loop-deletion -loop-extract -loop-idiom -loop-instsimplify -loop-reduce -loop-reroll -loop-rotate -loop-unroll -loop-unswitch -S -debug %s 2>&1 | FileCheck %s --check-prefix=OPT-LOOP | |
7 | |
8 ; REQUIRES: asserts | |
9 | |
10 ; This test verifies that we don't run target independent IR-level | |
11 ; optimizations on optnone functions. | |
12 | |
13 ; Function Attrs: noinline optnone | |
14 define i32 @_Z3fooi(i32 %x) #0 { | |
15 entry: | |
16 %x.addr = alloca i32, align 4 | |
17 store i32 %x, i32* %x.addr, align 4 | |
18 br label %while.cond | |
19 | |
20 while.cond: ; preds = %while.body, %entry | |
21 %0 = load i32, i32* %x.addr, align 4 | |
22 %dec = add nsw i32 %0, -1 | |
23 store i32 %dec, i32* %x.addr, align 4 | |
24 %tobool = icmp ne i32 %0, 0 | |
25 br i1 %tobool, label %while.body, label %while.end | |
26 | |
27 while.body: ; preds = %while.cond | |
28 br label %while.cond | |
29 | |
30 while.end: ; preds = %while.cond | |
31 ret i32 0 | |
32 } | |
33 | |
34 attributes #0 = { optnone noinline } | |
35 | |
36 ; Nothing that runs at -O0 gets skipped. | |
37 ; OPT-O0-NOT: Skipping pass | |
38 | |
39 ; IR passes run at -O1 and higher. | |
40 ; OPT-O1-DAG: Skipping pass 'Aggressive Dead Code Elimination' | |
41 ; OPT-O1-DAG: Skipping pass 'Combine redundant instructions' | |
42 ; OPT-O1-DAG: Skipping pass 'Early CSE' | |
43 ; OPT-O1-DAG: Skipping pass 'Reassociate expressions' | |
44 ; OPT-O1-DAG: Skipping pass 'Simplify the CFG' | |
45 ; OPT-O1-DAG: Skipping pass 'Sparse Conditional Constant Propagation' | |
46 | |
47 ; Additional IR passes run at -O2 and higher. | |
48 ; OPT-O2O3-DAG: Skipping pass 'Global Value Numbering' | |
49 ; OPT-O2O3-DAG: Skipping pass 'SLP Vectorizer' | |
50 | |
51 ; Additional IR passes that opt doesn't turn on by default. | |
52 ; OPT-MORE-DAG: Skipping pass 'Dead Code Elimination' | |
53 ; OPT-MORE-DAG: Skipping pass 'Dead Instruction Elimination' | |
54 | |
55 ; Loop IR passes that opt doesn't turn on by default. | |
56 ; OPT-LOOP-DAG: Skipping pass 'Delete dead loops' | |
57 ; OPT-LOOP-DAG: Skipping pass 'Induction Variable Simplification' | |
58 ; OPT-LOOP-DAG: Skipping pass 'Loop Invariant Code Motion' | |
59 ; OPT-LOOP-DAG: Skipping pass 'Loop Strength Reduction' | |
60 ; OPT-LOOP-DAG: Skipping pass 'Recognize loop idioms' | |
61 ; OPT-LOOP-DAG: Skipping pass 'Reroll loops' | |
62 ; OPT-LOOP-DAG: Skipping pass 'Rotate Loops' | |
63 ; OPT-LOOP-DAG: Skipping pass 'Simplify instructions in loops' | |
64 ; OPT-LOOP-DAG: Skipping pass 'Unroll loops' | |
65 ; OPT-LOOP-DAG: Skipping pass 'Unswitch loops' |