Skip to content

Commit c1b1fe6

Browse files
committed
Remove br i1 undef in LoopInterchange directory
1 parent 4a67b93 commit c1b1fe6

File tree

5 files changed

+24
-24
lines changed

5 files changed

+24
-24
lines changed

llvm/test/Transforms/LoopInterchange/lcssa.ll

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ for.end16: ; preds = %for.exit
180180
; REMARK: Interchanged
181181
; REMARK-NEXT: lcssa_05
182182

183-
define void @lcssa_05(ptr %ptr) {
183+
define void @lcssa_05(ptr %ptr, i1 %arg) {
184184
entry:
185185
br label %outer.header
186186

@@ -190,7 +190,7 @@ outer.header: ; preds = %outer.inc, %entry
190190

191191
for.body3: ; preds = %bb3, %outer.header
192192
%iv.inner = phi i64 [ %iv.inner.next, %bb3 ], [ 1, %outer.header ]
193-
br i1 undef, label %bb2, label %bb3
193+
br i1 %arg, label %bb2, label %bb3
194194

195195
bb2: ; preds = %for.body3
196196
%arrayidx5 = getelementptr inbounds [100 x [100 x i32]], ptr @A, i64 0, i64 %iv.inner, i64 %iv.outer
@@ -225,13 +225,13 @@ for.end16: ; preds = %for.exit
225225
; REMARK: UnsupportedExitPHI
226226
; REMARK-NEXT: lcssa_06
227227

228-
define void @lcssa_06(ptr %ptr, ptr %ptr1) {
228+
define void @lcssa_06(ptr %ptr, ptr %ptr1, i1 %arg) {
229229
entry:
230230
br label %outer.header
231231

232232
outer.header: ; preds = %outer.inc, %entry
233233
%iv.outer = phi i64 [ 1, %entry ], [ %iv.outer.next, %outer.inc ]
234-
br i1 undef, label %for.body3, label %outer.inc
234+
br i1 %arg, label %for.body3, label %outer.inc
235235

236236
for.body3: ; preds = %for.body3, %outer.header
237237
%iv.inner = phi i64 [ %iv.inner.next, %for.body3 ], [ 1, %outer.header ]
@@ -305,13 +305,13 @@ for.end16: ; preds = %for.exit
305305
; is an lcssa phi node outside the loopnest.
306306
; REMARK: Interchanged
307307
; REMARK-NEXT: lcssa_08
308-
define i64 @lcssa_08(ptr %Arr) {
308+
define i64 @lcssa_08(ptr %Arr, i1 %arg) {
309309
entry:
310310
br label %for1.header
311311

312312
for1.header: ; preds = %for1.inc, %entry
313313
%indvars.iv23 = phi i64 [ 0, %entry ], [ %indvars.iv.next24, %for1.inc ]
314-
br i1 undef, label %for2, label %for1.inc
314+
br i1 %arg, label %for2, label %for1.inc
315315

316316
for2: ; preds = %for2, %for1.header
317317
%indvars.iv = phi i64 [ 0, %for1.header ], [ %indvars.iv.next.3, %for2 ]

llvm/test/Transforms/LoopInterchange/pr43176-move-to-new-latch.ll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ for.cond1.for.end_crit_edge: ; preds = %for.inc
4545

4646
for.inc3: ; preds = %for.cond1.for.end_crit_edge
4747
%inc4 = add nsw i32 %inc41, 1
48-
br i1 undef, label %for.body, label %for.cond.for.end5_crit_edge
48+
br i1 false, label %for.body, label %for.cond.for.end5_crit_edge
4949

5050
for.cond.for.end5_crit_edge: ; preds = %for.inc3
5151
ret void
@@ -86,7 +86,7 @@ for.cond1.for.end_crit_edge: ; preds = %for.inc
8686

8787
for.inc3: ; preds = %for.cond1.for.end_crit_edge
8888
%inc4 = add nsw i32 %inc41, 1
89-
br i1 undef, label %for.body, label %for.cond.for.end5_crit_edge
89+
br i1 false, label %for.body, label %for.cond.for.end5_crit_edge
9090

9191
for.cond.for.end5_crit_edge: ; preds = %for.inc3
9292
ret void

llvm/test/Transforms/LoopInterchange/pr43473-invalid-lcssa-phis-in-inner-exit.ll

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
; In the 2 test cases below, we have a LCSSA PHI in the inner loop exit, which
77
; is used in the outer loop latch. This is not supported.
88

9-
define void @test1() {
9+
define void @test1(i1 %arg) {
1010
; CHECK-LABEL: @test1(
1111
; CHECK-NEXT: entry:
1212
; CHECK-NEXT: br label [[OUTER_HEADER:%.*]]
@@ -19,12 +19,12 @@ define void @test1() {
1919
; CHECK-NEXT: [[TMP0:%.*]] = load double, ptr [[IDX]], align 8
2020
; CHECK-NEXT: store double undef, ptr [[IDX]], align 8
2121
; CHECK-NEXT: [[INNER_IV_NEXT]] = add nuw nsw i64 [[INNER_IV]], 1
22-
; CHECK-NEXT: br i1 false, label [[INNER]], label [[OUTER_LATCH]]
22+
; CHECK-NEXT: br i1 [[ARG:%.*]], label [[INNER]], label [[OUTER_LATCH]]
2323
; CHECK: outer.latch:
2424
; CHECK-NEXT: [[INC43_LCSSA_WIDE_US:%.*]] = phi i64 [ [[INNER_IV_NEXT]], [[INNER]] ]
2525
; CHECK-NEXT: [[TMP1:%.*]] = trunc i64 [[INC43_LCSSA_WIDE_US]] to i32
2626
; CHECK-NEXT: [[OUTER_IV_NEXT]] = add nsw i64 [[OUTER_IV]], 1
27-
; CHECK-NEXT: br i1 false, label [[OUTER_HEADER]], label [[OUTER_EXIT:%.*]]
27+
; CHECK-NEXT: br i1 [[ARG]], label [[OUTER_HEADER]], label [[OUTER_EXIT:%.*]]
2828
; CHECK: outer.exit:
2929
; CHECK-NEXT: ret void
3030
;
@@ -41,20 +41,20 @@ inner: ; preds = %for.body28.us, %for.body25.
4141
%0 = load double, ptr %idx, align 8
4242
store double undef, ptr %idx, align 8
4343
%inner.iv.next = add nuw nsw i64 %inner.iv, 1
44-
br i1 undef, label %inner, label %outer.latch
44+
br i1 %arg, label %inner, label %outer.latch
4545

4646
outer.latch: ; preds = %inner
4747
%inc43.lcssa.wide.us = phi i64 [ %inner.iv.next, %inner ]
4848
%1 = trunc i64 %inc43.lcssa.wide.us to i32
4949
%outer.iv.next = add nsw i64 %outer.iv, 1
50-
br i1 undef, label %outer.header, label %outer.exit
50+
br i1 %arg, label %outer.header, label %outer.exit
5151

5252
outer.exit: ; preds = %for.cond26.for.end44_crit_edge.us
5353
ret void
5454
}
5555

5656
; Same as @test1, but with a dedicated inner loop exit block.
57-
define void @test2() {
57+
define void @test2(i1 %arg) {
5858
; CHECK-LABEL: @test2(
5959
; CHECK-NEXT: entry:
6060
; CHECK-NEXT: br label [[OUTER_HEADER:%.*]]
@@ -67,14 +67,14 @@ define void @test2() {
6767
; CHECK-NEXT: [[TMP0:%.*]] = load double, ptr [[IDX]], align 8
6868
; CHECK-NEXT: store double undef, ptr [[IDX]], align 8
6969
; CHECK-NEXT: [[INNER_IV_NEXT]] = add nuw nsw i64 [[INNER_IV]], 1
70-
; CHECK-NEXT: br i1 false, label [[INNER]], label [[INNER_EXIT:%.*]]
70+
; CHECK-NEXT: br i1 [[ARG:%.*]], label [[INNER]], label [[INNER_EXIT:%.*]]
7171
; CHECK: inner.exit:
7272
; CHECK-NEXT: [[INC43_LCSSA_WIDE_US:%.*]] = phi i64 [ [[INNER_IV_NEXT]], [[INNER]] ]
7373
; CHECK-NEXT: br label [[OUTER_LATCH]]
7474
; CHECK: outer.latch:
7575
; CHECK-NEXT: [[TMP1:%.*]] = trunc i64 [[INC43_LCSSA_WIDE_US]] to i32
7676
; CHECK-NEXT: [[OUTER_IV_NEXT]] = add nsw i64 [[OUTER_IV]], 1
77-
; CHECK-NEXT: br i1 false, label [[OUTER_HEADER]], label [[OUTER_EXIT:%.*]]
77+
; CHECK-NEXT: br i1 [[ARG]], label [[OUTER_HEADER]], label [[OUTER_EXIT:%.*]]
7878
; CHECK: outer.exit:
7979
; CHECK-NEXT: ret void
8080
;
@@ -91,7 +91,7 @@ inner: ; preds = %for.body28.us, %for.body25.
9191
%0 = load double, ptr %idx, align 8
9292
store double undef, ptr %idx, align 8
9393
%inner.iv.next = add nuw nsw i64 %inner.iv, 1
94-
br i1 undef, label %inner, label %inner.exit
94+
br i1 %arg, label %inner, label %inner.exit
9595

9696
inner.exit:
9797
%inc43.lcssa.wide.us = phi i64 [ %inner.iv.next, %inner ]
@@ -100,7 +100,7 @@ inner.exit:
100100
outer.latch: ; preds = %inner
101101
%1 = trunc i64 %inc43.lcssa.wide.us to i32
102102
%outer.iv.next = add nsw i64 %outer.iv, 1
103-
br i1 undef, label %outer.header, label %outer.exit
103+
br i1 %arg, label %outer.header, label %outer.exit
104104

105105
outer.exit: ; preds = %for.cond26.for.end44_crit_edge.us
106106
ret void

llvm/test/Transforms/LoopInterchange/pr43797-lcssa-for-multiple-outer-loop-blocks.ll

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -59,15 +59,15 @@ inner.header: ; preds = %for.inc, %for.bo
5959

6060
inner.latch: ; preds = %for.body6
6161
%inner.idx.inc = add nsw i64 %inner.idx, 1
62-
br i1 undef, label %inner.header, label %inner.exit
62+
br i1 false, label %inner.header, label %inner.exit
6363

6464
inner.exit: ; preds = %for.inc
6565
%outer.v = add nsw i64 %outer.idx, 1
6666
br label %outer.latch
6767

6868
outer.latch: ; preds = %for.end
6969
%outer.idx.inc = add nsw i64 %outer.idx, 1
70-
br i1 undef, label %outer.header, label %outer.exit
70+
br i1 false, label %outer.header, label %outer.exit
7171

7272
outer.exit: ; preds = %for.inc27
7373
%exit1.lcssa = phi i64 [ %outer.v, %outer.latch ]
@@ -133,15 +133,15 @@ inner.header: ; preds = %for.inc, %for.bo
133133

134134
inner.latch: ; preds = %for.body6
135135
%inner.idx.inc = add nsw i64 %inner.idx , 1
136-
br i1 undef, label %inner.header, label %inner.exit
136+
br i1 false, label %inner.header, label %inner.exit
137137

138138
inner.exit: ; preds = %for.inc
139139
%outer.v = add nsw i64 %outer.idx, 1
140140
br label %outer.latch
141141

142142
outer.latch: ; preds = %for.end
143143
%outer.idx.inc = add nsw i64 %outer.idx, 1
144-
br i1 undef, label %outer.header, label %outer.exit
144+
br i1 false, label %outer.header, label %outer.exit
145145

146146
outer.exit: ; preds = %for.inc27
147147
%exit1.lcssa = phi i64 [ 0, %entry ], [ %outer.v, %outer.latch ]

llvm/test/Transforms/LoopInterchange/pr57148.ll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -152,11 +152,11 @@ vector.body85: ; preds = %vector.body85, %for
152152
%1 = getelementptr inbounds [512 x [4 x i32]], ptr @b, i16 0, i16 %0, i16 %j.165
153153
%2 = load i32, ptr %1, align 1
154154
%index.next87 = add nuw i16 %index86, 4
155-
br i1 undef, label %middle.block80, label %vector.body85
155+
br i1 true, label %middle.block80, label %vector.body85
156156

157157
middle.block80: ; preds = %vector.body85
158158
%inc66 = add nuw nsw i16 %j.165, 1
159-
br i1 undef, label %for.inc68, label %for.cond37.preheader
159+
br i1 true, label %for.inc68, label %for.cond37.preheader
160160

161161
for.inc68: ; preds = %middle.block80
162162
%inc69 = add nuw nsw i16 %i.166, 1

0 commit comments

Comments
 (0)