summaryrefslogtreecommitdiffstats
path: root/llvm/test/Other/loop-deletion-printer.ll
diff options
context:
space:
mode:
authorFedor Sergeev <fedor.sergeev@azul.com>2018-12-11 19:05:35 +0000
committerFedor Sergeev <fedor.sergeev@azul.com>2018-12-11 19:05:35 +0000
commita1d95c3fc426f1fc54758866d8a0e8718a82a745 (patch)
treeb74bc92ef0ca2ebbd6bee333fde390a3c362635c /llvm/test/Other/loop-deletion-printer.ll
parent8876dac50aafa5a265c1fb1a9d4e38f97b83dfb6 (diff)
downloadbcm5719-llvm-a1d95c3fc426f1fc54758866d8a0e8718a82a745.tar.gz
bcm5719-llvm-a1d95c3fc426f1fc54758866d8a0e8718a82a745.zip
[NewPM] fixing asserts on deleted loop in -print-after-all
IR-printing AfterPass instrumentation might be called on a loop that has just been invalidated. We should skip printing it to avoid spurious asserts. Reviewed By: chandlerc, philip.pfaffe Differential Revision: https://reviews.llvm.org/D54740 llvm-svn: 348887
Diffstat (limited to 'llvm/test/Other/loop-deletion-printer.ll')
-rw-r--r--llvm/test/Other/loop-deletion-printer.ll24
1 files changed, 24 insertions, 0 deletions
diff --git a/llvm/test/Other/loop-deletion-printer.ll b/llvm/test/Other/loop-deletion-printer.ll
new file mode 100644
index 00000000000..d344568506c
--- /dev/null
+++ b/llvm/test/Other/loop-deletion-printer.ll
@@ -0,0 +1,24 @@
+; Make sure that Loop which was invalidated by loop-deletion
+; does not lead to problems for -print-after-all and is just skipped.
+;
+; RUN: opt < %s -disable-output \
+; RUN: -passes=loop-instsimplify -print-after-all 2>&1 | FileCheck %s -check-prefix=SIMPLIFY
+; RUN: opt < %s -disable-output \
+; RUN: -passes=loop-deletion,loop-instsimplify -print-after-all 2>&1 | FileCheck %s -check-prefix=DELETED
+;
+; SIMPLIFY: IR Dump {{.*}} LoopInstSimplifyPass
+; DELETED-NOT: IR Dump {{.*}}LoopInstSimplifyPass
+; DELETED-NOT: IR Dump {{.*}}LoopDeletionPass
+
+define void @deleteme() {
+entry:
+ br label %loop
+loop:
+ %iv = phi i32 [ 0, %entry ], [ %iv.next, %loop ]
+ %iv.next = add i32 %iv, 1
+ %check = icmp ult i32 %iv.next, 3
+ br i1 %check, label %loop, label %exit
+exit:
+ ret void
+}
+
OpenPOWER on IntegriCloud