Skip to content

[llvm] Remove br i1 undef from regression tests #117292

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 7 commits into from
Nov 26, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions llvm/test/Transforms/MemCpyOpt/aa-recursion-assertion-failure.ll
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ source_filename = "test.cpp"
target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"
target triple = "aarch64-unknown-linux-android21"

define dso_local void @_Z1ml(i64 %e) {
define dso_local void @_Z1ml(i64 %e, i1 %arg) {
; CHECK-LABEL: @_Z1ml(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[L:%.*]] = alloca i8, align 1
Expand All @@ -20,7 +20,7 @@ define dso_local void @_Z1ml(i64 %e) {
; CHECK: while.cond:
; CHECK-NEXT: [[TMP1]] = phi ptr [ [[L]], [[ENTRY:%.*]] ], [ [[TMP0]], [[WHILE_COND_LOOPEXIT]] ]
; CHECK-NEXT: [[I_0]] = phi ptr [ [[L]], [[ENTRY]] ], [ [[I_1_LCSSA]], [[WHILE_COND_LOOPEXIT]] ]
; CHECK-NEXT: br i1 undef, label [[FOR_BODY_LR_PH:%.*]], label [[WHILE_COND_LOOPEXIT]]
; CHECK-NEXT: br i1 [[ARG:%.*]], label [[FOR_BODY_LR_PH:%.*]], label [[WHILE_COND_LOOPEXIT]]
; CHECK: for.body.lr.ph:
; CHECK-NEXT: br label [[FOR_BODY:%.*]]
; CHECK: for.body:
Expand All @@ -32,7 +32,7 @@ define dso_local void @_Z1ml(i64 %e) {
; CHECK-NEXT: store i8 [[TMP4]], ptr [[TMP2]], align 1
; CHECK-NEXT: br label [[_Z1DPCS_L_EXIT:%.*]]
; CHECK: _Z1dPcS_l.exit:
; CHECK-NEXT: br i1 undef, label [[IF_THEN3:%.*]], label [[IF_END5]]
; CHECK-NEXT: br i1 [[ARG]], label [[IF_THEN3:%.*]], label [[IF_END5]]
; CHECK: if.then3:
; CHECK-NEXT: [[ADD_PTR4:%.*]] = getelementptr inbounds i8, ptr [[I_15]], i64 [[E]]
; CHECK-NEXT: br label [[IF_END5]]
Expand All @@ -55,7 +55,7 @@ while.cond.loopexit: ; preds = %while.cond, %for.co
while.cond: ; preds = %while.cond.loopexit, %entry
%1 = phi ptr [ %l, %entry ], [ %0, %while.cond.loopexit ]
%i.0 = phi ptr [ %l, %entry ], [ %i.1.lcssa, %while.cond.loopexit ]
br i1 undef, label %for.body.lr.ph, label %while.cond.loopexit
br i1 %arg, label %for.body.lr.ph, label %while.cond.loopexit

for.body.lr.ph: ; preds = %while.cond
br label %for.body
Expand All @@ -70,7 +70,7 @@ for.body: ; preds = %if.end5, %for.body.
br label %_Z1dPcS_l.exit

_Z1dPcS_l.exit: ; preds = %for.body
br i1 undef, label %if.then3, label %if.end5
br i1 %arg, label %if.then3, label %if.end5

if.then3: ; preds = %_Z1dPcS_l.exit
%add.ptr4 = getelementptr inbounds i8, ptr %i.15, i64 %e
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@
@g_173 = dso_local local_unnamed_addr global i16 0, !dbg !0

; Function Attrs: noinline norecurse nounwind
define dso_local void @func_34(ptr noalias sret(%struct.S0) %agg.result) local_unnamed_addr #0 !dbg !11 {
define dso_local void @func_34(ptr noalias sret(%struct.S0) %agg.result, i1 %arg) local_unnamed_addr #0 !dbg !11 {
entry:
br i1 undef, label %if.end, label %if.then, !dbg !18
br i1 %arg, label %if.end, label %if.then, !dbg !18

if.then: ; preds = %entry
call void @llvm.dbg.value(metadata i16 5, metadata !19, metadata !DIExpression()), !dbg !22
Expand Down
21 changes: 11 additions & 10 deletions llvm/test/Transforms/NewGVN/2010-03-31-RedundantPHIs.ll
Original file line number Diff line number Diff line change
Expand Up @@ -4,42 +4,43 @@
; CHECK-NOT: load
; CHECK-NOT: phi

define ptr @cat(ptr %s1, ...) nounwind {
define ptr @cat(ptr %s1, i1 %arg, i1 %arg2, i1 %arg3, ...) nounwind {
; CHECK-LABEL: define ptr @cat(
; CHECK-SAME: ptr [[S1:%.*]], ...) #[[ATTR0:[0-9]+]] {
; CHECK-SAME: ptr [[S1:%.*]], i1 [[ARG:%.*]], i1 [[ARG2:%.*]], i1 [[ARG3:%.*]], ...) #[[ATTR0:[0-9]+]] {
; CHECK-NEXT: entry:
; CHECK-NEXT: br i1 undef, label [[BB:%.*]], label [[BB3:%.*]]
; CHECK-NEXT: br i1 [[ARG2]], label [[BB:%.*]], label [[BB3:%.*]]
; CHECK: bb:
; CHECK-NEXT: unreachable
; CHECK: bb3:
; CHECK-NEXT: store ptr undef, ptr undef, align 4
; CHECK-NEXT: br i1 undef, label [[BB5:%.*]], label [[BB6:%.*]]
; CHECK-NEXT: br i1 [[ARG3]], label [[BB5:%.*]], label [[BB6:%.*]]
; CHECK: bb5:
; CHECK-NEXT: unreachable
; CHECK: bb6:
; CHECK-NEXT: br label [[BB12:%.*]]
; CHECK: bb8:
; CHECK-NEXT: br i1 undef, label [[BB9:%.*]], label [[BB10:%.*]]
; CHECK-NEXT: br i1 true, label [[BB9:%.*]], label [[BB10:%.*]]
; CHECK: bb9:
; CHECK-NEXT: br label [[BB11:%.*]]
; CHECK: bb10:
; CHECK-NEXT: store i8 poison, ptr null, align 1
; CHECK-NEXT: br label [[BB11]]
; CHECK: bb11:
; CHECK-NEXT: br label [[BB12]]
; CHECK: bb12:
; CHECK-NEXT: br i1 undef, label [[BB8:%.*]], label [[BB13:%.*]]
; CHECK-NEXT: br i1 [[ARG]], label [[BB8:%.*]], label [[BB13:%.*]]
; CHECK: bb13:
; CHECK-NEXT: ret ptr undef
;
entry:
br i1 undef, label %bb, label %bb3
br i1 %arg2, label %bb, label %bb3

bb: ; preds = %entry
unreachable

bb3: ; preds = %entry
store ptr undef, ptr undef, align 4
br i1 undef, label %bb5, label %bb6
br i1 %arg3, label %bb5, label %bb6

bb5: ; preds = %bb3
unreachable
Expand All @@ -48,7 +49,7 @@ bb6: ; preds = %bb3
br label %bb12

bb8: ; preds = %bb12
br i1 undef, label %bb9, label %bb10
br i1 %arg, label %bb9, label %bb10

bb9: ; preds = %bb8
%0 = load ptr, ptr undef, align 4 ; <ptr> [#uses=0]
Expand All @@ -62,7 +63,7 @@ bb11: ; preds = %bb10, %bb9
br label %bb12

bb12: ; preds = %bb11, %bb6
br i1 undef, label %bb8, label %bb13
br i1 %arg, label %bb8, label %bb13

bb13: ; preds = %bb12
ret ptr undef
Expand Down
8 changes: 4 additions & 4 deletions llvm/test/Transforms/NewGVN/2010-05-08-OneBit.ll
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
target triple = "x86_64-unknown-linux-gnu"

define i32 @main(i32 %argc, ptr nocapture %argv) personality ptr @__gxx_personality_v0 {
define i32 @main(i32 %argc, ptr nocapture %argv, i1 %arg, i32 %arg2) personality ptr @__gxx_personality_v0 {
entry:
%0 = getelementptr inbounds i8, ptr undef, i64 5 ; <ptr> [#uses=1]
store i32 undef, ptr %0, align 1
br i1 undef, label %k121.i.i, label %l117.i.i
br i1 %arg, label %k121.i.i, label %l117.i.i

l117.i.i: ; preds = %entry
invoke fastcc void @foo()
Expand All @@ -19,7 +19,7 @@ l117.i.i: ; preds = %entry
unreachable

k121.i.i: ; preds = %entry
br i1 undef, label %l129.i.i, label %k133.i.i
br i1 %arg, label %l129.i.i, label %k133.i.i

l129.i.i: ; preds = %k121.i.i
invoke fastcc void @foo()
Expand All @@ -46,7 +46,7 @@ k151.i.i: ; preds = %k133.i.i
landing_pad: ; preds = %l147.i.i, %l129.i.i, %l117.i.i
%exn = landingpad {ptr, i32}
cleanup
switch i32 undef, label %fin [
switch i32 %arg2, label %fin [
i32 1, label %catch1
i32 2, label %catch
]
Expand Down
22 changes: 11 additions & 11 deletions llvm/test/Transforms/NewGVN/2011-04-27-phioperands.ll
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@ target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f3

@nuls = external global [10 x i8]

define fastcc void @p_ere() nounwind {
define fastcc void @p_ere(i1 %arg, i32 %arg2) nounwind {
entry:
br label %"<bb 5>"

"<L18>.i":
br i1 undef, label %"<bb 3>.i30.i", label %doemit.exit51.i
br i1 %arg, label %"<bb 3>.i30.i", label %doemit.exit51.i

"<bb 3>.i30.i":
unreachable
Expand All @@ -19,7 +19,7 @@ doemit.exit51.i:
br label %"<bb 53>.i"

"<L19>.i":
br i1 undef, label %"<bb 3>.i55.i", label %doemit.exit76.i
br i1 %arg, label %"<bb 3>.i55.i", label %doemit.exit76.i

"<bb 3>.i55.i":
unreachable
Expand All @@ -35,7 +35,7 @@ doemit.exit76.i:
br label %"<bb 53>.i"

"<L24>.i":
br i1 undef, label %"<bb 53>.i", label %"<bb 35>.i"
br i1 %arg, label %"<bb 53>.i", label %"<bb 35>.i"

"<bb 35>.i":
br label %"<bb 53>.i"
Expand All @@ -52,27 +52,27 @@ doemit.exit76.i:
"<bb 53>.i":
%wascaret_2.i = phi i32 [ 0, %"<L39>.i" ], [ 0, %"<L29>.i" ], [ 0, %"<L28>.i" ], [ 0, %"<bb 35>.i" ], [ 0, %"<L99>.i" ], [ 0, %"<L98>.i" ], [ 0, %doemit.exit76.i ], [ 1, %doemit.exit51.i ], [ 0, %"<L24>.i" ]
%D.5496_84.i = load ptr, ptr undef, align 8
br i1 undef, label %"<bb 54>.i", label %"<bb 5>"
br i1 %arg, label %"<bb 54>.i", label %"<bb 5>"

"<bb 54>.i":
br i1 undef, label %"<bb 5>", label %"<bb 58>.i"
br i1 %arg, label %"<bb 5>", label %"<bb 58>.i"

"<bb 58>.i":
br i1 undef, label %"<bb 64>.i", label %"<bb 59>.i"
br i1 %arg, label %"<bb 64>.i", label %"<bb 59>.i"

"<bb 59>.i":
br label %"<bb 64>.i"

"<bb 64>.i":
switch i32 undef, label %"<bb 5>" [
switch i32 %arg2, label %"<bb 5>" [
i32 42, label %"<L54>.i"
i32 43, label %"<L55>.i"
i32 63, label %"<L56>.i"
i32 123, label %"<bb 5>.i258.i"
]

"<L54>.i":
br i1 undef, label %"<bb 3>.i105.i", label %doemit.exit127.i
br i1 %arg, label %"<bb 3>.i105.i", label %doemit.exit127.i

"<bb 3>.i105.i":
unreachable
Expand All @@ -81,7 +81,7 @@ doemit.exit127.i:
unreachable

"<L55>.i":
br i1 undef, label %"<bb 3>.i157.i", label %"<bb 5>"
br i1 %arg, label %"<bb 3>.i157.i", label %"<bb 5>"

"<bb 3>.i157.i":
unreachable
Expand All @@ -93,7 +93,7 @@ doemit.exit127.i:
unreachable

"<bb 5>":
switch i32 undef, label %"<L39>.i" [
switch i32 %arg2, label %"<L39>.i" [
i32 36, label %"<L19>.i"
i32 94, label %"<L18>.i"
i32 124, label %"<L98>.i"
Expand Down
6 changes: 3 additions & 3 deletions llvm/test/Transforms/NewGVN/2012-05-22-PreCrash.ll
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
; RUN: opt < %s -passes=newgvn
; PR12858

define void @fn5(i16 signext %p1, i8 signext %p2) nounwind uwtable {
define void @fn5(i16 signext %p1, i8 signext %p2, i1 %arg) nounwind uwtable {
entry:
br i1 undef, label %if.else, label %if.then
br i1 %arg, label %if.else, label %if.then

if.then: ; preds = %entry
br label %if.end
Expand All @@ -15,7 +15,7 @@ if.else: ; preds = %entry

if.end: ; preds = %if.else, %if.then
%conv1 = sext i16 %p1 to i32
br i1 undef, label %if.then3, label %if.else4
br i1 %arg, label %if.then3, label %if.else4

if.then3: ; preds = %if.end
br label %if.end12
Expand Down
20 changes: 10 additions & 10 deletions llvm/test/Transforms/NewGVN/basic-cyclic-opt.ll
Original file line number Diff line number Diff line change
Expand Up @@ -242,29 +242,29 @@ bb23: ; preds = %bb4
;; Both loads should equal 0, but it requires being
;; completely optimistic about MemoryPhis, otherwise
;; we will not be able to see through the cycle.
define i8 @irreducible_memoryphi(ptr noalias %arg, ptr noalias %arg2) {
define i8 @irreducible_memoryphi(ptr noalias %arg, ptr noalias %arg2, i1 %arg3) {
; CHECK-LABEL: @irreducible_memoryphi(
; CHECK-NEXT: bb:
; CHECK-NEXT: store i8 0, ptr [[ARG:%.*]], align 1
; CHECK-NEXT: br i1 undef, label [[BB2:%.*]], label [[BB1:%.*]]
; CHECK-NEXT: br i1 [[ARG3:%.*]], label [[BB2:%.*]], label [[BB1:%.*]]
; CHECK: bb1:
; CHECK-NEXT: br label [[BB2]]
; CHECK: bb2:
; CHECK-NEXT: br i1 undef, label [[BB1]], label [[BB3:%.*]]
; CHECK-NEXT: br i1 [[ARG3]], label [[BB1]], label [[BB3:%.*]]
; CHECK: bb3:
; CHECK-NEXT: ret i8 0
;
bb:
store i8 0, ptr %arg
br i1 undef, label %bb2, label %bb1
br i1 %arg3, label %bb2, label %bb1

bb1: ; preds = %bb2, %bb
br label %bb2

bb2: ; preds = %bb1, %bb
%tmp2 = load i8, ptr %arg
store i8 0, ptr %arg
br i1 undef, label %bb1, label %bb3
br i1 %arg3, label %bb1, label %bb3

bb3: ; preds = %bb2
%tmp = load i8, ptr %arg
Expand All @@ -277,28 +277,28 @@ bb3: ; preds = %bb2
;; It should return 0, but it requires being
;; completely optimistic about phis, otherwise
;; we will not be able to see through the cycle.
define i32 @irreducible_phi(i32 %arg) {
define i32 @irreducible_phi(i32 %arg, i1 %arg2) {
; CHECK-LABEL: @irreducible_phi(
; CHECK-NEXT: bb:
; CHECK-NEXT: br i1 undef, label [[BB2:%.*]], label [[BB1:%.*]]
; CHECK-NEXT: br i1 [[ARG2:%.*]], label [[BB2:%.*]], label [[BB1:%.*]]
; CHECK: bb1:
; CHECK-NEXT: br label [[BB2]]
; CHECK: bb2:
; CHECK-NEXT: br i1 undef, label [[BB1]], label [[BB3:%.*]]
; CHECK-NEXT: br i1 [[ARG2]], label [[BB1]], label [[BB3:%.*]]
; CHECK: bb3:
; CHECK-NEXT: ret i32 0
;
bb:
%tmp = add i32 0, %arg
br i1 undef, label %bb2, label %bb1
br i1 %arg2, label %bb2, label %bb1

bb1: ; preds = %bb2, %bb
%phi1 = phi i32 [%tmp, %bb], [%phi2, %bb2]
br label %bb2

bb2: ; preds = %bb1, %bb
%phi2 = phi i32 [%tmp, %bb], [%phi1, %bb1]
br i1 undef, label %bb1, label %bb3
br i1 %arg2, label %bb1, label %bb3

bb3: ; preds = %bb2
; This should be zero
Expand Down
Loading