45 lines · plain
1; NVPTX customizes the list of passes so the test cannot find what it expects2; XFAIL: target=nvptx{{.*}}3 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-AFTER7; STOP-AFTER: -loop-reduce8; STOP-AFTER: Dominator Tree Construction9; STOP-AFTER: Loop Strength Reduction10; STOP-AFTER-NEXT: Verify generated machine code11; STOP-AFTER-NEXT: Lazy Machine Block Frequency Analysis12; STOP-AFTER-NEXT: Machine Optimization Remark Emitter13; STOP-AFTER-NEXT: Stack Frame Layout Analysis14; STOP-AFTER-NEXT: MIR Printing Pass15 16; RUN: llc < %s -debug-pass=Structure -stop-before=loop-reduce -o /dev/null 2>&1 | FileCheck %s -check-prefix=STOP-BEFORE17; STOP-BEFORE-NOT: -loop-reduce18; STOP-BEFORE: Dominator Tree Construction19; STOP-BEFORE-NOT: Loop Strength Reduction20 21; RUN: llc < %s -debug-pass=Structure -start-after=loop-reduce -o /dev/null 2>&1 | FileCheck %s -check-prefix=START-AFTER22; START-AFTER: -aa -mergeicmps23; START-AFTER: FunctionPass Manager24; START-AFTER-NEXT: Dominator Tree Construction25 26; RUN: llc < %s -debug-pass=Structure -start-before=loop-reduce -o /dev/null 2>&1 | FileCheck %s -check-prefix=START-BEFORE27; START-BEFORE: -machine-branch-prob -regalloc-evict -regalloc-priority -domtree28; START-BEFORE: FunctionPass Manager29; START-BEFORE: Loop Strength Reduction30; START-BEFORE-NEXT: {{Loop Terminator Folding|Basic Alias Analysis \(stateless AA impl\)}}31 32; RUN: not llc < %s -start-before=nonexistent -o /dev/null 2>&1 | FileCheck %s -check-prefix=NONEXISTENT-START-BEFORE33; RUN: not llc < %s -stop-before=nonexistent -o /dev/null 2>&1 | FileCheck %s -check-prefix=NONEXISTENT-STOP-BEFORE34; RUN: not llc < %s -start-after=nonexistent -o /dev/null 2>&1 | FileCheck %s -check-prefix=NONEXISTENT-START-AFTER35; RUN: not llc < %s -stop-after=nonexistent -o /dev/null 2>&1 | FileCheck %s -check-prefix=NONEXISTENT-STOP-AFTER36; 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.40 41; RUN: not llc < %s -start-before=loop-reduce -start-after=loop-reduce -o /dev/null 2>&1 | FileCheck %s -check-prefix=DOUBLE-START42; RUN: not llc < %s -stop-before=loop-reduce -stop-after=loop-reduce -o /dev/null 2>&1 | FileCheck %s -check-prefix=DOUBLE-STOP43; DOUBLE-START: start-before and start-after specified!44; DOUBLE-STOP: stop-before and stop-after specified!45