1; NVPTX customizes the list of passes so the test cannot find what it expects 2; XFAIL: 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-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: MIR Printing Pass 12 13; RUN: llc < %s -debug-pass=Structure -stop-before=loop-reduce -o /dev/null 2>&1 | FileCheck %s -check-prefix=STOP-BEFORE 14; STOP-BEFORE-NOT: -loop-reduce 15; STOP-BEFORE: Dominator Tree Construction 16; STOP-BEFORE-NOT: Loop Strength Reduction 17 18; RUN: llc < %s -debug-pass=Structure -start-after=loop-reduce -o /dev/null 2>&1 | FileCheck %s -check-prefix=START-AFTER 19; START-AFTER: -aa -mergeicmps 20; START-AFTER: FunctionPass Manager 21; START-AFTER-NEXT: Dominator Tree Construction 22 23; RUN: llc < %s -debug-pass=Structure -start-before=loop-reduce -o /dev/null 2>&1 | FileCheck %s -check-prefix=START-BEFORE 24; START-BEFORE: -machine-branch-prob -regalloc-evict -domtree 25; START-BEFORE: FunctionPass Manager 26; START-BEFORE: Loop Strength Reduction 27; START-BEFORE-NEXT: Basic Alias Analysis (stateless AA impl) 28 29; RUN: not --crash llc < %s -start-before=nonexistent -o /dev/null 2>&1 | FileCheck %s -check-prefix=NONEXISTENT-START-BEFORE 30; RUN: not --crash llc < %s -stop-before=nonexistent -o /dev/null 2>&1 | FileCheck %s -check-prefix=NONEXISTENT-STOP-BEFORE 31; RUN: not --crash llc < %s -start-after=nonexistent -o /dev/null 2>&1 | FileCheck %s -check-prefix=NONEXISTENT-START-AFTER 32; RUN: not --crash llc < %s -stop-after=nonexistent -o /dev/null 2>&1 | FileCheck %s -check-prefix=NONEXISTENT-STOP-AFTER 33; NONEXISTENT-START-BEFORE: "nonexistent" pass is not registered. 34; NONEXISTENT-STOP-BEFORE: "nonexistent" pass is not registered. 35; NONEXISTENT-START-AFTER: "nonexistent" pass is not registered. 36; NONEXISTENT-STOP-AFTER: "nonexistent" pass is not registered. 37 38; RUN: not --crash llc < %s -start-before=loop-reduce -start-after=loop-reduce -o /dev/null 2>&1 | FileCheck %s -check-prefix=DOUBLE-START 39; RUN: not --crash llc < %s -stop-before=loop-reduce -stop-after=loop-reduce -o /dev/null 2>&1 | FileCheck %s -check-prefix=DOUBLE-STOP 40; DOUBLE-START: start-before and start-after specified! 41; DOUBLE-STOP: stop-before and stop-after specified! 42