[SystemZ] Fix trap issue and enable expensive checks.
The isBarrier/isTerminator flags have been removed from the SystemZ trap
instructions, so that tests do not fail with EXPENSIVE_CHECKS. This was just
an issue at -O0 and did not affect code output on benchmarks.
(Like Eli pointed out: "targets are split over whether they consider their
"trap" a terminator; x86, AArch64, and NVPTX don't, but ARM, MIPS, PPC, and
SystemZ do. We should probably try to be consistent here.". This is still the
case, although SystemZ has switched sides).
SystemZ now returns true in isMachineVerifierClean() :-)
These Generic tests have been modified so that they can be run with or without
EXPENSIVE_CHECKS: CodeGen/Generic/llc-start-stop.ll and
CodeGen/Generic/print-machineinstrs.ll
Review: Ulrich Weigand, Simon Pilgrim, Eli Friedman
https://bugs.llvm.org/show_bug.cgi?id=33047
https://reviews.llvm.org/D34143
llvm-svn: 306106
2017-06-23 22:30:46 +08:00
|
|
|
; Note: -verify-machineinstrs is used in order to make this test compatible with EXPENSIVE_CHECKS.
|
|
|
|
; RUN: llc < %s -debug-pass=Structure -stop-after=loop-reduce -verify-machineinstrs -o /dev/null 2>&1 \
|
|
|
|
; RUN: | FileCheck %s -check-prefix=STOP-AFTER
|
2016-09-24 05:46:02 +08:00
|
|
|
; STOP-AFTER: -loop-reduce
|
|
|
|
; STOP-AFTER: Dominator Tree Construction
|
|
|
|
; STOP-AFTER: Loop Strength Reduction
|
[SystemZ] Fix trap issue and enable expensive checks.
The isBarrier/isTerminator flags have been removed from the SystemZ trap
instructions, so that tests do not fail with EXPENSIVE_CHECKS. This was just
an issue at -O0 and did not affect code output on benchmarks.
(Like Eli pointed out: "targets are split over whether they consider their
"trap" a terminator; x86, AArch64, and NVPTX don't, but ARM, MIPS, PPC, and
SystemZ do. We should probably try to be consistent here.". This is still the
case, although SystemZ has switched sides).
SystemZ now returns true in isMachineVerifierClean() :-)
These Generic tests have been modified so that they can be run with or without
EXPENSIVE_CHECKS: CodeGen/Generic/llc-start-stop.ll and
CodeGen/Generic/print-machineinstrs.ll
Review: Ulrich Weigand, Simon Pilgrim, Eli Friedman
https://bugs.llvm.org/show_bug.cgi?id=33047
https://reviews.llvm.org/D34143
llvm-svn: 306106
2017-06-23 22:30:46 +08:00
|
|
|
; STOP-AFTER-NEXT: Verify generated machine code
|
2016-09-24 05:46:02 +08:00
|
|
|
; STOP-AFTER-NEXT: MIR Printing Pass
|
|
|
|
|
|
|
|
; RUN: llc < %s -debug-pass=Structure -stop-before=loop-reduce -o /dev/null 2>&1 | FileCheck %s -check-prefix=STOP-BEFORE
|
|
|
|
; STOP-BEFORE-NOT: -loop-reduce
|
|
|
|
; STOP-BEFORE: Dominator Tree Construction
|
|
|
|
; STOP-BEFORE-NOT: Loop Strength Reduction
|
|
|
|
|
|
|
|
; RUN: llc < %s -debug-pass=Structure -start-after=loop-reduce -o /dev/null 2>&1 | FileCheck %s -check-prefix=START-AFTER
|
2019-09-10 18:39:09 +08:00
|
|
|
; START-AFTER: -aa -mergeicmps
|
2016-09-24 05:46:02 +08:00
|
|
|
; START-AFTER: FunctionPass Manager
|
2019-09-10 18:39:09 +08:00
|
|
|
; START-AFTER-NEXT: Dominator Tree Construction
|
2016-09-24 05:46:02 +08:00
|
|
|
|
|
|
|
; RUN: llc < %s -debug-pass=Structure -start-before=loop-reduce -o /dev/null 2>&1 | FileCheck %s -check-prefix=START-BEFORE
|
2017-06-06 08:26:13 +08:00
|
|
|
; START-BEFORE: -machine-branch-prob -domtree
|
2016-09-24 05:46:02 +08:00
|
|
|
; START-BEFORE: FunctionPass Manager
|
|
|
|
; START-BEFORE: Loop Strength Reduction
|
2019-09-10 18:39:09 +08:00
|
|
|
; START-BEFORE-NEXT: Basic Alias Analysis (stateless AA impl)
|
2016-09-24 05:46:02 +08:00
|
|
|
|
2020-02-12 15:01:35 +08:00
|
|
|
; RUN: not --crash llc < %s -start-before=nonexistent -o /dev/null 2>&1 | FileCheck %s -check-prefix=NONEXISTENT-START-BEFORE
|
|
|
|
; RUN: not --crash llc < %s -stop-before=nonexistent -o /dev/null 2>&1 | FileCheck %s -check-prefix=NONEXISTENT-STOP-BEFORE
|
|
|
|
; RUN: not --crash llc < %s -start-after=nonexistent -o /dev/null 2>&1 | FileCheck %s -check-prefix=NONEXISTENT-START-AFTER
|
|
|
|
; RUN: not --crash llc < %s -stop-after=nonexistent -o /dev/null 2>&1 | FileCheck %s -check-prefix=NONEXISTENT-STOP-AFTER
|
2017-08-01 02:24:07 +08:00
|
|
|
; NONEXISTENT-START-BEFORE: "nonexistent" pass is not registered.
|
|
|
|
; NONEXISTENT-STOP-BEFORE: "nonexistent" pass is not registered.
|
|
|
|
; NONEXISTENT-START-AFTER: "nonexistent" pass is not registered.
|
|
|
|
; NONEXISTENT-STOP-AFTER: "nonexistent" pass is not registered.
|
2016-09-24 05:46:02 +08:00
|
|
|
|
2020-02-12 15:01:35 +08:00
|
|
|
; RUN: not --crash llc < %s -start-before=loop-reduce -start-after=loop-reduce -o /dev/null 2>&1 | FileCheck %s -check-prefix=DOUBLE-START
|
|
|
|
; RUN: not --crash llc < %s -stop-before=loop-reduce -stop-after=loop-reduce -o /dev/null 2>&1 | FileCheck %s -check-prefix=DOUBLE-STOP
|
2017-08-01 02:24:07 +08:00
|
|
|
; DOUBLE-START: start-before and start-after specified!
|
|
|
|
; DOUBLE-STOP: stop-before and stop-after specified!
|