summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms/StructurizeCFG/loop-continue-phi.ll
diff options
context:
space:
mode:
authorNicolai Haehnle <nhaehnle@gmail.com>2018-10-17 15:37:41 +0000
committerNicolai Haehnle <nhaehnle@gmail.com>2018-10-17 15:37:41 +0000
commit0823050b9f4ca2dd0aaf27ee34cb45bde5bf05ea (patch)
tree85a15b1292b69c96e98dc91fcfc8f607f32bd8ee /llvm/test/Transforms/StructurizeCFG/loop-continue-phi.ll
parentc4a2ff095078ae2390ce216bd5b3522921b7f722 (diff)
downloadbcm5719-llvm-0823050b9f4ca2dd0aaf27ee34cb45bde5bf05ea.tar.gz
bcm5719-llvm-0823050b9f4ca2dd0aaf27ee34cb45bde5bf05ea.zip
StructurizeCFG: Simplify inserted PHI nodes
Summary: This improves subsequent divergence analysis in some cases. Change-Id: I5e95e7ec7fd3fa80d414d1a53a02fea23e3d67d3 Reviewers: arsenm, rampitec Subscribers: jvesely, wdng, llvm-commits Differential Revision: https://reviews.llvm.org/D53316 llvm-svn: 344697
Diffstat (limited to 'llvm/test/Transforms/StructurizeCFG/loop-continue-phi.ll')
-rw-r--r--llvm/test/Transforms/StructurizeCFG/loop-continue-phi.ll15
1 files changed, 5 insertions, 10 deletions
diff --git a/llvm/test/Transforms/StructurizeCFG/loop-continue-phi.ll b/llvm/test/Transforms/StructurizeCFG/loop-continue-phi.ll
index 7e1c0b9413f..2300aea077f 100644
--- a/llvm/test/Transforms/StructurizeCFG/loop-continue-phi.ll
+++ b/llvm/test/Transforms/StructurizeCFG/loop-continue-phi.ll
@@ -1,28 +1,23 @@
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
; RUN: opt -S -o - -structurizecfg < %s | FileCheck %s
-;
-; TODO: eliminate redundant phis for the loop counter
-;
define void @test1() {
; CHECK-LABEL: @test1(
; CHECK-NEXT: entry:
; CHECK-NEXT: br label [[LOOP:%.*]]
; CHECK: Flow:
-; CHECK-NEXT: [[TMP0:%.*]] = phi i32 [ [[CTR_NEXT:%.*]], [[LOOP_B:%.*]] ], [ [[CTR_NEXT]], [[LOOP_A:%.*]] ]
; CHECK-NEXT: br label [[FLOW1:%.*]]
; CHECK: loop:
-; CHECK-NEXT: [[CTR:%.*]] = phi i32 [ 0, [[ENTRY:%.*]] ], [ [[TMP1:%.*]], [[FLOW1]] ]
+; CHECK-NEXT: [[CTR:%.*]] = phi i32 [ 0, [[ENTRY:%.*]] ], [ [[CTR_NEXT:%.*]], [[FLOW1]] ]
; CHECK-NEXT: [[CTR_NEXT]] = add i32 [[CTR]], 1
-; CHECK-NEXT: br i1 undef, label [[LOOP_A]], label [[FLOW1]]
+; CHECK-NEXT: br i1 undef, label [[LOOP_A:%.*]], label [[FLOW1]]
; CHECK: loop.a:
-; CHECK-NEXT: br i1 undef, label [[LOOP_B]], label [[FLOW:%.*]]
+; CHECK-NEXT: br i1 undef, label [[LOOP_B:%.*]], label [[FLOW:%.*]]
; CHECK: loop.b:
; CHECK-NEXT: br label [[FLOW]]
; CHECK: Flow1:
-; CHECK-NEXT: [[TMP1]] = phi i32 [ [[TMP0]], [[FLOW]] ], [ undef, [[LOOP]] ]
-; CHECK-NEXT: [[TMP2:%.*]] = phi i1 [ false, [[FLOW]] ], [ true, [[LOOP]] ]
-; CHECK-NEXT: br i1 [[TMP2]], label [[EXIT:%.*]], label [[LOOP]]
+; CHECK-NEXT: [[TMP0:%.*]] = phi i1 [ false, [[FLOW]] ], [ true, [[LOOP]] ]
+; CHECK-NEXT: br i1 [[TMP0]], label [[EXIT:%.*]], label [[LOOP]]
; CHECK: exit:
; CHECK-NEXT: ret void
;
OpenPOWER on IntegriCloud