1 ; NVPTX customizes the list of passes so the test cannot find what it expects
2 ; XFAIL: target=nvptx{{.*}}
4 ; Note: -verify-machineinstrs is used in order to make this test compatible with EXPENSIVE_CHECKS.
5 ; RUN: llc < %s -debug-pass=Structure -stop-after=loop-reduce -verify-machineinstrs -o /dev/null 2>&1 \
6 ; RUN: | FileCheck %s -check-prefix=STOP-AFTER
7 ; STOP-AFTER: -loop-reduce
8 ; STOP-AFTER: Dominator Tree Construction
9 ; STOP-AFTER: Loop Strength Reduction
10 ; STOP-AFTER-NEXT: Verify generated machine code
11 ; STOP-AFTER-NEXT: Lazy Machine Block Frequency Analysis
12 ; STOP-AFTER-NEXT: Machine Optimization Remark Emitter
13 ; STOP-AFTER-NEXT: Stack Frame Layout Analysis
14 ; STOP-AFTER-NEXT: MIR Printing Pass
16 ; RUN: llc < %s -debug-pass=Structure -stop-before=loop-reduce -o /dev/null 2>&1 | FileCheck %s -check-prefix=STOP-BEFORE
17 ; STOP-BEFORE-NOT: -loop-reduce
18 ; STOP-BEFORE: Dominator Tree Construction
19 ; STOP-BEFORE-NOT: Loop Strength Reduction
21 ; RUN: llc < %s -debug-pass=Structure -start-after=loop-reduce -o /dev/null 2>&1 | FileCheck %s -check-prefix=START-AFTER
22 ; START-AFTER: -aa -mergeicmps
23 ; START-AFTER: FunctionPass Manager
24 ; START-AFTER-NEXT: Dominator Tree Construction
26 ; RUN: llc < %s -debug-pass=Structure -start-before=loop-reduce -o /dev/null 2>&1 | FileCheck %s -check-prefix=START-BEFORE
27 ; START-BEFORE: -machine-branch-prob -regalloc-evict -regalloc-priority -domtree
28 ; START-BEFORE: FunctionPass Manager
29 ; START-BEFORE: Loop Strength Reduction
30 ; START-BEFORE-NEXT: Basic Alias Analysis (stateless AA impl)
32 ; RUN: not --crash llc < %s -start-before=nonexistent -o /dev/null 2>&1 | FileCheck %s -check-prefix=NONEXISTENT-START-BEFORE
33 ; RUN: not --crash llc < %s -stop-before=nonexistent -o /dev/null 2>&1 | FileCheck %s -check-prefix=NONEXISTENT-STOP-BEFORE
34 ; RUN: not --crash llc < %s -start-after=nonexistent -o /dev/null 2>&1 | FileCheck %s -check-prefix=NONEXISTENT-START-AFTER
35 ; RUN: not --crash llc < %s -stop-after=nonexistent -o /dev/null 2>&1 | FileCheck %s -check-prefix=NONEXISTENT-STOP-AFTER
36 ; NONEXISTENT-START-BEFORE: "nonexistent" pass is not registered.
37 ; NONEXISTENT-STOP-BEFORE: "nonexistent" pass is not registered.
38 ; NONEXISTENT-START-AFTER: "nonexistent" pass is not registered.
39 ; NONEXISTENT-STOP-AFTER: "nonexistent" pass is not registered.
41 ; RUN: not --crash llc < %s -start-before=loop-reduce -start-after=loop-reduce -o /dev/null 2>&1 | FileCheck %s -check-prefix=DOUBLE-START
42 ; RUN: not --crash llc < %s -stop-before=loop-reduce -stop-after=loop-reduce -o /dev/null 2>&1 | FileCheck %s -check-prefix=DOUBLE-STOP
43 ; DOUBLE-START: start-before and start-after specified!
44 ; DOUBLE-STOP: stop-before and stop-after specified!