diff --git a/llvm/test/Analysis/BasicAA/phi-values-usage.ll b/llvm/test/Analysis/BasicAA/phi-values-usage.ll index 4c5f071ab9669..43df41c916418 100644 --- a/llvm/test/Analysis/BasicAA/phi-values-usage.ll +++ b/llvm/test/Analysis/BasicAA/phi-values-usage.ll @@ -20,10 +20,10 @@ declare void @llvm.lifetime.end.p0(i64, ptr nocapture) ; This function is one where if we didn't free basicaa after memcpyopt then the ; usage of basicaa in instcombine would cause a segfault due to stale phi-values ; results being used. -define void @fn(ptr %this, ptr %ptr) personality ptr @__gxx_personality_v0 { +define void @fn(ptr %this, ptr %ptr, i1 %arg) personality ptr @__gxx_personality_v0 { entry: %arr = alloca [4 x i8], align 8 - br i1 undef, label %then, label %if + br i1 %arg, label %then, label %if if: br label %then @@ -50,7 +50,7 @@ lpad: ; When running instcombine after memdep, the basicaa used by instcombine uses ; the phivalues that memdep used. This would then cause a segfault due to ; instcombine deleting a phi whose values had been cached. -define void @fn2() { +define void @fn2(i1 %arg) { entry: %a = alloca i8, align 1 %0 = load ptr, ptr @c, align 1 @@ -58,7 +58,7 @@ entry: for.cond: ; preds = %for.body, %entry %d.0 = phi ptr [ %0, %entry ], [ null, %for.body ] - br i1 undef, label %for.body, label %for.cond.cleanup + br i1 %arg, label %for.body, label %for.cond.cleanup for.body: ; preds = %for.cond store volatile i8 undef, ptr %a, align 1 diff --git a/llvm/test/Analysis/BasicAA/underlying-value.ll b/llvm/test/Analysis/BasicAA/underlying-value.ll index 4d267af8c4443..36c0c266e9a19 100644 --- a/llvm/test/Analysis/BasicAA/underlying-value.ll +++ b/llvm/test/Analysis/BasicAA/underlying-value.ll @@ -3,12 +3,12 @@ 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" -define void @func_20() nounwind { +define void @func_20(i1 %arg) nounwind { entry: br label %for.cond for.cond: ; preds = %for.cond2, %entry - br i1 undef, label %for.cond2, label %for.end22 + br i1 %arg, label %for.cond2, label %for.end22 for.cond2: ; preds = %for.body5, %for.cond br i1 false, label %for.body5, label %for.cond diff --git a/llvm/test/Analysis/BlockFrequencyInfo/irreducible_loop_crash.ll b/llvm/test/Analysis/BlockFrequencyInfo/irreducible_loop_crash.ll index b2aa0648c0a92..09fe7e50e69cf 100644 --- a/llvm/test/Analysis/BlockFrequencyInfo/irreducible_loop_crash.ll +++ b/llvm/test/Analysis/BlockFrequencyInfo/irreducible_loop_crash.ll @@ -3,10 +3,10 @@ target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" -define void @fn1(ptr %f) { +define void @fn1(ptr %f, i1 %arg) { entry: %tobool7 = icmp eq i32 undef, 0 - br i1 undef, label %if.end.12, label %for.body.5 + br i1 %arg, label %if.end.12, label %for.body.5 for.inc: store i32 undef, ptr %f, align 4 @@ -19,7 +19,7 @@ for.inc.9: ; preds = %for.body.5 br i1 %tobool7, label %for.inc.9.1, label %for.inc if.end.12: ; preds = %if.end.12, %for.body - br i1 undef, label %for.end.17, label %for.inc + br i1 %arg, label %for.end.17, label %for.inc for.end.17: ; preds = %entry ret void diff --git a/llvm/test/Analysis/BranchProbabilityInfo/deopt-invoke.ll b/llvm/test/Analysis/BranchProbabilityInfo/deopt-invoke.ll index f6b906b95ec6e..0dbfdfdeb34ca 100644 --- a/llvm/test/Analysis/BranchProbabilityInfo/deopt-invoke.ll +++ b/llvm/test/Analysis/BranchProbabilityInfo/deopt-invoke.ll @@ -8,7 +8,7 @@ declare void @cold() cold ; Even though the likeliness of 'invoke' to throw an exception is assessed as low ; all other paths are even less likely. Check that hot paths leads to excepion handler. -define void @test1(i32 %0) personality ptr @"personality_function" !prof !1 { +define void @test1(i32 %0, i1 %arg) personality ptr @"personality_function" !prof !1 { ;CHECK: edge %entry -> %unreached probability is 0x00000001 / 0x80000000 = 0.00% ;CHECK: edge %entry -> %invoke probability is 0x7fffffff / 0x80000000 = 100.00% [HOT edge] ;CHECK: edge %invoke -> %invoke.cont.unreached probability is 0x00000000 / 0x80000000 = 0.00% @@ -16,7 +16,7 @@ define void @test1(i32 %0) personality ptr @"personality_function" !prof !1 { ;CHECK: edge %land.pad -> %exit probability is 0x80000000 / 0x80000000 = 100.00% [HOT edge] entry: - br i1 undef, label %unreached, label %invoke, !prof !2 + br i1 %arg, label %unreached, label %invoke, !prof !2 invoke: invoke void @foo(i32 %0) to label %invoke.cont.unreached unwind label %land.pad @@ -38,7 +38,7 @@ exit: ret void } -define void @test2(i32 %0) personality ptr @"personality_function" { +define void @test2(i32 %0, i1 %arg) personality ptr @"personality_function" { ;CHECK: edge %entry -> %unreached probability is 0x00000000 / 0x80000000 = 0.00% ;CHECK: edge %entry -> %invoke probability is 0x80000000 / 0x80000000 = 100.00% [HOT edge] ;CHECK: edge %invoke -> %invoke.cont.cold probability is 0x7fff8000 / 0x80000000 = 100.00% [HOT edge] @@ -46,7 +46,7 @@ define void @test2(i32 %0) personality ptr @"personality_function" { ;CHECK: edge %land.pad -> %exit probability is 0x80000000 / 0x80000000 = 100.00% [HOT edge] entry: - br i1 undef, label %unreached, label %invoke + br i1 %arg, label %unreached, label %invoke invoke: invoke void @foo(i32 %0) to label %invoke.cont.cold unwind label %land.pad @@ -68,14 +68,14 @@ exit: ret void } -define void @test3(i32 %0) personality ptr @"personality_function" { +define void @test3(i32 %0, i1 %arg) personality ptr @"personality_function" { ;CHECK: edge %entry -> %unreached probability is 0x00000000 / 0x80000000 = 0.00% ;CHECK: edge %entry -> %invoke probability is 0x80000000 / 0x80000000 = 100.00% [HOT edge] ;CHECK: edge %invoke -> %invoke.cont.cold probability is 0x7fff8000 / 0x80000000 = 100.00% [HOT edge] ;CHECK: edge %invoke -> %land.pad probability is 0x00008000 / 0x80000000 = 0.00% ;CHECK: edge %land.pad -> %exit probability is 0x80000000 / 0x80000000 = 100.00% [HOT edge] entry: - br i1 undef, label %unreached, label %invoke + br i1 %arg, label %unreached, label %invoke invoke: invoke void @foo(i32 %0) to label %invoke.cont.cold unwind label %land.pad diff --git a/llvm/test/Analysis/BranchProbabilityInfo/loop.ll b/llvm/test/Analysis/BranchProbabilityInfo/loop.ll index 0b02cedf03df3..ffac1cd466641 100644 --- a/llvm/test/Analysis/BranchProbabilityInfo/loop.ll +++ b/llvm/test/Analysis/BranchProbabilityInfo/loop.ll @@ -523,7 +523,7 @@ declare void @cold() cold ; If loop has single exit and it leads to 'cold' block then edge leading to loop enter ; should be considered 'cold' as well. -define void @test13() { +define void @test13(i1 %arg) { ; CHECK: edge %entry -> %loop probability is 0x078780e3 / 0x80000000 = 5.88% ; CHECK: edge %entry -> %exit probability is 0x78787f1d / 0x80000000 = 94.12% [HOT edge] ; CHECK: edge %loop -> %loop probability is 0x7fbe1203 / 0x80000000 = 99.80% [HOT edge] @@ -531,12 +531,12 @@ define void @test13() { ; CHECK: edge %cold -> %exit probability is 0x80000000 / 0x80000000 = 100.00% [HOT edge] entry: - br i1 undef, label %loop, label %exit + br i1 %arg, label %loop, label %exit loop: %i.0 = phi i32 [ 0, %entry ], [ %inc, %loop ] %inc = add nsw i32 %i.0, 1 - br i1 undef, label %loop, label %cold + br i1 %arg, label %loop, label %cold cold: call void @cold() @@ -547,7 +547,7 @@ exit: } ; This is the same case as test13 but with additional loop 'preheader' block. -define void @test14() { +define void @test14(i1 %arg) { ; CHECK: edge %entry -> %preheader probability is 0x078780e3 / 0x80000000 = 5.88% ; CHECK: edge %entry -> %exit probability is 0x78787f1d / 0x80000000 = 94.12% [HOT edge] ; CHECK: edge %preheader -> %loop probability is 0x80000000 / 0x80000000 = 100.00% [HOT edge] @@ -556,7 +556,7 @@ define void @test14() { ; CHECK: edge %cold -> %exit probability is 0x80000000 / 0x80000000 = 100.00% [HOT edge] entry: - br i1 undef, label %preheader, label %exit + br i1 %arg, label %preheader, label %exit preheader: br label %loop @@ -564,7 +564,7 @@ preheader: loop: %i.0 = phi i32 [ 0, %preheader ], [ %inc, %loop ] %inc = add nsw i32 %i.0, 1 - br i1 undef, label %loop, label %cold + br i1 %arg, label %loop, label %cold cold: call void @cold() @@ -576,7 +576,7 @@ exit: ; If loop has multiple low probability exits then edge leading to loop enter ; should be considered low probable as well. -define void @test15() { +define void @test15(i1 %arg) { ; CHECK: edge %entry -> %loop probability is 0x078780e3 / 0x80000000 = 5.88% ; CHECK: edge %entry -> %exit probability is 0x78787f1d / 0x80000000 = 94.12% [HOT edge] ; CHECK: edge %loop -> %cont probability is 0x80000000 / 0x80000000 = 100.00% [HOT edge] @@ -586,15 +586,15 @@ define void @test15() { ; CHECK: edge %cold -> %exit probability is 0x80000000 / 0x80000000 = 100.00% [HOT edge] entry: - br i1 undef, label %loop, label %exit + br i1 %arg, label %loop, label %exit loop: %i.0 = phi i32 [ 0, %entry ], [ %inc, %cont ] %inc = add nsw i32 %i.0, 1 - br i1 undef, label %cont, label %unreached + br i1 %arg, label %cont, label %unreached cont: - br i1 undef, label %loop, label %cold + br i1 %arg, label %loop, label %cold unreached: unreachable @@ -609,7 +609,7 @@ exit: } ; This is the same case as test15 but with additional loop 'preheader' block. -define void @test16() { +define void @test16(i1 %arg) { ; CHECK: edge %entry -> %preheader probability is 0x80000000 / 0x80000000 = 100.00% [HOT edge] ; CHECK: edge %preheader -> %loop probability is 0x078780e3 / 0x80000000 = 5.88% ; CHECK: edge %preheader -> %exit probability is 0x78787f1d / 0x80000000 = 94.12% [HOT edge] @@ -623,15 +623,15 @@ entry: br label %preheader preheader: - br i1 undef, label %loop, label %exit + br i1 %arg, label %loop, label %exit loop: %i.0 = phi i32 [ 0, %preheader ], [ %inc, %cont ] %inc = add nsw i32 %i.0, 1 - br i1 undef, label %cont, label %unreached + br i1 %arg, label %cont, label %unreached cont: - br i1 undef, label %loop, label %cold + br i1 %arg, label %loop, label %cold unreached: unreachable @@ -649,7 +649,7 @@ declare void @abort() noreturn ; Check that 'preheader' has 50/50 probability since there is one 'normal' exit. ; Check that exit to 'cold' and 'noreturn' has lower probability than 'normal' exit. -define void @test17() { +define void @test17(i1 %arg) { ; CHECK: edge %entry -> %preheader probability is 0x80000000 / 0x80000000 = 100.00% [HOT edge] ; CHECK: edge %preheader -> %loop probability is 0x40000000 / 0x80000000 = 50.00% ; CHECK: edge %preheader -> %exit probability is 0x40000000 / 0x80000000 = 50.00% @@ -664,18 +664,18 @@ entry: br label %preheader preheader: - br i1 undef, label %loop, label %exit + br i1 %arg, label %loop, label %exit loop: %i.0 = phi i32 [ 0, %preheader ], [ %inc, %cont2 ] %inc = add nsw i32 %i.0, 1 - br i1 undef, label %cont, label %noreturn + br i1 %arg, label %cont, label %noreturn cont: - br i1 undef, label %cont2, label %cold + br i1 %arg, label %cont2, label %cold cont2: - br i1 undef, label %loop, label %exit + br i1 %arg, label %loop, label %exit noreturn: call void @abort() @@ -692,7 +692,7 @@ exit: ; This is case with two loops where one nested into another. Nested loop has ; low probable exit what encreases robability to take exit in the top level loop. -define void @test18() { +define void @test18(i1 %arg) { ; CHECK: edge %entry -> %top.loop probability is 0x80000000 / 0x80000000 = 100.00% [HOT edge] ; CHECK: edge %top.loop -> %loop probability is 0x546cd4b7 / 0x80000000 = 65.96% ; CHECK: edge %top.loop -> %exit probability is 0x2b932b49 / 0x80000000 = 34.04% @@ -705,12 +705,12 @@ entry: top.loop: %j.0 = phi i32 [ 0, %entry ], [ %j.inc, %cold ] - br i1 undef, label %loop, label %exit + br i1 %arg, label %loop, label %exit loop: %i.0 = phi i32 [ %j.0, %top.loop ], [ %inc, %loop ] %inc = add nsw i32 %i.0, 1 - br i1 undef, label %loop, label %cold + br i1 %arg, label %loop, label %cold cold: call void @cold() diff --git a/llvm/test/Analysis/BranchProbabilityInfo/unreachable.ll b/llvm/test/Analysis/BranchProbabilityInfo/unreachable.ll index d3ada520c4dac..1de1893a72911 100644 --- a/llvm/test/Analysis/BranchProbabilityInfo/unreachable.ll +++ b/llvm/test/Analysis/BranchProbabilityInfo/unreachable.ll @@ -5,7 +5,7 @@ declare void @bar() cold ; Both 'l1' and 'r1' has one edge leading to 'cold' and another one to ; 'unreachable' blocks. Check that 'cold' paths are preferred. Also ensure both ; paths from 'entry' block are equal. -define void @test1(i32 %0) { +define void @test1(i32 %0, i1 %arg) { ;CHECK: edge %entry -> %l1 probability is 0x40000000 / 0x80000000 = 50.00% ;CHECK: edge %entry -> %r1 probability is 0x40000000 / 0x80000000 = 50.00% ;CHECK: edge %l1 -> %cold probability is 0x80000000 / 0x80000000 = 100.00% [HOT edge] @@ -14,13 +14,13 @@ define void @test1(i32 %0) { ;CHECK: edge %r1 -> %cold probability is 0x80000000 / 0x80000000 = 100.00% [HOT edge] entry: - br i1 undef, label %l1, label %r1 + br i1 %arg, label %l1, label %r1 l1: - br i1 undef, label %cold, label %unreached + br i1 %arg, label %cold, label %unreached r1: - br i1 undef, label %unreached, label %cold + br i1 %arg, label %unreached, label %cold unreached: unreachable @@ -33,7 +33,7 @@ cold: ; Both edges of 'l1' leads to 'cold' blocks while one edge of 'r1' leads to ; 'unreachable' block. Check that 'l1' has 50/50 while 'r1' has 0/100 ; distributuion. Also ensure both paths from 'entry' block are equal. -define void @test2(i32 %0) { +define void @test2(i32 %0, i1 %arg) { ;CHECK: edge %entry -> %l1 probability is 0x40000000 / 0x80000000 = 50.00% ;CHECK: edge %entry -> %r1 probability is 0x40000000 / 0x80000000 = 50.00% ;CHECK: edge %l1 -> %cold probability is 0x40000000 / 0x80000000 = 50.00% @@ -42,13 +42,13 @@ define void @test2(i32 %0) { ;CHECK: edge %r1 -> %cold probability is 0x80000000 / 0x80000000 = 100.00% [HOT edge] entry: - br i1 undef, label %l1, label %r1 + br i1 %arg, label %l1, label %r1 l1: - br i1 undef, label %cold, label %cold2 + br i1 %arg, label %cold, label %cold2 r1: - br i1 undef, label %unreached, label %cold + br i1 %arg, label %unreached, label %cold unreached: unreachable @@ -64,7 +64,7 @@ cold2: ; Both edges of 'r1' leads to 'unreachable' blocks while one edge of 'l1' leads to ; 'cold' block. Ensure that path leading to 'cold' block is preferred. -define void @test3(i32 %0) { +define void @test3(i32 %0, i1 %arg) { ;CHECK: edge %entry -> %l1 probability is 0x80000000 / 0x80000000 = 100.00% [HOT edge] ;CHECK: edge %entry -> %r1 probability is 0x00000000 / 0x80000000 = 0.00% ;CHECK: edge %l1 -> %cold probability is 0x80000000 / 0x80000000 = 100.00% [HOT edge] @@ -73,13 +73,13 @@ define void @test3(i32 %0) { ;CHECK: edge %r1 -> %unreached2 probability is 0x40000000 / 0x80000000 = 50.00% entry: - br i1 undef, label %l1, label %r1 + br i1 %arg, label %l1, label %r1 l1: - br i1 undef, label %cold, label %unreached + br i1 %arg, label %cold, label %unreached r1: - br i1 undef, label %unreached, label %unreached2 + br i1 %arg, label %unreached, label %unreached2 unreached: unreachable @@ -95,7 +95,7 @@ cold: ; Left edge of 'entry' leads to 'cold' block while right edge is 'normal' continuation. ; Check that we able to propagate 'cold' weight to 'entry' block. Also ensure ; both edges from 'l1' are equally likely. -define void @test4(i32 %0) { +define void @test4(i32 %0, i1 %arg) { ;CHECK: edge %entry -> %l1 probability is 0x078780e3 / 0x80000000 = 5.88% ;CHECK: edge %entry -> %r1 probability is 0x78787f1d / 0x80000000 = 94.12% [HOT edge] ;CHECK: edge %l1 -> %l2 probability is 0x40000000 / 0x80000000 = 50.00% @@ -105,10 +105,10 @@ define void @test4(i32 %0) { ;CHECK: edge %to.cold -> %cold probability is 0x80000000 / 0x80000000 = 100.00% [HOT edge] entry: - br i1 undef, label %l1, label %r1 + br i1 %arg, label %l1, label %r1 l1: - br i1 undef, label %l2, label %r2 + br i1 %arg, label %l2, label %r2 l2: br label %to.cold @@ -128,7 +128,7 @@ cold: } ; Check that most likely path from 'entry' to 'l2' through 'r1' is preferred. -define void @test5(i32 %0) { +define void @test5(i32 %0, i1 %arg) { ;CHECK: edge %entry -> %cold probability is 0x078780e3 / 0x80000000 = 5.88% ;CHECK: edge %entry -> %r1 probability is 0x78787f1d / 0x80000000 = 94.12% [HOT edge] ;CHECK: edge %cold -> %l2 probability is 0x80000000 / 0x80000000 = 100.00% [HOT edge] @@ -136,14 +136,14 @@ define void @test5(i32 %0) { ;CHECK: edge %r1 -> %unreached probability is 0x00000000 / 0x80000000 = 0.00% entry: - br i1 undef, label %cold, label %r1 + br i1 %arg, label %cold, label %r1 cold: call void @bar() br label %l2 r1: - br i1 undef, label %l2, label %unreached + br i1 %arg, label %l2, label %unreached l2: ret void diff --git a/llvm/test/Analysis/CostModel/SystemZ/intrinsic-cost-crash.ll b/llvm/test/Analysis/CostModel/SystemZ/intrinsic-cost-crash.ll index d8a864a85ed59..ecc7fc8fdb98a 100644 --- a/llvm/test/Analysis/CostModel/SystemZ/intrinsic-cost-crash.ll +++ b/llvm/test/Analysis/CostModel/SystemZ/intrinsic-cost-crash.ll @@ -26,12 +26,12 @@ declare void @llvm.lifetime.end(i64, ptr nocapture) #0 ; Function Attrs: nounwind ssp uwtable -define hidden void @fun(ptr %N) #1 align 2 { +define hidden void @fun(ptr %N, i1 %arg) #1 align 2 { ; CHECK: define entry: %NumOperands.i = getelementptr inbounds %"class.llvm::SDNode.310.1762.9990.10474.10958.11442.11926.12410.12894.13378.13862.15314.15798.16282.17734.19186.21122.25962.26930.29350.29834.30318.30802.31286.31770.32254.32738.33706.36610.38062.41642", ptr %N, i64 0, i32 8 %0 = load i16, ptr %NumOperands.i, align 8, !tbaa !1 - br i1 undef, label %for.cond.cleanup, label %for.body.lr.ph + br i1 %arg, label %for.cond.cleanup, label %for.body.lr.ph for.body.lr.ph: ; preds = %entry %wide.trip.count192 = zext i16 %0 to i64 diff --git a/llvm/test/Analysis/CycleInfo/basic.ll b/llvm/test/Analysis/CycleInfo/basic.ll index e459b0c317f94..33e5227b162fd 100644 --- a/llvm/test/Analysis/CycleInfo/basic.ll +++ b/llvm/test/Analysis/CycleInfo/basic.ll @@ -7,36 +7,36 @@ define void @empty() { ret void } -define void @simple() { +define void @simple(i1 %arg) { ; CHECK-LABEL: CycleInfo for function: simple ; CHECK: depth=1: entries(loop) entry: br label %loop loop: - br i1 undef, label %loop, label %exit + br i1 %arg, label %loop, label %exit exit: ret void } -define void @two_latches() { +define void @two_latches(i1 %arg) { ; CHECK-LABEL: CycleInfo for function: two_latches ; CHECK: depth=1: entries(loop) loop_next entry: br label %loop loop: - br i1 undef, label %loop, label %loop_next + br i1 %arg, label %loop, label %loop_next loop_next: - br i1 undef, label %exit, label %loop + br i1 %arg, label %exit, label %loop exit: ret void } -define void @nested_simple() { +define void @nested_simple(i1 %arg) { ; CHECK-LABEL: CycleInfo for function: nested_simple ; CHECK: depth=1: entries(outer_header) outer_latch inner ; CHECK: depth=2: entries(inner) @@ -47,16 +47,16 @@ outer_header: br label %inner inner: - br i1 undef, label %inner, label %outer_latch + br i1 %arg, label %inner, label %outer_latch outer_latch: - br i1 undef, label %outer_header, label %exit + br i1 %arg, label %outer_header, label %exit exit: ret void } -define void @nested_outer_latch_in_inner_loop() { +define void @nested_outer_latch_in_inner_loop(i1 %arg) { ; CHECK-LABEL: CycleInfo for function: nested_outer_latch_in_inner_loop ; CHECK: depth=1: entries(outer_header) inner_header inner_latch ; CHECK: depth=2: entries(inner_header) inner_latch @@ -67,33 +67,33 @@ outer_header: br label %inner_header inner_header: - br i1 undef, label %inner_latch, label %outer_header + br i1 %arg, label %inner_latch, label %outer_header inner_latch: - br i1 undef, label %exit, label %inner_header + br i1 %arg, label %exit, label %inner_header exit: ret void } -define void @sibling_loops() { +define void @sibling_loops(i1 %arg) { ; CHECK-LABEL: CycleInfo for function: sibling_loops ; CHECK-DAG: depth=1: entries(left) ; CHECK-DAG: depth=1: entries(right) entry: - br i1 undef, label %left, label %right + br i1 %arg, label %left, label %right left: - br i1 undef, label %left, label %exit + br i1 %arg, label %left, label %exit right: - br i1 undef, label %right, label %exit + br i1 %arg, label %right, label %exit exit: ret void } -define void @serial_loops() { +define void @serial_loops(i1 %arg) { ; CHECK-LABEL: CycleInfo for function: serial_loops ; CHECK-DAG: depth=1: entries(second) ; CHECK-DAG: depth=1: entries(first) @@ -101,16 +101,16 @@ entry: br label %first first: - br i1 undef, label %first, label %second + br i1 %arg, label %first, label %second second: - br i1 undef, label %second, label %exit + br i1 %arg, label %second, label %exit exit: ret void } -define void @nested_sibling_loops() { +define void @nested_sibling_loops(i1 %arg) { ; CHECK-LABEL: CycleInfo for function: nested_sibling_loops ; CHECK: depth=1: entries(outer_header) left right ; CHECK-DAG: depth=2: entries(right) @@ -119,7 +119,7 @@ entry: br label %outer_header outer_header: - br i1 undef, label %left, label %right + br i1 %arg, label %left, label %right left: switch i32 undef, label %exit [ i32 0, label %left @@ -133,7 +133,7 @@ exit: ret void } -define void @deeper_nest() { +define void @deeper_nest(i1 %arg) { ; CHECK-LABEL: CycleInfo for function: deeper_nest ; CHECK: depth=1: entries(outer_header) outer_latch middle_header inner_header inner_latch ; CHECK: depth=2: entries(middle_header) inner_header inner_latch @@ -148,47 +148,47 @@ middle_header: br label %inner_header inner_header: - br i1 undef, label %middle_header, label %inner_latch + br i1 %arg, label %middle_header, label %inner_latch inner_latch: - br i1 undef, label %inner_header, label %outer_latch + br i1 %arg, label %inner_header, label %outer_latch outer_latch: - br i1 undef, label %outer_header, label %exit + br i1 %arg, label %outer_header, label %exit exit: ret void } -define void @irreducible_basic() { +define void @irreducible_basic(i1 %arg) { ; CHECK-LABEL: CycleInfo for function: irreducible_basic ; CHECK: depth=1: entries(right left) entry: - br i1 undef, label %left, label %right + br i1 %arg, label %left, label %right left: - br i1 undef, label %right, label %exit + br i1 %arg, label %right, label %exit right: - br i1 undef, label %left, label %exit + br i1 %arg, label %left, label %exit exit: ret void } -define void @irreducible_mess() { +define void @irreducible_mess(i1 %arg) { ; CHECK-LABEL: CycleInfo for function: irreducible_mess ; CHECK: depth=1: entries(B A) D C ; CHECK: depth=2: entries(D C A) ; CHECK: depth=3: entries(C A) entry: - br i1 undef, label %A, label %B + br i1 %arg, label %A, label %B A: - br i1 undef, label %C, label %D + br i1 %arg, label %C, label %D B: - br i1 undef, label %C, label %D + br i1 %arg, label %C, label %D C: switch i32 undef, label %A [ i32 0, label %D @@ -202,7 +202,7 @@ exit: ret void } -define void @irreducible_into_simple_cycle() { +define void @irreducible_into_simple_cycle(i1 %arg) { ; CHECK-LABEL: CycleInfo for function: irreducible_into_simple_cycle ; CHECK: depth=1: entries(F C A) E D B entry: @@ -219,28 +219,28 @@ C: br label %D D: - br i1 undef, label %E, label %exit + br i1 %arg, label %E, label %exit E: br label %F F: - br i1 undef, label %A, label %exit + br i1 %arg, label %A, label %exit exit: ret void } -define void @irreducible_mountain_bug() { +define void @irreducible_mountain_bug(i1 %arg) { ; CHECK-LABEL: CycleInfo for function: irreducible_mountain_bug ; CHECK: depth=1: entries(while.cond) ; CHECK: depth=2: entries(cond.end61 cond.true49) while.body63 while.cond47 ; CHECK: depth=3: entries(while.body63 cond.true49) while.cond47 entry: - br i1 undef, label %if.end, label %if.then + br i1 %arg, label %if.end, label %if.then if.end: - br i1 undef, label %if.then7, label %if.else + br i1 %arg, label %if.then7, label %if.else if.then7: br label %if.end16 @@ -249,49 +249,49 @@ if.else: br label %if.end16 if.end16: - br i1 undef, label %while.cond.preheader, label %if.then39 + br i1 %arg, label %while.cond.preheader, label %if.then39 while.cond.preheader: br label %while.cond while.cond: - br i1 undef, label %cond.true49, label %lor.rhs + br i1 %arg, label %cond.true49, label %lor.rhs cond.true49: - br i1 undef, label %if.then69, label %while.body63 + br i1 %arg, label %if.then69, label %while.body63 while.body63: - br i1 undef, label %exit, label %while.cond47 + br i1 %arg, label %exit, label %while.cond47 while.cond47: - br i1 undef, label %cond.true49, label %cond.end61 + br i1 %arg, label %cond.true49, label %cond.end61 cond.end61: - br i1 undef, label %while.body63, label %while.cond + br i1 %arg, label %while.body63, label %while.cond if.then69: - br i1 undef, label %exit, label %while.cond + br i1 %arg, label %exit, label %while.cond lor.rhs: - br i1 undef, label %cond.end61, label %while.end76 + br i1 %arg, label %cond.end61, label %while.end76 while.end76: br label %exit if.then39: - br i1 undef, label %exit, label %if.end.i145 + br i1 %arg, label %exit, label %if.end.i145 if.end.i145: - br i1 undef, label %exit, label %if.end8.i149 + br i1 %arg, label %exit, label %if.end8.i149 if.end8.i149: br label %exit if.then: - br i1 undef, label %exit, label %if.end.i + br i1 %arg, label %exit, label %if.end.i if.end.i: - br i1 undef, label %exit, label %if.end8.i + br i1 %arg, label %exit, label %if.end8.i if.end8.i: br label %exit diff --git a/llvm/test/Analysis/CycleInfo/unreachable-predecessor.ll b/llvm/test/Analysis/CycleInfo/unreachable-predecessor.ll index 3655095ff6d82..17114de7d0f2d 100644 --- a/llvm/test/Analysis/CycleInfo/unreachable-predecessor.ll +++ b/llvm/test/Analysis/CycleInfo/unreachable-predecessor.ll @@ -1,7 +1,7 @@ ; RUN: opt < %s -disable-output -passes='verify,print' 2>&1 | FileCheck %s ; CHECK-LABEL: CycleInfo for function: unreachable ; CHECK: depth=1: entries(loop.body) loop.latch inner.block -define void @unreachable(i32 %n) { +define void @unreachable(i32 %n, i1 %arg) { entry: br label %loop.body @@ -13,7 +13,7 @@ unreachable.block: br label %inner.block inner.block: - br i1 undef, label %loop.exit, label %loop.latch + br i1 %arg, label %loop.exit, label %loop.latch loop.latch: br label %loop.body diff --git a/llvm/test/Analysis/Delinearization/type_mismatch.ll b/llvm/test/Analysis/Delinearization/type_mismatch.ll index c7c2c285a7307..a9501519d0316 100644 --- a/llvm/test/Analysis/Delinearization/type_mismatch.ll +++ b/llvm/test/Analysis/Delinearization/type_mismatch.ll @@ -8,7 +8,7 @@ target datalayout = "e-m:e-p:32:32-i64:64-a:0-v32:32-n16:32" -define fastcc void @test() { +define fastcc void @test(i1 %arg) { entry: %0 = load i16, ptr undef, align 2 %conv21 = zext i16 %0 to i32 @@ -21,7 +21,7 @@ for.cond7.preheader: for.body11: %arrayidx.phi = phi ptr [ %p1.022, %for.cond7.preheader ], [ undef, %for.body11 ] store i8 undef, ptr %arrayidx.phi, align 1 - br i1 undef, label %for.body11, label %for.end + br i1 %arg, label %for.body11, label %for.end for.end: %add.ptr = getelementptr inbounds i8, ptr %p1.022, i32 %conv21 diff --git a/llvm/test/Analysis/Delinearization/undef.ll b/llvm/test/Analysis/Delinearization/undef.ll index 0e8dc5146c3e4..1e62c4579c9c6 100644 --- a/llvm/test/Analysis/Delinearization/undef.ll +++ b/llvm/test/Analysis/Delinearization/undef.ll @@ -2,17 +2,17 @@ target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" -define void @foo(ptr %Ey) { +define void @foo(ptr %Ey, i1 %arg) { entry: - br i1 undef, label %for.cond55.preheader, label %for.end324 + br i1 %arg, label %for.cond55.preheader, label %for.end324 for.cond55.preheader: %iz.069 = phi i64 [ %inc323, %for.inc322 ], [ 0, %entry ] - br i1 undef, label %for.cond58.preheader, label %for.inc322 + br i1 %arg, label %for.cond58.preheader, label %for.inc322 for.cond58.preheader: %iy.067 = phi i64 [ %inc320, %for.end ], [ 0, %for.cond55.preheader ] - br i1 undef, label %for.body60, label %for.end + br i1 %arg, label %for.body60, label %for.end for.body60: %ix.062 = phi i64 [ %inc, %for.body60 ], [ 0, %for.cond58.preheader ] @@ -27,11 +27,11 @@ for.body60: for.end: %inc320 = add nsw i64 %iy.067, 1 - br i1 undef, label %for.cond58.preheader, label %for.inc322 + br i1 %arg, label %for.cond58.preheader, label %for.inc322 for.inc322: %inc323 = add nsw i64 %iz.069, 1 - br i1 undef, label %for.cond55.preheader, label %for.end324 + br i1 %arg, label %for.cond55.preheader, label %for.end324 for.end324: ret void diff --git a/llvm/test/Analysis/DependenceAnalysis/MIVCheckConst.ll b/llvm/test/Analysis/DependenceAnalysis/MIVCheckConst.ll index baa623d4b9554..e33dca9d89c82 100644 --- a/llvm/test/Analysis/DependenceAnalysis/MIVCheckConst.ll +++ b/llvm/test/Analysis/DependenceAnalysis/MIVCheckConst.ll @@ -29,21 +29,21 @@ target datalayout = "e-m:e-p:32:32-i1:32-i64:64-a:0-v32:32-n16:32" %20 = type { [768 x i32] } %21 = type { [416 x i32] } -define void @test(ptr %A) #0 align 2 { +define void @test(ptr %A, i1 %arg) #0 align 2 { entry: %v1 = load i32, ptr undef, align 4 br label %bb13 bb13: %v2 = phi i32 [ undef, %entry ], [ %v39, %bb38 ] - br i1 undef, label %bb15, label %bb38 + br i1 %arg, label %bb15, label %bb38 bb15: %v3 = mul nsw i32 %v2, undef br label %bb17 bb17: - br i1 undef, label %bb21, label %bb37 + br i1 %arg, label %bb21, label %bb37 bb21: %v22 = add nsw i32 undef, 1 @@ -55,10 +55,10 @@ bb21: %v29 = mul nsw i32 %v28, 32 %v30 = getelementptr inbounds %1, ptr %A, i32 0, i32 7, i32 14, i32 %v29 %v32 = load <32 x i32>, ptr %v30, align 128 - br i1 undef, label %bb21, label %bb37 + br i1 %arg, label %bb21, label %bb37 bb37: - br i1 undef, label %bb17, label %bb38 + br i1 %arg, label %bb17, label %bb38 bb38: %v39 = add nsw i32 %v2, 1 diff --git a/llvm/test/Analysis/DependenceAnalysis/NonAffineExpr.ll b/llvm/test/Analysis/DependenceAnalysis/NonAffineExpr.ll index b4b768b4be2ed..6837d451667b9 100644 --- a/llvm/test/Analysis/DependenceAnalysis/NonAffineExpr.ll +++ b/llvm/test/Analysis/DependenceAnalysis/NonAffineExpr.ll @@ -7,7 +7,7 @@ target datalayout = "e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n8:16:32-S64" target triple = "thumbv7--linux-gnueabi" -define void @f(ptr %a, i32 %n) align 2 { +define void @f(ptr %a, i32 %n, i1 %arg) align 2 { for.preheader: %t.0 = ashr exact i32 %n, 3 br label %for.body.1 @@ -15,7 +15,7 @@ for.preheader: for.body.1: %i.1 = phi i32 [ %t.5, %for.inc ], [ 0, %for.preheader ] %i.2 = phi i32 [ %i.5, %for.inc ], [ %t.0, %for.preheader ] - br i1 undef, label %for.inc, label %for.body.2 + br i1 %arg, label %for.inc, label %for.body.2 for.body.2: %i.3 = phi i32 [ %t.1, %for.body.2 ], [ %i.1, %for.body.1 ] @@ -23,13 +23,13 @@ for.body.2: %t.2 = load ptr, ptr %a, align 4 %t.3 = getelementptr inbounds i32, ptr %t.2, i32 %i.3 %t.4 = load i32, ptr %t.3, align 4 - br i1 undef, label %for.inc, label %for.body.2 + br i1 %arg, label %for.inc, label %for.body.2 for.inc: %i.4 = phi i32 [ %i.2, %for.body.1 ], [ %i.2, %for.body.2 ] %t.5 = add i32 %i.1, %i.4 %i.5 = add i32 %i.2, -1 - br i1 undef, label %for.exit, label %for.body.1 + br i1 %arg, label %for.exit, label %for.body.1 for.exit: ret void diff --git a/llvm/test/Analysis/Dominators/basic.ll b/llvm/test/Analysis/Dominators/basic.ll index 1ec45bbefcb07..7e04ae4d53bea 100644 --- a/llvm/test/Analysis/Dominators/basic.ll +++ b/llvm/test/Analysis/Dominators/basic.ll @@ -1,6 +1,6 @@ ; RUN: opt < %s -disable-output -passes='print' 2>&1 | FileCheck %s -define void @test1() { +define void @test1(i1 %arg) { ; CHECK-LABEL: DominatorTree for function: test1 ; CHECK: [1] %entry ; CHECK-NEXT: [2] %a @@ -10,7 +10,7 @@ define void @test1() { ; CHECK-NEXT: [2] %b entry: - br i1 undef, label %a, label %b + br i1 %arg, label %a, label %b a: br label %c @@ -19,7 +19,7 @@ b: br label %c c: - br i1 undef, label %d, label %e + br i1 %arg, label %d, label %e d: ret void @@ -28,7 +28,7 @@ e: ret void } -define void @test2() { +define void @test2(i1 %arg) { ; CHECK-LABEL: DominatorTree for function: test2 ; CHECK: [1] %entry ; CHECK-NEXT: [2] %a @@ -44,13 +44,13 @@ a: br label %b b: - br i1 undef, label %a, label %c + br i1 %arg, label %a, label %c c: - br i1 undef, label %d, label %ret + br i1 %arg, label %d, label %ret d: - br i1 undef, label %a, label %ret + br i1 %arg, label %a, label %ret ret: ret void diff --git a/llvm/test/Analysis/Dominators/print-dot-dom.ll b/llvm/test/Analysis/Dominators/print-dot-dom.ll index f7d3ea9d0f52d..4782c0201c0ae 100644 --- a/llvm/test/Analysis/Dominators/print-dot-dom.ll +++ b/llvm/test/Analysis/Dominators/print-dot-dom.ll @@ -5,7 +5,7 @@ ; RUN: FileCheck %s -input-file=dom.test1.dot -check-prefix=TEST1 ; RUN: FileCheck %s -input-file=dom.test2.dot -check-prefix=TEST2 -define void @test1() { +define void @test1(i1 %arg) { ; TEST1: digraph "Dominator tree for 'test1' function" ; TEST1-NEXT: label="Dominator tree for 'test1' function" ; TEST1: Node0x[[EntryID:.*]] [shape=record,label="{entry: @@ -21,7 +21,7 @@ define void @test1() { ; TEST1-NEXT: Node0x[[B_ID]] [shape=record,label="{b: entry: - br i1 undef, label %a, label %b + br i1 %arg, label %a, label %b a: br label %c @@ -30,7 +30,7 @@ b: br label %c c: - br i1 undef, label %d, label %e + br i1 %arg, label %d, label %e d: ret void @@ -39,7 +39,7 @@ e: ret void } -define void @test2() { +define void @test2(i1 %arg) { ; TEST2: digraph "Dominator tree for 'test2' function" ; TEST2-NEXT: label="Dominator tree for 'test2' function" ; TEST2: Node0x[[EntryID:.*]] [shape=record,label="{entry: @@ -61,13 +61,13 @@ a: br label %b b: - br i1 undef, label %a, label %c + br i1 %arg, label %a, label %c c: - br i1 undef, label %d, label %e + br i1 %arg, label %d, label %e d: - br i1 undef, label %a, label %e + br i1 %arg, label %a, label %e e: ret void diff --git a/llvm/test/Analysis/MemoryDependenceAnalysis/invariant.group-bug.ll b/llvm/test/Analysis/MemoryDependenceAnalysis/invariant.group-bug.ll index ac5bd9b852c51..c11191ee96d01 100644 --- a/llvm/test/Analysis/MemoryDependenceAnalysis/invariant.group-bug.ll +++ b/llvm/test/Analysis/MemoryDependenceAnalysis/invariant.group-bug.ll @@ -17,35 +17,37 @@ target triple = "x86_64-grtev4-linux-gnu" %4 = type { ptr } %5 = type { i64, [8 x i8] } -define void @fail(ptr noalias sret(i1) %arg, ptr %arg1, ptr %arg2, ptr %arg3) local_unnamed_addr #0 { +define void @fail(ptr noalias sret(i1) %arg, ptr %arg1, ptr %arg2, ptr %arg3, i1 %arg4) local_unnamed_addr #0 { ; CHECK-LABEL: @fail( ; CHECK-NEXT: bb: -; CHECK-NEXT: [[I4:%.*]] = load ptr, ptr [[ARG1:%.*]], align 8, !invariant.group !6 +; CHECK-NEXT: [[I4:%.*]] = load ptr, ptr [[ARG1:%.*]], align 8, !invariant.group [[META6:![0-9]+]] ; CHECK-NEXT: [[I5:%.*]] = getelementptr inbounds ptr, ptr [[I4]], i64 6 -; CHECK-NEXT: [[I6:%.*]] = load ptr, ptr [[I5]], align 8, !invariant.load !6 +; CHECK-NEXT: [[I6:%.*]] = load ptr, ptr [[I5]], align 8, !invariant.load [[META6]] ; CHECK-NEXT: [[I7:%.*]] = tail call i64 [[I6]](ptr [[ARG1]]) #[[ATTR1:[0-9]+]] ; CHECK-NEXT: [[I9:%.*]] = load ptr, ptr [[ARG2:%.*]], align 8 ; CHECK-NEXT: store i8 0, ptr [[I9]], align 1 -; CHECK-NEXT: br i1 undef, label [[BB10:%.*]], label [[BB29:%.*]] +; CHECK-NEXT: br i1 [[ARG4:%.*]], label [[BB10:%.*]], label [[BB29:%.*]] ; CHECK: bb10: ; CHECK-NEXT: [[I14_PHI_TRANS_INSERT:%.*]] = getelementptr inbounds ptr, ptr [[I4]], i64 22 -; CHECK-NEXT: [[I15_PRE:%.*]] = load ptr, ptr [[I14_PHI_TRANS_INSERT]], align 8, !invariant.load !6 +; CHECK-NEXT: [[I15_PRE:%.*]] = load ptr, ptr [[I14_PHI_TRANS_INSERT]], align 8, !invariant.load [[META6]] ; CHECK-NEXT: br label [[BB12:%.*]] ; CHECK: bb12: ; CHECK-NEXT: [[I16:%.*]] = call i64 [[I15_PRE]](ptr nonnull [[ARG1]], ptr null, i64 0) #[[ATTR1]] -; CHECK-NEXT: br i1 undef, label [[BB28:%.*]], label [[BB17:%.*]] +; CHECK-NEXT: br i1 true, label [[BB28:%.*]], label [[BB17:%.*]] ; CHECK: bb17: -; CHECK-NEXT: br i1 undef, label [[BB18:%.*]], label [[BB21:%.*]] +; CHECK-NEXT: br i1 true, label [[BB18:%.*]], label [[BB21:%.*]] ; CHECK: bb18: ; CHECK-NEXT: br label [[BB28]] ; CHECK: bb21: -; CHECK-NEXT: br i1 undef, label [[BB25:%.*]], label [[BB26:%.*]] +; CHECK-NEXT: br i1 true, label [[BB25:%.*]], label [[BB26:%.*]] ; CHECK: bb25: ; CHECK-NEXT: br label [[BB28]] ; CHECK: bb26: ; CHECK-NEXT: br label [[BB28]] ; CHECK: bb28: -; CHECK-NEXT: br i1 undef, label [[BB12]], label [[BB29]] +; CHECK-NEXT: br i1 true, label [[BB12]], label [[BB28_BB29_CRIT_EDGE:%.*]] +; CHECK: bb28.bb29_crit_edge: +; CHECK-NEXT: br label [[BB29]] ; CHECK: bb29: ; CHECK-NEXT: ret void ; @@ -56,7 +58,7 @@ bb: %i7 = tail call i64 %i6(ptr %arg1) #1 %i9 = load ptr, ptr %arg2, align 8 store i8 0, ptr %i9, align 1 - br i1 undef, label %bb10, label %bb29 + br i1 %arg4, label %bb10, label %bb29 bb10: ; preds = %bb br label %bb12 @@ -66,10 +68,10 @@ bb12: ; preds = %bb28, %bb10 %i14 = getelementptr inbounds ptr, ptr %i13, i64 22 %i15 = load ptr, ptr %i14, align 8, !invariant.load !6 %i16 = call i64 %i15(ptr nonnull %arg1, ptr null, i64 0) #1 - br i1 undef, label %bb28, label %bb17 + br i1 %arg4, label %bb28, label %bb17 bb17: ; preds = %bb12 - br i1 undef, label %bb18, label %bb21 + br i1 %arg4, label %bb18, label %bb21 bb18: ; preds = %bb17 br label %bb19 @@ -90,7 +92,7 @@ bb23: ; preds = %bb22 br label %bb24 bb24: ; preds = %bb23 - br i1 undef, label %bb25, label %bb26 + br i1 %arg4, label %bb25, label %bb26 bb25: ; preds = %bb24 br label %bb28 @@ -102,7 +104,7 @@ bb27: ; preds = %bb26 br label %bb28 bb28: ; preds = %bb27, %bb25, %bb20, %bb12 - br i1 undef, label %bb12, label %bb29 + br i1 %arg4, label %bb12, label %bb29 bb29: ; preds = %bb28, %bb ret void diff --git a/llvm/test/Analysis/MemorySSA/cyclicphi.ll b/llvm/test/Analysis/MemorySSA/cyclicphi.ll index 8a4ec1753fdc5..a858107a9c51c 100644 --- a/llvm/test/Analysis/MemorySSA/cyclicphi.ll +++ b/llvm/test/Analysis/MemorySSA/cyclicphi.ll @@ -3,15 +3,15 @@ %struct.hoge = type { i32, %struct.widget } %struct.widget = type { i64 } -define hidden void @quux(ptr %f) align 2 { +define hidden void @quux(ptr %f, i1 %arg) align 2 { %tmp = getelementptr inbounds %struct.hoge, ptr %f, i64 0, i32 1, i32 0 %tmp24 = getelementptr inbounds %struct.hoge, ptr %f, i64 0, i32 1 br label %bb26 bb26: ; preds = %bb77, %0 ; CHECK: 3 = MemoryPhi({%0,liveOnEntry},{bb77,2}) -; CHECK-NEXT: br i1 undef, label %bb68, label %bb77 - br i1 undef, label %bb68, label %bb77 +; CHECK-NEXT: br i1 %arg, label %bb68, label %bb77 + br i1 %arg, label %bb68, label %bb77 bb68: ; preds = %bb26 ; CHECK: MemoryUse(liveOnEntry) @@ -31,7 +31,7 @@ bb77: ; preds = %bb68, %bb26 br label %bb26 } -define hidden void @quux_no_null_opt(ptr %f) align 2 #0 { +define hidden void @quux_no_null_opt(ptr %f, i1 %arg) align 2 #0 { ; CHECK-LABEL: quux_no_null_opt( %tmp = getelementptr inbounds %struct.hoge, ptr %f, i64 0, i32 1, i32 0 %tmp24 = getelementptr inbounds %struct.hoge, ptr %f, i64 0, i32 1 @@ -39,8 +39,8 @@ define hidden void @quux_no_null_opt(ptr %f) align 2 #0 { bb26: ; preds = %bb77, %0 ; CHECK: 3 = MemoryPhi({%0,liveOnEntry},{bb77,2}) -; CHECK-NEXT: br i1 undef, label %bb68, label %bb77 - br i1 undef, label %bb68, label %bb77 +; CHECK-NEXT: br i1 %arg, label %bb68, label %bb77 + br i1 %arg, label %bb68, label %bb77 bb68: ; preds = %bb26 ; CHECK: MemoryUse(3) @@ -61,15 +61,15 @@ bb77: ; preds = %bb68, %bb26 } ; CHECK-LABEL: define void @quux_skip -define void @quux_skip(ptr noalias %f, ptr noalias %g) align 2 { +define void @quux_skip(ptr noalias %f, ptr noalias %g, i1 %arg) align 2 { %tmp = getelementptr inbounds %struct.hoge, ptr %f, i64 0, i32 1, i32 0 %tmp24 = getelementptr inbounds %struct.hoge, ptr %f, i64 0, i32 1 br label %bb26 bb26: ; preds = %bb77, %0 ; CHECK: 3 = MemoryPhi({%0,liveOnEntry},{bb77,2}) -; CHECK-NEXT: br i1 undef, label %bb68, label %bb77 - br i1 undef, label %bb68, label %bb77 +; CHECK-NEXT: br i1 %arg, label %bb68, label %bb77 + br i1 %arg, label %bb68, label %bb77 bb68: ; preds = %bb26 ; CHECK: MemoryUse(3) @@ -89,7 +89,7 @@ bb77: ; preds = %bb68, %bb26 } ; CHECK-LABEL: define void @quux_dominated -define void @quux_dominated(ptr noalias %f, ptr noalias %g) align 2 { +define void @quux_dominated(ptr noalias %f, ptr noalias %g, i1 %arg) align 2 { %tmp = getelementptr inbounds %struct.hoge, ptr %f, i64 0, i32 1, i32 0 %tmp24 = getelementptr inbounds %struct.hoge, ptr %f, i64 0, i32 1 br label %bb26 @@ -99,7 +99,7 @@ bb26: ; preds = %bb77, %0 ; CHECK: MemoryUse(3) ; CHECK-NEXT: load ptr, ptr %tmp24, align 8 load ptr, ptr %tmp24, align 8 - br i1 undef, label %bb68, label %bb77 + br i1 %arg, label %bb68, label %bb77 bb68: ; preds = %bb26 ; CHECK: MemoryUse(3) @@ -119,7 +119,7 @@ bb77: ; preds = %bb68, %bb26 } ; CHECK-LABEL: define void @quux_nodominate -define void @quux_nodominate(ptr noalias %f, ptr noalias %g) align 2 { +define void @quux_nodominate(ptr noalias %f, ptr noalias %g, i1 %arg) align 2 { %tmp = getelementptr inbounds %struct.hoge, ptr %f, i64 0, i32 1, i32 0 %tmp24 = getelementptr inbounds %struct.hoge, ptr %f, i64 0, i32 1 br label %bb26 @@ -129,7 +129,7 @@ bb26: ; preds = %bb77, %0 ; CHECK: MemoryUse(liveOnEntry) ; CHECK-NEXT: load ptr, ptr %tmp24, align 8 load ptr, ptr %tmp24, align 8 - br i1 undef, label %bb68, label %bb77 + br i1 %arg, label %bb68, label %bb77 bb68: ; preds = %bb26 ; CHECK: MemoryUse(3) diff --git a/llvm/test/Analysis/MemorySSA/debugvalue.ll b/llvm/test/Analysis/MemorySSA/debugvalue.ll index 81de8857c2c23..1ba083fbcd59f 100644 --- a/llvm/test/Analysis/MemorySSA/debugvalue.ll +++ b/llvm/test/Analysis/MemorySSA/debugvalue.ll @@ -2,14 +2,14 @@ ; REQUIRES: asserts ; CHECK-LABEL: @f_w4_i2 -define void @f_w4_i2() { +define void @f_w4_i2(i1 %arg) { entry: br label %for.cond for.cond: ; preds = %for.body, %entry %i.0 = phi i16 [ 0, %entry ], [ %inc, %for.body ] call void @llvm.dbg.value(metadata i16 %i.0, metadata !32, metadata !DIExpression()), !dbg !31 - br i1 undef, label %for.body, label %for.cond.cleanup + br i1 %arg, label %for.body, label %for.cond.cleanup for.cond.cleanup: ; preds = %for.cond ret void diff --git a/llvm/test/Analysis/MemorySSA/debugvalue2.ll b/llvm/test/Analysis/MemorySSA/debugvalue2.ll index 4565e3f7bc560..8178460502585 100644 --- a/llvm/test/Analysis/MemorySSA/debugvalue2.ll +++ b/llvm/test/Analysis/MemorySSA/debugvalue2.ll @@ -8,7 +8,7 @@ target triple = "x86_64-unknown-linux-gnu" ; CHECK-LABEL: @overflow_iter_var ; CHECK-NOT: MemoryDef -define void @overflow_iter_var() !dbg !11 { +define void @overflow_iter_var(i1 %arg) !dbg !11 { entry: call void @llvm.dbg.value(metadata i16 0, metadata !16, metadata !DIExpression()), !dbg !18 br label %for.cond @@ -16,7 +16,7 @@ entry: for.cond: ; preds = %for.body, %entry call void @llvm.dbg.value(metadata i16 0, metadata !16, metadata !DIExpression()), !dbg !18 call void @llvm.dbg.value(metadata i16 undef, metadata !20, metadata !DIExpression()), !dbg !21 - br i1 undef, label %for.end, label %for.body + br i1 %arg, label %for.end, label %for.body for.body: ; preds = %for.cond %0 = load i16, ptr undef, align 1 diff --git a/llvm/test/Analysis/MemorySSA/forward-unreachable.ll b/llvm/test/Analysis/MemorySSA/forward-unreachable.ll index aead6277a1fba..cfc433359301d 100644 --- a/llvm/test/Analysis/MemorySSA/forward-unreachable.ll +++ b/llvm/test/Analysis/MemorySSA/forward-unreachable.ll @@ -1,9 +1,9 @@ ; RUN: opt -aa-pipeline=basic-aa -passes='print,verify' -disable-output < %s 2>&1 | FileCheck %s target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128" -define void @test() { +define void @test(i1 %arg) { entry: - br i1 undef, label %split1, label %split2 + br i1 %arg, label %split1, label %split2 split1: store i16 undef, ptr undef, align 2 diff --git a/llvm/test/Analysis/MemorySSA/function-clobber.ll b/llvm/test/Analysis/MemorySSA/function-clobber.ll index 53662b1930c34..93e8715c7da60 100644 --- a/llvm/test/Analysis/MemorySSA/function-clobber.ll +++ b/llvm/test/Analysis/MemorySSA/function-clobber.ll @@ -5,7 +5,7 @@ @g = external global i32 declare void @modifyG() -define i32 @foo() { +define i32 @foo(i1 %arg) { ; CHECK: MemoryUse(liveOnEntry) ; CHECK-NEXT: %1 = load i32 %1 = load i32, ptr @g @@ -29,11 +29,11 @@ declare void @readEverything() readonly declare void @clobberEverything() ; CHECK-LABEL: define void @bar -define void @bar() { +define void @bar(i1 %arg) { ; CHECK: 1 = MemoryDef(liveOnEntry) ; CHECK-NEXT: call void @clobberEverything() call void @clobberEverything() - br i1 undef, label %if.end, label %if.then + br i1 %arg, label %if.end, label %if.then if.then: ; CHECK: MemoryUse(1) diff --git a/llvm/test/Analysis/MemorySSA/invariant-groups.ll b/llvm/test/Analysis/MemorySSA/invariant-groups.ll index 8d1ec5226be5e..2042855af5569 100644 --- a/llvm/test/Analysis/MemorySSA/invariant-groups.ll +++ b/llvm/test/Analysis/MemorySSA/invariant-groups.ll @@ -195,7 +195,7 @@ Ret: } ; CHECK-LABEL: define {{.*}} @loop2( -define i8 @loop2(ptr %p) { +define i8 @loop2(ptr %p, i1 %arg) { entry: ; CHECK: 1 = MemoryDef(liveOnEntry) ; CHECK-NEXT: store i8 @@ -207,7 +207,7 @@ entry: ; CHECK: 3 = MemoryDef(2) ; CHECK-NEXT: %after = call ptr @llvm.launder.invariant.group.p0(ptr %p) %after = call ptr @llvm.launder.invariant.group.p0(ptr %p) - br i1 undef, label %Loop.Body, label %Loop.End + br i1 %arg, label %Loop.Body, label %Loop.End Loop.Body: ; CHECK: MemoryUse(6) @@ -221,7 +221,7 @@ Loop.Body: ; CHECK: 4 = MemoryDef(6) store i8 4, ptr %after, !invariant.group !0 - br i1 undef, label %Loop.End, label %Loop.Body + br i1 %arg, label %Loop.End, label %Loop.Body Loop.End: ; CHECK: MemoryUse(5) @@ -231,7 +231,7 @@ Loop.End: ; CHECK: MemoryUse(5) {{.*}} clobbered by 1 ; CHECK-NEXT: %3 = load %3 = load i8, ptr %p, align 4, !invariant.group !0 - br i1 undef, label %Ret, label %Loop.Body + br i1 %arg, label %Ret, label %Loop.Body Ret: ret i8 %3 @@ -239,7 +239,7 @@ Ret: ; CHECK-LABEL: define {{.*}} @loop3( -define i8 @loop3(ptr %p) { +define i8 @loop3(ptr %p, i1 %arg) { entry: ; CHECK: 1 = MemoryDef(liveOnEntry) ; CHECK-NEXT: store i8 @@ -251,7 +251,7 @@ entry: ; CHECK: 3 = MemoryDef(2) ; CHECK-NEXT: %after = call ptr @llvm.launder.invariant.group.p0(ptr %p) %after = call ptr @llvm.launder.invariant.group.p0(ptr %p) - br i1 undef, label %Loop.Body, label %Loop.End + br i1 %arg, label %Loop.Body, label %Loop.End Loop.Body: ; CHECK: MemoryUse(8) @@ -266,7 +266,7 @@ Loop.Body: ; CHECK-NEXT: %1 = load i8 %1 = load i8, ptr %after, !invariant.group !0 - br i1 undef, label %Loop.next, label %Loop.Body + br i1 %arg, label %Loop.next, label %Loop.Body Loop.next: ; CHECK: 5 = MemoryDef(4) ; CHECK-NEXT: call void @clobber8 @@ -276,7 +276,7 @@ Loop.next: ; CHECK-NEXT: %2 = load i8 %2 = load i8, ptr %after, !invariant.group !0 - br i1 undef, label %Loop.End, label %Loop.Body + br i1 %arg, label %Loop.End, label %Loop.Body Loop.End: ; CHECK: MemoryUse(7) @@ -290,14 +290,14 @@ Loop.End: ; CHECK: MemoryUse(6) {{.*}} clobbered by 7 ; CHECK-NEXT: %4 = load %4 = load i8, ptr %after, align 4, !invariant.group !0 - br i1 undef, label %Ret, label %Loop.Body + br i1 %arg, label %Ret, label %Loop.Body Ret: ret i8 %3 } ; CHECK-LABEL: define {{.*}} @loop4( -define i8 @loop4(ptr %p) { +define i8 @loop4(ptr %p, i1 %arg) { entry: ; CHECK: 1 = MemoryDef(liveOnEntry) ; CHECK-NEXT: store i8 @@ -308,7 +308,7 @@ entry: ; CHECK: 3 = MemoryDef(2) ; CHECK-NEXT: %after = call ptr @llvm.launder.invariant.group.p0(ptr %p) %after = call ptr @llvm.launder.invariant.group.p0(ptr %p) - br i1 undef, label %Loop.Pre, label %Loop.End + br i1 %arg, label %Loop.Pre, label %Loop.End Loop.Pre: ; CHECK: MemoryUse(2) @@ -326,7 +326,7 @@ Loop.Body: ; CHECK: 4 = MemoryDef(6) store i8 4, ptr %after, !invariant.group !0 - br i1 undef, label %Loop.End, label %Loop.Body + br i1 %arg, label %Loop.End, label %Loop.Body Loop.End: ; CHECK: MemoryUse(5) @@ -336,7 +336,7 @@ Loop.End: ; CHECK: MemoryUse(5) {{.*}} clobbered by 1 ; CHECK-NEXT: %4 = load %4 = load i8, ptr %p, align 4, !invariant.group !0 - br i1 undef, label %Ret, label %Loop.Body + br i1 %arg, label %Ret, label %Loop.Body Ret: ret i8 %3 diff --git a/llvm/test/Analysis/MemorySSA/loop-rotate-disablebasicaa.ll b/llvm/test/Analysis/MemorySSA/loop-rotate-disablebasicaa.ll index dcf83d2fe280d..34819f1b96af7 100644 --- a/llvm/test/Analysis/MemorySSA/loop-rotate-disablebasicaa.ll +++ b/llvm/test/Analysis/MemorySSA/loop-rotate-disablebasicaa.ll @@ -5,13 +5,13 @@ ; CHECK-LABEL: @main ; CHECK-NOT: MemoryDef -define void @main() { +define void @main(i1 %arg) { entry: br label %for.cond120 for.cond120: ; preds = %for.body127, %entry - call void @foo() - br i1 undef, label %for.body127, label %for.cond.cleanup126 + call void @foo(i1 %arg) + br i1 %arg, label %for.body127, label %for.cond.cleanup126 for.cond.cleanup126: ; preds = %for.cond120 unreachable diff --git a/llvm/test/Analysis/MemorySSA/loop-rotate-simplified-clone.ll b/llvm/test/Analysis/MemorySSA/loop-rotate-simplified-clone.ll index 343c74c96f1dd..0176fc6f83573 100644 --- a/llvm/test/Analysis/MemorySSA/loop-rotate-simplified-clone.ll +++ b/llvm/test/Analysis/MemorySSA/loop-rotate-simplified-clone.ll @@ -1,8 +1,8 @@ ; RUN: opt -verify-memoryssa -passes=loop-rotate %s -S | FileCheck %s ; REQUIRES: asserts -; CHECK-LABEL: @test() -define dso_local void @test() { +; CHECK-LABEL: @test(i1 %arg) +define dso_local void @test(i1 %arg) { entry: br label %preheader @@ -13,7 +13,7 @@ l39: %v40 = phi ptr [ @foo, %preheader ], [ %v43, %crit_edge ] %v41 = call float %v40(float undef) %v42 = load i32, ptr undef, align 8 - br i1 undef, label %crit_edge, label %loopexit + br i1 %arg, label %crit_edge, label %loopexit crit_edge: %v43 = load ptr, ptr undef, align 8 diff --git a/llvm/test/Analysis/MemorySSA/loop-rotate-valuemap.ll b/llvm/test/Analysis/MemorySSA/loop-rotate-valuemap.ll index 1a0448058cca6..25adfbf974f7c 100644 --- a/llvm/test/Analysis/MemorySSA/loop-rotate-valuemap.ll +++ b/llvm/test/Analysis/MemorySSA/loop-rotate-valuemap.ll @@ -5,7 +5,7 @@ ; otherwise, MemorySSA will assert. ; CHECK-LABEL: @f -define void @f() { +define void @f(i1 %arg) { entry: br label %for.body16 @@ -15,7 +15,7 @@ for.cond.cleanup15: ; preds = %for.body16 for.body16: ; preds = %for.body16.for.body16_crit_edge, %entry %call.i = tail call float @expf(float 0.000000e+00) #1 %0 = load ptr, ptr undef, align 8 - br i1 undef, label %for.cond.cleanup15, label %for.body16.for.body16_crit_edge + br i1 %arg, label %for.cond.cleanup15, label %for.body16.for.body16_crit_edge for.body16.for.body16_crit_edge: ; preds = %for.body16 %.pre = load float, ptr undef, align 8 diff --git a/llvm/test/Analysis/MemorySSA/phi-translation.ll b/llvm/test/Analysis/MemorySSA/phi-translation.ll index 3fa9691ea95da..b8244818c6e15 100644 --- a/llvm/test/Analysis/MemorySSA/phi-translation.ll +++ b/llvm/test/Analysis/MemorySSA/phi-translation.ll @@ -73,7 +73,7 @@ phi.1: } ; CHECK-LABEL: define void @cross_phi -define void @cross_phi(ptr noalias %p1, ptr noalias %p2) { +define void @cross_phi(ptr noalias %p1, ptr noalias %p2, i1 %arg) { ; CHECK: 1 = MemoryDef(liveOnEntry) ; CHECK-NEXT: store i8 0, ptr %p1 store i8 0, ptr %p1 @@ -82,19 +82,19 @@ define void @cross_phi(ptr noalias %p1, ptr noalias %p2) { ; LIMIT: MemoryUse(1) ; LIMIT-NEXT: load i8, ptr %p1 load i8, ptr %p1 - br i1 undef, label %a, label %b + br i1 %arg, label %a, label %b a: ; CHECK: 2 = MemoryDef(1) ; CHECK-NEXT: store i8 0, ptr %p2 store i8 0, ptr %p2 - br i1 undef, label %c, label %d + br i1 %arg, label %c, label %d b: ; CHECK: 3 = MemoryDef(1) ; CHECK-NEXT: store i8 1, ptr %p2 store i8 1, ptr %p2 - br i1 undef, label %c, label %d + br i1 %arg, label %c, label %d c: ; CHECK: 6 = MemoryPhi({a,2},{b,3}) @@ -121,7 +121,7 @@ e: } ; CHECK-LABEL: define void @looped -define void @looped(ptr noalias %p1, ptr noalias %p2) { +define void @looped(ptr noalias %p1, ptr noalias %p2, i1 %arg) { ; CHECK: 1 = MemoryDef(liveOnEntry) ; CHECK-NEXT: store i8 0, ptr %p1 store i8 0, ptr %p1 @@ -132,7 +132,7 @@ loop.1: ; CHECK: 2 = MemoryDef(6) ; CHECK-NEXT: store i8 0, ptr %p2 store i8 0, ptr %p2 - br i1 undef, label %loop.2, label %loop.3 + br i1 %arg, label %loop.2, label %loop.3 loop.2: ; CHECK: 5 = MemoryPhi({loop.1,2},{loop.3,4}) @@ -151,23 +151,23 @@ loop.3: ; LIMIT: MemoryUse(4) ; LIMIT-NEXT: load i8, ptr %p1 load i8, ptr %p1 - br i1 undef, label %loop.2, label %loop.1 + br i1 %arg, label %loop.2, label %loop.1 } ; CHECK-LABEL: define void @looped_visitedonlyonce -define void @looped_visitedonlyonce(ptr noalias %p1, ptr noalias %p2) { +define void @looped_visitedonlyonce(ptr noalias %p1, ptr noalias %p2, i1 %arg) { br label %while.cond while.cond: ; CHECK: 5 = MemoryPhi({%0,liveOnEntry},{if.end,3}) -; CHECK-NEXT: br i1 undef, label %if.then, label %if.end - br i1 undef, label %if.then, label %if.end +; CHECK-NEXT: br i1 %arg, label %if.then, label %if.end + br i1 %arg, label %if.then, label %if.end if.then: ; CHECK: 1 = MemoryDef(5) ; CHECK-NEXT: store i8 0, ptr %p1 store i8 0, ptr %p1 - br i1 undef, label %if.end, label %if.then2 + br i1 %arg, label %if.end, label %if.then2 if.then2: ; CHECK: 2 = MemoryDef(1) diff --git a/llvm/test/Analysis/MemorySSA/pr28880.ll b/llvm/test/Analysis/MemorySSA/pr28880.ll index 57cdab7920404..98f326180e857 100644 --- a/llvm/test/Analysis/MemorySSA/pr28880.ll +++ b/llvm/test/Analysis/MemorySSA/pr28880.ll @@ -8,9 +8,9 @@ @global.1 = external hidden unnamed_addr global double, align 8 ; Function Attrs: nounwind ssp uwtable -define hidden fastcc void @hoge() unnamed_addr #0 { +define hidden fastcc void @hoge(i1 %arg) unnamed_addr #0 { bb: - br i1 undef, label %bb1, label %bb2 + br i1 %arg, label %bb1, label %bb2 bb1: ; preds = %bb ; These accesses should not conflict. @@ -28,7 +28,7 @@ bb2: ; preds = %bb br label %bb3 bb3: ; preds = %bb2 - br i1 undef, label %bb4, label %bb6 + br i1 %arg, label %bb4, label %bb6 bb4: ; preds = %bb3 ; These accesses should conflict. diff --git a/llvm/test/Analysis/MemorySSA/pr40749_2.ll b/llvm/test/Analysis/MemorySSA/pr40749_2.ll index 8bfef3f200e62..0fa45534f9c60 100644 --- a/llvm/test/Analysis/MemorySSA/pr40749_2.ll +++ b/llvm/test/Analysis/MemorySSA/pr40749_2.ll @@ -7,7 +7,7 @@ target triple = "s390x-ibm-linux" @g_993 = external dso_local local_unnamed_addr global i32, align 4 ; CHECK-LABEL: @ff6 -define dso_local fastcc void @ff6(i16 %arg1) unnamed_addr #0 { +define dso_local fastcc void @ff6(i16 %arg1, i1 %arg2) unnamed_addr #0 { bb: %tmp6.i = icmp sgt i16 %arg1, 0 br label %bb10 @@ -50,7 +50,7 @@ bb67: ; preds = %bb27 br label %bb75 bb75: ; preds = %bb67, %bb67.us.loopexit - br i1 undef, label %bb24.preheader, label %bb84.loopexit + br i1 %arg2, label %bb24.preheader, label %bb84.loopexit bb81.loopexit: ; preds = %bb61.us br label %bb10 diff --git a/llvm/test/Analysis/MemorySSA/pr41640.ll b/llvm/test/Analysis/MemorySSA/pr41640.ll index 6c407a518edcd..18dd83bec3ff8 100644 --- a/llvm/test/Analysis/MemorySSA/pr41640.ll +++ b/llvm/test/Analysis/MemorySSA/pr41640.ll @@ -6,47 +6,47 @@ target triple = "s390x-ibm-linux" @g_976 = external dso_local global i64, align 8 @g_1087 = external dso_local global ptr, align 8 -; CHECK-LABEL: @f1() +; CHECK-LABEL: @f1(i1 %arg) ; CHECK: 5 = MemoryPhi( ; CHECK-NOT: 7 = MemoryPhi( -define dso_local fastcc void @f1() unnamed_addr #0 { +define dso_local fastcc void @f1(i1 %arg) unnamed_addr #0 { label0: - br i1 undef, label %thread-pre-split.i.preheader, label %label5 + br i1 %arg, label %thread-pre-split.i.preheader, label %label5 thread-pre-split.i.preheader: ; preds = %label0 br label %thread-pre-split.i thread-pre-split.i.us: ; preds = %.critedge1.i.us - br i1 undef, label %.preheader.i.us.preheader, label %label2 + br i1 %arg, label %.preheader.i.us.preheader, label %label2 .preheader.i.us.preheader: ; preds = %thread-pre-split.i.us br label %.preheader.i.us .preheader.i.us: ; preds = %._crit_edge.i.us, %.preheader.i.us.preheader - br i1 undef, label %.lr.ph.i.us, label %._crit_edge.i.us + br i1 %arg, label %.lr.ph.i.us, label %._crit_edge.i.us .lr.ph.i.us: ; preds = %.preheader.i.us br label %label1 label1: ; preds = %label1, %.lr.ph.i.us - br i1 undef, label %label1, label %._crit_edge.i.us + br i1 %arg, label %label1, label %._crit_edge.i.us ._crit_edge.i.us: ; preds = %label1, %.preheader.i.us - br i1 undef, label %.preheader.i.us, label %._crit_edge5.i.us + br i1 %arg, label %.preheader.i.us, label %._crit_edge5.i.us ._crit_edge5.i.us: ; preds = %._crit_edge.i.us br label %label2 label2: ; preds = %._crit_edge5.i.us, %thread-pre-split.i.us tail call void @foo16() - br i1 undef, label %.lr.ph8.i.us.preheader, label %label4 + br i1 %arg, label %.lr.ph8.i.us.preheader, label %label4 .lr.ph8.i.us.preheader: ; preds = %label2 br label %.lr.ph8.i.us .lr.ph8.i.us: ; preds = %.lr.ph8.i.us, %.lr.ph8.i.us.preheader %tmp3 = load volatile i64, ptr @g_976, align 8 - br i1 undef, label %.lr.ph8.i.us, label %._crit_edge9.i.us + br i1 %arg, label %.lr.ph8.i.us, label %._crit_edge9.i.us ._crit_edge9.i.us: ; preds = %.lr.ph8.i.us br label %label4 @@ -55,31 +55,31 @@ label4: ; preds = %._crit_edge9.i.us, %labe br i1 true, label %f9.exit, label %.critedge1.i.us .critedge1.i.us: ; preds = %label4 - br i1 undef, label %thread-pre-split.i.us, label %f9.exit + br i1 %arg, label %thread-pre-split.i.us, label %f9.exit label5: ; preds = %label0 unreachable thread-pre-split.i: ; preds = %.critedge1.i, %thread-pre-split.i.preheader - br i1 undef, label %.preheader.i.preheader, label %.critedge1.i + br i1 %arg, label %.preheader.i.preheader, label %.critedge1.i .preheader.i.preheader: ; preds = %thread-pre-split.i br label %.preheader.i .preheader.i: ; preds = %._crit_edge.i, %.preheader.i.preheader - br i1 undef, label %.lr.ph.i, label %._crit_edge.i + br i1 %arg, label %.lr.ph.i, label %._crit_edge.i .lr.ph.i: ; preds = %.preheader.i br label %label6 label6: ; preds = %label6, %.lr.ph.i - br i1 undef, label %label6, label %._crit_edge.i.loopexit + br i1 %arg, label %label6, label %._crit_edge.i.loopexit ._crit_edge.i.loopexit: ; preds = %label6 br label %._crit_edge.i ._crit_edge.i: ; preds = %._crit_edge.i.loopexit, %.preheader.i - br i1 undef, label %.preheader.i, label %._crit_edge5.i + br i1 %arg, label %.preheader.i, label %._crit_edge5.i ._crit_edge5.i: ; preds = %._crit_edge.i br label %.critedge1.i @@ -88,7 +88,7 @@ label6: ; preds = %label6, %.lr.ph.i %tmp7 = load i32, ptr @g_248, align 4 %tmp8 = xor i32 %tmp7, 55987 store i32 %tmp8, ptr @g_248, align 4 - br i1 undef, label %thread-pre-split.i, label %f9.exit.loopexit + br i1 %arg, label %thread-pre-split.i, label %f9.exit.loopexit f9.exit.loopexit: ; preds = %.critedge1.i br label %f9.exit diff --git a/llvm/test/Analysis/MemorySSA/pr41853.ll b/llvm/test/Analysis/MemorySSA/pr41853.ll index 6b88e80c7b456..39e88fb8a1eb6 100644 --- a/llvm/test/Analysis/MemorySSA/pr41853.ll +++ b/llvm/test/Analysis/MemorySSA/pr41853.ll @@ -2,13 +2,13 @@ ; REQUIRES: asserts target triple = "x86_64-unknown-linux-gnu" -; CHECK-LABEL: @func() -define void @func() { - br i1 undef, label %bb5, label %bb3 +; CHECK-LABEL: @func(i1 %arg) +define void @func(i1 %arg) { + br i1 %arg, label %bb5, label %bb3 bb5: ; preds = %bb5, %0 store i16 undef, ptr undef - br i1 undef, label %bb5, label %bb3 + br i1 %arg, label %bb5, label %bb3 bb3: ; preds = %bb5, %0 ret void diff --git a/llvm/test/Analysis/MemorySSA/pr42940.ll b/llvm/test/Analysis/MemorySSA/pr42940.ll index f7425b38c7ee5..382ba7dfb26b3 100644 --- a/llvm/test/Analysis/MemorySSA/pr42940.ll +++ b/llvm/test/Analysis/MemorySSA/pr42940.ll @@ -6,8 +6,8 @@ target triple = "s390x-ibm-linux" @g_77 = external dso_local global i16, align 2 -; CHECK-LABEL: @f1() -define void @f1() { +; CHECK-LABEL: @f1(i1 %arg) +define void @f1(i1 %arg) { entry: store i16 undef, ptr @g_77, align 2 br label %loop_pre @@ -20,14 +20,14 @@ loop_pre: for.cond.header: store i32 0, ptr undef, align 4 - br i1 undef, label %for.body, label %for.end + br i1 %arg, label %for.body, label %for.end for.body: %tmp1 = load volatile i16, ptr undef, align 2 br label %for.end for.end: - br i1 undef, label %func.exit, label %for.cond.header + br i1 %arg, label %func.exit, label %for.cond.header func.exit: ret void @@ -35,8 +35,8 @@ func.exit: @g_159 = external dso_local global i32, align 4 -; CHECK-LABEL: @f2() -define void @f2() { +; CHECK-LABEL: @f2(i1 %arg) +define void @f2(i1 %arg) { entry: br label %for.header.first @@ -45,10 +45,10 @@ for.header.first: for.body.first: store i32 0, ptr @g_159, align 4 - br i1 undef, label %for.body.first, label %for.end.first + br i1 %arg, label %for.body.first, label %for.end.first for.end.first: - br i1 undef, label %lor.end, label %for.header.first + br i1 %arg, label %lor.end, label %for.header.first lor.end: br label %for.pre @@ -67,14 +67,14 @@ for.header.second: @g_271 = external dso_local global i8, align 2 @g_427 = external dso_local unnamed_addr global [9 x i16], align 2 -; CHECK-LABEL: @f3() -define void @f3() { +; CHECK-LABEL: @f3(i1 %arg) +define void @f3(i1 %arg) { entry: br label %for.preheader for.preheader: store volatile i8 undef, ptr @g_271, align 2 - br i1 undef, label %for.preheader, label %for.end + br i1 %arg, label %for.preheader, label %for.end for.end: br label %lbl_1058.i @@ -91,7 +91,7 @@ for.cond3.preheader.i: %cmp621.i130 = icmp ugt i32 undef, %conv620.i129 %conv622.i131 = zext i1 %cmp621.i130 to i32 store i32 %conv622.i131, ptr undef, align 4 - br i1 undef, label %func.exit, label %for.cond3.preheader.i + br i1 %arg, label %func.exit, label %for.cond3.preheader.i func.exit: ret void @@ -101,17 +101,17 @@ func.exit: @g_244 = external dso_local global i64, align 8 @g_1164 = external dso_local global i64, align 8 -; CHECK-LABEL: @f4() -define void @f4() { +; CHECK-LABEL: @f4(i1 %arg) +define void @f4(i1 %arg) { entry: br label %for.cond8.preheader for.cond8.preheader: store i32 0, ptr getelementptr inbounds ([3 x i32], ptr @g_6, i64 0, i64 2), align 4 - br i1 undef, label %if.end, label %for.cond8.preheader + br i1 %arg, label %if.end, label %for.cond8.preheader if.end: - br i1 undef, label %cleanup1270, label %for.cond504.preheader + br i1 %arg, label %cleanup1270, label %for.cond504.preheader for.cond504.preheader: store i64 undef, ptr @g_244, align 8 @@ -119,7 +119,7 @@ for.cond504.preheader: for.cond559.preheader: store i64 undef, ptr @g_1164, align 8 - br i1 undef, label %for.cond559.preheader, label %cleanup1270 + br i1 %arg, label %for.cond559.preheader, label %cleanup1270 cleanup1270: ret void @@ -127,7 +127,7 @@ cleanup1270: @g_1504 = external dso_local local_unnamed_addr global ptr, align 8 -define void @f5() { +define void @f5(i1 %arg) { bb: tail call fastcc void @f21() br label %bb12.outer @@ -136,7 +136,7 @@ bb12.outer.loopexit: ; No predecessors! br label %bb12.outer bb12.outer: ; preds = %bb12.outer.loopexit, %bb - br i1 undef, label %bb12.outer.split.us, label %bb12.preheader + br i1 %arg, label %bb12.outer.split.us, label %bb12.preheader bb12.preheader: ; preds = %bb12.outer br label %bb12 @@ -148,16 +148,16 @@ bb16.us.us: ; preds = %bb16.us.us, %bb12.o br label %bb16.us.us bb12: ; preds = %bb77.1, %bb12.preheader - br i1 undef, label %bb25.preheader, label %bb77 + br i1 %arg, label %bb25.preheader, label %bb77 bb25.preheader: ; preds = %bb12.1, %bb12 br label %bb25 bb25: ; preds = %l0, %bb25.preheader - br i1 undef, label %bb62, label %bb71.thread + br i1 %arg, label %bb62, label %bb71.thread bb62: ; preds = %bb25 - br i1 undef, label %bb92.loopexit, label %l0 + br i1 %arg, label %bb92.loopexit, label %l0 l0: ; preds = %bb62 br label %bb25 @@ -168,7 +168,7 @@ bb71.thread: ; preds = %bb25 bb77: ; preds = %bb12 %tmp78 = load ptr, ptr @g_1504, align 8 %tmp79 = load volatile ptr, ptr %tmp78, align 8 - br i1 undef, label %bb91, label %bb12.1 + br i1 %arg, label %bb91, label %bb12.1 bb91: ; preds = %bb77.1, %bb77 unreachable @@ -180,10 +180,10 @@ bb92: ; preds = %bb92.loopexit, %bb7 ret void bb12.1: ; preds = %bb77 - br i1 undef, label %bb25.preheader, label %bb77.1 + br i1 %arg, label %bb25.preheader, label %bb77.1 bb77.1: ; preds = %bb12.1 - br i1 undef, label %bb91, label %bb12 + br i1 %arg, label %bb91, label %bb12 } declare void @f21() diff --git a/llvm/test/Analysis/MemorySSA/pr43317.ll b/llvm/test/Analysis/MemorySSA/pr43317.ll index a95079e8828b4..b6bccea1d9303 100644 --- a/llvm/test/Analysis/MemorySSA/pr43317.ll +++ b/llvm/test/Analysis/MemorySSA/pr43317.ll @@ -3,15 +3,15 @@ @v_295 = external dso_local global i16, align 1 @v_335 = external dso_local global i32, align 1 -; CHECK-LABEL: @main() +; CHECK-LABEL: @main(i1 %arg) ; CHECK-NOT: 5 = MemoryPhi( ; CHECK-NOT: 6 = MemoryPhi( ; CHECK: 4 = MemoryPhi( ; CHECK-NOT: 7 = MemoryPhi( -define dso_local void @main() { +define dso_local void @main(i1 %arg) { entry: store i32 undef, ptr @v_335, align 1 - br i1 undef, label %gate, label %exit + br i1 %arg, label %gate, label %exit nopredentry1: ; No predecessors! br label %preinfiniteloop @@ -20,7 +20,7 @@ nopredentry2: ; No predecessors! br label %gate gate: ; preds = %nopredentry2, %entry - br i1 undef, label %preinfiniteloop, label %exit + br i1 %arg, label %preinfiniteloop, label %exit preinfiniteloop: ; preds = %gate, %nopredentry1 br label %infiniteloop diff --git a/llvm/test/Analysis/MemorySSA/pr43320.ll b/llvm/test/Analysis/MemorySSA/pr43320.ll index dd62b6afde83b..23ba8b8a955f8 100644 --- a/llvm/test/Analysis/MemorySSA/pr43320.ll +++ b/llvm/test/Analysis/MemorySSA/pr43320.ll @@ -4,8 +4,8 @@ target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128" target triple = "aarch64" -; CHECK-LABEL: @e() -define void @e() { +; CHECK-LABEL: @e(i1 %arg) +define void @e(i1 %arg) { entry: br label %g @@ -13,16 +13,16 @@ g: ; preds = %cleanup, %entry %0 = load i32, ptr null, align 4 %and = and i32 %0, undef store i32 %and, ptr null, align 4 - br i1 undef, label %if.end8, label %if.then + br i1 %arg, label %if.end8, label %if.then if.then: ; preds = %g - br i1 undef, label %k, label %cleanup + br i1 %arg, label %k, label %cleanup k: ; preds = %if.end8, %if.then - br i1 undef, label %if.end8, label %cleanup + br i1 %arg, label %if.end8, label %cleanup if.end8: ; preds = %k, %g - br i1 undef, label %for.cond.preheader, label %k + br i1 %arg, label %for.cond.preheader, label %k for.cond.preheader: ; preds = %if.end8 unreachable diff --git a/llvm/test/Analysis/MemorySSA/pr43427.ll b/llvm/test/Analysis/MemorySSA/pr43427.ll index 18d87251e1067..a9b442c735b60 100644 --- a/llvm/test/Analysis/MemorySSA/pr43427.ll +++ b/llvm/test/Analysis/MemorySSA/pr43427.ll @@ -1,15 +1,15 @@ ; RUN: opt -disable-output -aa-pipeline=basic-aa -passes='loop-mssa(licm),print' < %s 2>&1 | FileCheck %s -; CHECK-LABEL: @f() +; CHECK-LABEL: @f(i1 %arg) ; CHECK: lbl1: ; CHECK-NEXT: ; [[NO4:.*]] = MemoryPhi({entry,liveOnEntry},{lbl1.backedge,[[NO9:.*]]}) ; CHECK-NEXT: ; [[NO2:.*]] = MemoryDef([[NO4]]) ; CHECK-NEXT: call void @g() -; CHECK-NEXT: br i1 undef, label %for.end, label %if.else +; CHECK-NEXT: br i1 %arg, label %for.end, label %if.else ; CHECK: for.end: -; CHECK-NEXT: br i1 undef, label %lbl3, label %lbl2 +; CHECK-NEXT: br i1 %arg, label %lbl3, label %lbl2 ; CHECK: lbl2: ; CHECK-NEXT: ; [[NO8:.*]] = MemoryPhi({lbl3,[[NO7:.*]]},{for.end,[[NO2]]}) @@ -32,7 +32,7 @@ ; CHECK-NEXT: 3 = MemoryDef([[NO6]]) ; CHECK-NEXT: call void @llvm.lifetime.end.p0(i64 1, ptr null) -define void @f() { +define void @f(i1 %arg) { entry: %e = alloca i16, align 1 br label %lbl1 @@ -40,16 +40,16 @@ entry: lbl1: ; preds = %if.else, %cleanup, %entry store i16 undef, ptr %e, align 1 call void @g() - br i1 undef, label %for.end, label %if.else + br i1 %arg, label %for.end, label %if.else for.end: ; preds = %lbl1 - br i1 undef, label %lbl3, label %lbl2 + br i1 %arg, label %lbl3, label %lbl2 lbl2: ; preds = %lbl3, %for.end br label %lbl3 lbl3: ; preds = %lbl2, %for.end - br i1 undef, label %lbl2, label %cleanup + br i1 %arg, label %lbl2, label %cleanup cleanup: ; preds = %lbl3 %cleanup.dest = load i32, ptr undef, align 1 diff --git a/llvm/test/Analysis/MemorySSA/pr43438.ll b/llvm/test/Analysis/MemorySSA/pr43438.ll index 30f6c2f2fadbb..d137c52e3e0ff 100644 --- a/llvm/test/Analysis/MemorySSA/pr43438.ll +++ b/llvm/test/Analysis/MemorySSA/pr43438.ll @@ -1,36 +1,36 @@ ; RUN: opt -disable-output -aa-pipeline=basic-aa -passes='loop-mssa(licm),print' < %s 2>&1 | FileCheck %s target triple = "x86_64-unknown-linux-gnu" -; CHECK-LABEL: @main() +; CHECK-LABEL: @main(i1 %arg) ; CHECK: 5 = MemoryPhi( ; CHECK-NOT: 7 = MemoryPhi( @v_67 = external dso_local global i32, align 1 @v_76 = external dso_local global i16, align 1 @v_86 = external dso_local global ptr, align 1 -define dso_local void @main() { +define dso_local void @main(i1 %arg) { entry: %v_59 = alloca i16, align 2 br label %for.cond for.cond: ; preds = %for.body, %entry - br i1 undef, label %for.body, label %for.end + br i1 %arg, label %for.body, label %for.end for.body: ; preds = %for.cond store i16 undef, ptr %v_59, align 2 br label %for.cond for.end: ; preds = %for.cond - br i1 undef, label %if.else568, label %cond.end82 + br i1 %arg, label %if.else568, label %cond.end82 cond.false69: ; No predecessors! br label %cond.end82 cond.end82: ; preds = %cond.false69, %cond.true55 - br i1 undef, label %if.else568, label %land.lhs.true87 + br i1 %arg, label %if.else568, label %land.lhs.true87 land.lhs.true87: ; preds = %cond.end82 - br i1 undef, label %if.then88, label %if.else568 + br i1 %arg, label %if.then88, label %if.else568 if.then88: ; preds = %land.lhs.true87 store ptr @v_76, ptr @v_86, align 1 @@ -45,13 +45,13 @@ if.end569: ; preds = %if.else568, %if.the } -; CHECK-LABEL: @f() +; CHECK-LABEL: @f(i1 %arg) ; CHECK: 7 = MemoryPhi( ; CHECK: 6 = MemoryPhi( ; CHECK: 10 = MemoryPhi( ; CHECK: 9 = MemoryPhi( ; CHECK: 8 = MemoryPhi( -define void @f() { +define void @f(i1 %arg) { entry: %e = alloca i16, align 1 br label %lbl1 @@ -60,7 +60,7 @@ lbl1: ; preds = %if.else, %for.end5, store i16 undef, ptr %e, align 1 %0 = load i16, ptr %e, align 1 %call = call i16 @g(i16 %0) - br i1 undef, label %for.end, label %if.else + br i1 %arg, label %for.end, label %if.else for.end: ; preds = %if.then br i1 true, label %for.cond2, label %lbl2 @@ -69,7 +69,7 @@ lbl2: ; preds = %for.body4, %if.end br label %for.cond2 for.cond2: ; preds = %lbl3 - br i1 undef, label %for.body4, label %for.end5 + br i1 %arg, label %for.body4, label %for.end5 for.body4: ; preds = %for.cond2 br label %lbl2 diff --git a/llvm/test/Analysis/MemorySSA/pr43493.ll b/llvm/test/Analysis/MemorySSA/pr43493.ll index 2bd7bdd8b2d7e..623a510ff3cfe 100644 --- a/llvm/test/Analysis/MemorySSA/pr43493.ll +++ b/llvm/test/Analysis/MemorySSA/pr43493.ll @@ -1,10 +1,10 @@ ; RUN: opt -passes=loop-rotate -verify-memoryssa -S %s | FileCheck %s ; REQUIRES: asserts -; CHECK-LABEL: @func_35() -define void @func_35() { +; CHECK-LABEL: @func_35(i1 %arg) +define void @func_35(i1 %arg) { entry: - br i1 undef, label %for.cond1704.preheader, label %return + br i1 %arg, label %for.cond1704.preheader, label %return for.cond1704.preheader: ; preds = %entry br label %for.cond1704 @@ -17,7 +17,7 @@ for.body1707: ; preds = %for.cond1704 br label %for.cond1704 for.body1102: ; preds = %for.body1102 - br i1 undef, label %for.body1102, label %return + br i1 %arg, label %for.body1102, label %return return.loopexit: ; preds = %for.cond1704 br label %return diff --git a/llvm/test/Analysis/MemorySSA/pr43541.ll b/llvm/test/Analysis/MemorySSA/pr43541.ll index 99b2175572042..ff35989369b45 100644 --- a/llvm/test/Analysis/MemorySSA/pr43541.ll +++ b/llvm/test/Analysis/MemorySSA/pr43541.ll @@ -2,8 +2,8 @@ ; REQUIRES: asserts %struct.job_pool.6.7 = type { i32 } -; CHECK-LABEL: @f() -define dso_local void @f() { +; CHECK-LABEL: @f(i1 %arg) +define dso_local void @f(i1 %arg) { entry: br label %for.cond @@ -26,7 +26,7 @@ for.body12: ; preds = %if.end40, %for.body br label %if.then23 if.then23: ; preds = %for.body12 - br i1 undef, label %if.then24, label %if.else + br i1 %arg, label %if.then24, label %if.else if.then24: ; preds = %if.then23 %0 = load ptr, ptr undef, align 8 diff --git a/llvm/test/Analysis/MemorySSA/pr43641.ll b/llvm/test/Analysis/MemorySSA/pr43641.ll index d4b3531b7e0e1..25bbee007037a 100644 --- a/llvm/test/Analysis/MemorySSA/pr43641.ll +++ b/llvm/test/Analysis/MemorySSA/pr43641.ll @@ -2,9 +2,9 @@ ; REQUIRES: asserts ; CHECK-LABEL: @c -define dso_local void @c(i32 signext %d) local_unnamed_addr { +define dso_local void @c(i32 signext %d, i1 %arg) local_unnamed_addr { entry: - br i1 undef, label %while.end, label %while.body.lr.ph + br i1 %arg, label %while.end, label %while.body.lr.ph while.body.lr.ph: ; preds = %entry %tobool1 = icmp ne i32 %d, 0 diff --git a/llvm/test/Analysis/MemorySSA/pr45976.ll b/llvm/test/Analysis/MemorySSA/pr45976.ll index b04849b20b780..5b7c5eb7ee766 100644 --- a/llvm/test/Analysis/MemorySSA/pr45976.ll +++ b/llvm/test/Analysis/MemorySSA/pr45976.ll @@ -4,17 +4,17 @@ @global1 = external global i64, align 8 @global2 = external global [3 x [8 x [8 x { i32, i64, i8, i8, i16, i32 }]]], align 8 -; CHECK-LABEL: @f0() -define void @f0() { +; CHECK-LABEL: @f0(i1 %arg) +define void @f0(i1 %arg) { bb: br label %bb18.i bb18.i: ; preds = %bb49.us.i.us, %bb tail call void @f1() - br i1 undef, label %.exit.loopexit, label %bb49.preheader.i + br i1 %arg, label %.exit.loopexit, label %bb49.preheader.i bb49.preheader.i: ; preds = %bb18.i - br i1 undef, label %bb49.us.preheader.i, label %bb78.loopexit3.i + br i1 %arg, label %bb49.us.preheader.i, label %bb78.loopexit3.i bb49.us.preheader.i: ; preds = %bb49.preheader.i br label %bb49.us.i.us @@ -33,7 +33,7 @@ bb78.loopexit3.i: ; preds = %bb49.preheader.i br label %.exit .exit: ; preds = %.exit.loopexit, %bb78.loopexit3.i, %bb49.us.i.preheader - br i1 undef, label %bb4.i.us.preheader, label %bb4.i + br i1 %arg, label %bb4.i.us.preheader, label %bb4.i bb4.i.us.preheader: ; preds = %.exit br label %bb4.i.us diff --git a/llvm/test/Analysis/MemorySSA/reduce_clobber_limit.ll b/llvm/test/Analysis/MemorySSA/reduce_clobber_limit.ll index a752a84b7d1b6..29d3af5cb259b 100644 --- a/llvm/test/Analysis/MemorySSA/reduce_clobber_limit.ll +++ b/llvm/test/Analysis/MemorySSA/reduce_clobber_limit.ll @@ -3,9 +3,9 @@ target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" -; CHECK-LABEL: @func() +; CHECK-LABEL: @func(i1 %arg) ; Function Attrs: noinline -define dso_local void @func() unnamed_addr #0 align 2 { +define dso_local void @func(i1 %arg) unnamed_addr #0 align 2 { entry: %NoFinalize.addr = alloca i8, align 1 call void @blah() @@ -97,7 +97,7 @@ if.then94: ; preds = %while.end br label %for.cond for.cond: ; preds = %for.body, %if.then94 - br i1 undef, label %for.body, label %if.end120 + br i1 %arg, label %for.body, label %if.end120 for.body: ; preds = %for.cond call void @blah() diff --git a/llvm/test/Analysis/MemorySSA/renamephis.ll b/llvm/test/Analysis/MemorySSA/renamephis.ll index ce19d59adbce9..0e8cf8b7c34db 100644 --- a/llvm/test/Analysis/MemorySSA/renamephis.ll +++ b/llvm/test/Analysis/MemorySSA/renamephis.ll @@ -11,20 +11,20 @@ declare void @g() declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #0 ; CHECK-LABEL: @f -define void @f() align 2 { +define void @f(i1 %arg) align 2 { entry: %P = alloca ptr, align 8 br label %cond.end.i.i.i.i cond.end.i.i.i.i: ; preds = %cont20, %entry - br i1 undef, label %cont20, label %if.end + br i1 %arg, label %cont20, label %if.end cont20: ; preds = %cond.end.i.i.i.i, %cond.end.i.i.i.i, %cond.end.i.i.i.i store ptr undef, ptr %P, align 8 br label %cond.end.i.i.i.i if.end: ; preds = %cond.end.i.i.i.i - br i1 undef, label %cond.exit, label %handler.type_mismatch2.i + br i1 %arg, label %cond.exit, label %handler.type_mismatch2.i handler.type_mismatch2.i: ; preds = %if.end tail call void @g() diff --git a/llvm/test/Analysis/MemorySSA/unreachable.ll b/llvm/test/Analysis/MemorySSA/unreachable.ll index 208be2f56a00e..8f71a926e8583 100644 --- a/llvm/test/Analysis/MemorySSA/unreachable.ll +++ b/llvm/test/Analysis/MemorySSA/unreachable.ll @@ -8,9 +8,9 @@ target triple = "x86_64-grtev4-linux-gnu" declare dso_local void @f() ; CHECK-LABEL: @foo -define dso_local void @foo() { +define dso_local void @foo(i1 %arg) { entry: - br i1 undef, label %if.then, label %if.end + br i1 %arg, label %if.then, label %if.end if.then: ; preds = %entry br label %try.cont diff --git a/llvm/test/Analysis/MemorySSA/update_unroll.ll b/llvm/test/Analysis/MemorySSA/update_unroll.ll index 46a7283eaf103..8aaa4eee3515e 100644 --- a/llvm/test/Analysis/MemorySSA/update_unroll.ll +++ b/llvm/test/Analysis/MemorySSA/update_unroll.ll @@ -7,7 +7,7 @@ target triple = "x86_64-grtev4-linux-gnu" ; Check verification passes after loop rotate, when adding phis in blocks ; receiving incoming edges and adding phis in IDF blocks. ; CHECK-LABEL: @f -define void @f() align 32 { +define void @f(i1 %arg) align 32 { entry: br label %while.cond.outer @@ -15,13 +15,13 @@ while.cond80.while.cond.loopexit_crit_edge: ; preds = %if.else99 br label %while.cond.outer while.cond.outer: ; preds = %while.cond80.while.cond.loopexit_crit_edge, %entry - br i1 undef, label %while.cond.outer.return.loopexit2_crit_edge, label %while.body.lr.ph + br i1 %arg, label %while.cond.outer.return.loopexit2_crit_edge, label %while.body.lr.ph while.body.lr.ph: ; preds = %while.cond.outer br label %while.body while.body: ; preds = %while.body.lr.ph - br i1 undef, label %if.then42, label %if.end61 + br i1 %arg, label %if.then42, label %if.end61 if.then42: ; preds = %while.body br label %return.loopexit2 @@ -30,7 +30,7 @@ if.end61: ; preds = %while.body br label %while.body82 while.body82: ; preds = %if.end61 - br i1 undef, label %return.loopexit, label %if.else99 + br i1 %arg, label %return.loopexit, label %if.else99 if.else99: ; preds = %while.body82 store i32 0, ptr inttoptr (i64 44 to ptr), align 4 diff --git a/llvm/test/Analysis/PhiValues/basic.ll b/llvm/test/Analysis/PhiValues/basic.ll index fc95927806602..c7c40dab04aaf 100644 --- a/llvm/test/Analysis/PhiValues/basic.ll +++ b/llvm/test/Analysis/PhiValues/basic.ll @@ -3,9 +3,9 @@ @X = common global i32 0 ; CHECK-LABEL: PHI Values for function: simple -define void @simple(ptr %ptr) { +define void @simple(ptr %ptr, i1 %arg) { entry: - br i1 undef, label %if, label %else + br i1 %arg, label %if, label %else if: br label %end @@ -26,9 +26,9 @@ end: } ; CHECK-LABEL: PHI Values for function: chain -define void @chain() { +define void @chain(i1 %arg) { entry: - br i1 undef, label %if1, label %else1 + br i1 %arg, label %if1, label %else1 if1: br label %middle @@ -41,7 +41,7 @@ middle: ; CHECK-DAG: i32 0 ; CHECK-DAG: i32 1 %phi1 = phi i32 [ 0, %if1 ], [ 1, %else1 ] - br i1 undef, label %if2, label %else2 + br i1 %arg, label %if2, label %else2 if2: br label %end @@ -59,7 +59,7 @@ end: } ; CHECK-LABEL: PHI Values for function: no_values -define void @no_values() { +define void @no_values(i1 %arg) { entry: ret void @@ -71,7 +71,7 @@ unreachable: } ; CHECK-LABEL: PHI Values for function: simple_loop -define void @simple_loop() { +define void @simple_loop(i1 %arg) { entry: br label %loop @@ -79,23 +79,23 @@ loop: ; CHECK: PHI %phi has values: ; CHECK-DAG: i32 0 %phi = phi i32 [ 0, %entry ], [ %phi, %loop ] - br i1 undef, label %loop, label %end + br i1 %arg, label %loop, label %end end: ret void } ; CHECK-LABEL: PHI Values for function: complex_loop -define void @complex_loop() { +define void @complex_loop(i1 %arg) { entry: - br i1 undef, label %loop, label %end + br i1 %arg, label %loop, label %end loop: ; CHECK: PHI %phi1 has values: ; CHECK-DAG: i32 0 ; CHECK-DAG: i32 1 %phi1 = phi i32 [ 0, %entry ], [ %phi2, %then ] - br i1 undef, label %if, label %else + br i1 %arg, label %if, label %else if: br label %then @@ -108,7 +108,7 @@ then: ; CHECK-DAG: i32 0 ; CHECK-DAG: i32 1 %phi2 = phi i32 [ %phi1, %if ], [ 1, %else ] - br i1 undef, label %loop, label %end + br i1 %arg, label %loop, label %end end: ; CHECK: PHI %phi3 has values: @@ -120,9 +120,9 @@ end: } ; CHECK-LABEL: PHI Values for function: strange_loop -define void @strange_loop() { +define void @strange_loop(i1 %arg) { entry: - br i1 undef, label %ifelse, label %inloop + br i1 %arg, label %ifelse, label %inloop loop: ; CHECK: PHI %phi1 has values: @@ -131,7 +131,7 @@ loop: ; CHECK-DAG: i32 2 ; CHECK-DAG: i32 3 %phi1 = phi i32 [ %phi3, %if ], [ 0, %else ], [ %phi2, %inloop ] - br i1 undef, label %inloop, label %end + br i1 %arg, label %inloop, label %end inloop: ; CHECK: PHI %phi2 has values: @@ -140,14 +140,14 @@ inloop: ; CHECK-DAG: i32 2 ; CHECK-DAG: i32 3 %phi2 = phi i32 [ %phi1, %loop ], [ 1, %entry ] - br i1 undef, label %ifelse, label %loop + br i1 %arg, label %ifelse, label %loop ifelse: ; CHECK: PHI %phi3 has values: ; CHECK-DAG: i32 2 ; CHECK-DAG: i32 3 %phi3 = phi i32 [ 2, %entry ], [ 3, %inloop ] - br i1 undef, label %if, label %else + br i1 %arg, label %if, label %else if: br label %loop @@ -160,9 +160,9 @@ end: } ; CHECK-LABEL: PHI Values for function: mutual_loops -define void @mutual_loops() { +define void @mutual_loops(i1 %arg) { entry: - br i1 undef, label %loop1, label %loop2 + br i1 %arg, label %loop1, label %loop2 loop1: ; CHECK: PHI %phi1 has values: @@ -172,10 +172,10 @@ loop1: ; CHECK-DAG: 3 ; CHECK-DAG: 4 %phi1 = phi i32 [ 0, %entry ], [ %phi2, %loop1.then ], [ %phi3, %loop2.if ] - br i1 undef, label %loop1.if, label %loop1.else + br i1 %arg, label %loop1.if, label %loop1.else loop1.if: - br i1 undef, label %loop1.then, label %loop2 + br i1 %arg, label %loop1.then, label %loop2 loop1.else: br label %loop1.then @@ -188,7 +188,7 @@ loop1.then: ; CHECK-DAG: 3 ; CHECK-DAG: 4 %phi2 = phi i32 [ 1, %loop1.if ], [ %phi1, %loop1.else ] - br i1 undef, label %loop1, label %end + br i1 %arg, label %loop1, label %end loop2: ; CHECK: PHI %phi3 has values: @@ -196,10 +196,10 @@ loop2: ; CHECK-DAG: 3 ; CHECK-DAG: 4 %phi3 = phi i32 [ 2, %entry ], [ %phi4, %loop2.then ], [ 3, %loop1.if ] - br i1 undef, label %loop2.if, label %loop2.else + br i1 %arg, label %loop2.if, label %loop2.else loop2.if: - br i1 undef, label %loop2.then, label %loop1 + br i1 %arg, label %loop2.then, label %loop1 loop2.else: br label %loop2.then @@ -210,7 +210,7 @@ loop2.then: ; CHECK-DAG: 3 ; CHECK-DAG: 4 %phi4 = phi i32 [ 4, %loop2.if ], [ %phi3, %loop2.else ] - br i1 undef, label %loop2, label %end + br i1 %arg, label %loop2, label %end end: ; CHECK: PHI %phi5 has values: @@ -224,7 +224,7 @@ end: } ; CHECK-LABEL: PHI Values for function: nested_loops_several_values -define void @nested_loops_several_values() { +define void @nested_loops_several_values(i1 %arg) { entry: br label %loop1 @@ -233,14 +233,14 @@ loop1: ; CHECK-DAG: i32 0 ; CHECK-DAG: %add %phi1 = phi i32 [ 0, %entry ], [ %phi2, %loop2 ] - br i1 undef, label %loop2, label %end + br i1 %arg, label %loop2, label %end loop2: ; CHECK: PHI %phi2 has values: ; CHECK-DAG: i32 0 ; CHECK-DAG: %add %phi2 = phi i32 [ %phi1, %loop1 ], [ %phi3, %loop3 ] - br i1 undef, label %loop3, label %loop1 + br i1 %arg, label %loop3, label %loop1 loop3: ; CHECK: PHI %phi3 has values: @@ -248,14 +248,14 @@ loop3: ; CHECK-DAG: %add %phi3 = phi i32 [ %add, %loop3 ], [ %phi2, %loop2 ] %add = add i32 %phi3, 1 - br i1 undef, label %loop3, label %loop2 + br i1 %arg, label %loop3, label %loop2 end: ret void } ; CHECK-LABEL: PHI Values for function: nested_loops_one_value -define void @nested_loops_one_value() { +define void @nested_loops_one_value(i1 %arg) { entry: br label %loop1 @@ -263,19 +263,19 @@ loop1: ; CHECK: PHI %phi1 has values: ; CHECK-DAG: i32 0 %phi1 = phi i32 [ 0, %entry ], [ %phi2, %loop2 ] - br i1 undef, label %loop2, label %end + br i1 %arg, label %loop2, label %end loop2: ; CHECK: PHI %phi2 has values: ; CHECK-DAG: i32 0 %phi2 = phi i32 [ %phi1, %loop1 ], [ %phi3, %loop3 ] - br i1 undef, label %loop3, label %loop1 + br i1 %arg, label %loop3, label %loop1 loop3: ; CHECK: PHI %phi3 has values: ; CHECK-DAG: i32 0 %phi3 = phi i32 [ 0, %loop3 ], [ %phi2, %loop2 ] - br i1 undef, label %loop3, label %loop2 + br i1 %arg, label %loop3, label %loop2 end: ret void diff --git a/llvm/test/Analysis/PhiValues/long_phi_chain.ll b/llvm/test/Analysis/PhiValues/long_phi_chain.ll index c21835e5bb7a0..197ebc0bbbbcd 100644 --- a/llvm/test/Analysis/PhiValues/long_phi_chain.ll +++ b/llvm/test/Analysis/PhiValues/long_phi_chain.ll @@ -4,7 +4,7 @@ ; phi values analysis to segfault if it's not careful about that kind of thing. ; CHECK-LABEL: PHI Values for function: fn -define void @fn(ptr %arg) { +define void @fn(ptr %arg, i1 %arg1) { entry: br label %while1.cond @@ -12,10 +12,10 @@ while1.cond: ; CHECK: PHI %phi1 has values: ; CHECK: ptr %arg %phi1 = phi ptr [ %arg, %entry ], [ %phi2, %while1.then ] - br i1 undef, label %while1.end, label %while1.body + br i1 %arg1, label %while1.end, label %while1.body while1.body: - br i1 undef, label %while1.then, label %while1.if + br i1 %arg1, label %while1.then, label %while1.if while1.if: br label %while1.then @@ -33,16 +33,16 @@ while2.cond1: ; CHECK: PHI %phi3 has values: ; CHECK: ptr %arg %phi3 = phi ptr [ %phi1, %while1.end ], [ %phi5, %while2.then ] - br i1 undef, label %while2.end, label %while2.body1 + br i1 %arg1, label %while2.end, label %while2.body1 while2.body1: - br i1 undef, label %while2.cond2, label %while2.then + br i1 %arg1, label %while2.cond2, label %while2.then while2.cond2: ; CHECK: PHI %phi4 has values: ; CHECK: ptr %arg %phi4 = phi ptr [ %phi3, %while2.body1 ], [ %phi4, %while2.if ] - br i1 undef, label %while2.then, label %while2.if + br i1 %arg1, label %while2.then, label %while2.if while2.if: br label %while2.cond2 @@ -60,13 +60,13 @@ while3.cond1: ; CHECK: PHI %phi6 has values: ; CHECK: ptr %arg %phi6 = phi ptr [ %phi3, %while2.end ], [ %phi7, %while3.cond2 ] - br i1 undef, label %while3.end, label %while3.cond2 + br i1 %arg1, label %while3.end, label %while3.cond2 while3.cond2: ; CHECK: PHI %phi7 has values: ; CHECK: ptr %arg %phi7 = phi ptr [ %phi6, %while3.cond1 ], [ %phi7, %while3.body ] - br i1 undef, label %while3.cond1, label %while3.body + br i1 %arg1, label %while3.cond1, label %while3.body while3.body: br label %while3.cond2 @@ -78,16 +78,16 @@ while4.cond1: ; CHECK: PHI %phi8 has values: ; CHECK: ptr %arg %phi8 = phi ptr [ %phi6, %while3.end ], [ %phi10, %while4.then ] - br i1 undef, label %while4.end, label %while4.if + br i1 %arg1, label %while4.end, label %while4.if while4.if: - br i1 undef, label %while4.cond2, label %while4.then + br i1 %arg1, label %while4.cond2, label %while4.then while4.cond2: ; CHECK: PHI %phi9 has values: ; CHECK: ptr %arg %phi9 = phi ptr [ %phi8, %while4.if ], [ %phi9, %while4.body ] - br i1 undef, label %while4.then, label %while4.body + br i1 %arg1, label %while4.then, label %while4.body while4.body: br label %while4.cond2 @@ -105,16 +105,16 @@ while5.cond: ; CHECK: PHI %phi11 has values: ; CHECK: ptr %arg %phi11 = phi ptr [ %phi8, %while4.end ], [ %phi13, %while5.then ] - br i1 undef, label %while5.end, label %while5.body1 + br i1 %arg1, label %while5.end, label %while5.body1 while5.body1: - br i1 undef, label %while5.if, label %while5.then + br i1 %arg1, label %while5.if, label %while5.then while5.if: ; CHECK: PHI %phi12 has values: ; CHECK: ptr %arg %phi12 = phi ptr [ %phi11, %while5.body1 ], [ %phi12, %while5.body2 ] - br i1 undef, label %while5.then, label %while5.body2 + br i1 %arg1, label %while5.then, label %while5.body2 while5.body2: br label %while5.if @@ -132,7 +132,7 @@ while6.cond1: ; CHECK: PHI %phi14 has values: ; CHECK: ptr %arg %phi14 = phi ptr [ %phi11, %while5.end ], [ %phi14, %while6.cond1 ] - br i1 undef, label %while6.cond2, label %while6.cond1 + br i1 %arg1, label %while6.cond2, label %while6.cond1 while6.cond2: ; CHECK: PHI %phi15 has values: diff --git a/llvm/test/Analysis/PostDominators/pr6047_a.ll b/llvm/test/Analysis/PostDominators/pr6047_a.ll index d72934ea35b89..d9ce4be3d9b7a 100644 --- a/llvm/test/Analysis/PostDominators/pr6047_a.ll +++ b/llvm/test/Analysis/PostDominators/pr6047_a.ll @@ -1,7 +1,7 @@ ; RUN: opt < %s -passes='print' 2>&1 | FileCheck %s -define internal void @f() { +define internal void @f(i1 %arg) { entry: - br i1 undef, label %bb35, label %bb3.i + br i1 %arg, label %bb35, label %bb3.i bb3.i: br label %bb3.i diff --git a/llvm/test/Analysis/PostDominators/pr6047_b.ll b/llvm/test/Analysis/PostDominators/pr6047_b.ll index 4cd756a14857b..d73067642fb5f 100644 --- a/llvm/test/Analysis/PostDominators/pr6047_b.ll +++ b/llvm/test/Analysis/PostDominators/pr6047_b.ll @@ -1,10 +1,10 @@ ; RUN: opt < %s -passes='print' 2>&1 | FileCheck %s -define internal void @f() { +define internal void @f(i1 %arg) { entry: - br i1 undef, label %a, label %bb3.i + br i1 %arg, label %a, label %bb3.i a: - br i1 undef, label %bb35, label %bb3.i + br i1 %arg, label %bb35, label %bb3.i bb3.i: br label %bb3.i diff --git a/llvm/test/Analysis/PostDominators/pr6047_c.ll b/llvm/test/Analysis/PostDominators/pr6047_c.ll index b95ae6b1d7128..697cb2ccd0811 100644 --- a/llvm/test/Analysis/PostDominators/pr6047_c.ll +++ b/llvm/test/Analysis/PostDominators/pr6047_c.ll @@ -1,7 +1,7 @@ ; RUN: opt < %s -passes='print' 2>&1 | FileCheck %s -define internal void @f() { +define internal void @f(i1 %arg) { entry: - br i1 undef, label %bb35, label %bb3.i + br i1 %arg, label %bb35, label %bb3.i bb3.i: br label %bb3.i diff --git a/llvm/test/Analysis/PostDominators/pr6047_d.ll b/llvm/test/Analysis/PostDominators/pr6047_d.ll index 50bd15e67ddca..747fd320c9000 100644 --- a/llvm/test/Analysis/PostDominators/pr6047_d.ll +++ b/llvm/test/Analysis/PostDominators/pr6047_d.ll @@ -1,5 +1,5 @@ ; RUN: opt < %s -passes='print' 2>&1 | FileCheck %s -define internal void @f() { +define internal void @f(i1 %arg) { entry: br i1 1, label %a, label %b @@ -10,7 +10,7 @@ b: br label %c c: - br i1 undef, label %bb35, label %bb3.i + br i1 %arg, label %bb35, label %bb3.i bb3.i: br label %bb3.i diff --git a/llvm/test/Analysis/ScalarEvolution/2011-04-26-FoldAddRec.ll b/llvm/test/Analysis/ScalarEvolution/2011-04-26-FoldAddRec.ll index a29295ae1c21a..d6aa3702de403 100644 --- a/llvm/test/Analysis/ScalarEvolution/2011-04-26-FoldAddRec.ll +++ b/llvm/test/Analysis/ScalarEvolution/2011-04-26-FoldAddRec.ll @@ -2,7 +2,7 @@ ; PR9633: Tests that SCEV handles the mul.i2 recurrence being folded to ; constant zero. -define signext i8 @func_14(i8 signext %p_18) nounwind readnone ssp { +define signext i8 @func_14(i8 signext %p_18, i1 %arg) nounwind readnone ssp { entry: br label %for.inc @@ -16,7 +16,7 @@ for.cond: %shl.i = select i1 %tobool.i, i32 13, i32 0 %shl.left.i = shl i32 %add, %shl.i %conv.i4 = trunc i32 %shl.left.i to i8 - br i1 undef, label %for.inc9, label %if.then + br i1 %arg, label %for.inc9, label %if.then for.inc9: %p_18.addr.011 = phi i8 [ %add12, %for.inc9 ], [ %p_18, %for.cond ] diff --git a/llvm/test/Analysis/ScalarEvolution/SolveQuadraticEquation.ll b/llvm/test/Analysis/ScalarEvolution/SolveQuadraticEquation.ll index 422a0b8cecf3f..56e7de0ff8d77 100644 --- a/llvm/test/Analysis/ScalarEvolution/SolveQuadraticEquation.ll +++ b/llvm/test/Analysis/ScalarEvolution/SolveQuadraticEquation.ll @@ -42,7 +42,7 @@ return: ; preds = %bb5 ; PR10383 ; These next two used to crash. -define void @test2(i1 %cmp, i64 %n) { +define void @test2(i1 %cmp, i64 %n, i1 %arg) { ; CHECK-LABEL: 'test2' ; CHECK-NEXT: Determining loop execution counts for: @test2 ; CHECK-NEXT: Loop %for.body2: Unpredictable backedge-taken count. @@ -69,13 +69,13 @@ for.body2: %tmp114 = mul i64 %a0.08, %indvar %mul542 = mul i64 %tmp114, %tmp111 %indvar.next = add i64 %indvar, 1 - br i1 undef, label %end, label %for.body2 + br i1 %arg, label %end, label %for.body2 end: ret void } -define i32 @test3() { +define i32 @test3(i1 %arg) { ; CHECK-LABEL: 'test3' ; CHECK-NEXT: Determining loop execution counts for: @test3 ; CHECK-NEXT: Loop %for.inc479: Unpredictable backedge-taken count. @@ -83,7 +83,7 @@ define i32 @test3() { ; CHECK-NEXT: Loop %for.inc479: Unpredictable symbolic max backedge-taken count. ; if.then466: - br i1 undef, label %for.cond539.preheader, label %for.inc479 + br i1 %arg, label %for.cond539.preheader, label %for.inc479 for.inc479: %a2.07 = phi i32 [ %add495, %for.inc479 ], [ 0, %if.then466 ] @@ -93,7 +93,7 @@ for.inc479: %mul493 = mul i32 %mul491, %mul484 %add495 = add nsw i32 %mul493, %a2.07 %inc497 = add nsw i32 %j.36, 1 - br i1 undef, label %for.cond539.preheader, label %for.inc479 + br i1 %arg, label %for.cond539.preheader, label %for.inc479 for.cond539.preheader: unreachable diff --git a/llvm/test/Analysis/ScalarEvolution/avoid-infinite-recursion-0.ll b/llvm/test/Analysis/ScalarEvolution/avoid-infinite-recursion-0.ll index c0e6681828deb..f9fe7a19de22d 100644 --- a/llvm/test/Analysis/ScalarEvolution/avoid-infinite-recursion-0.ll +++ b/llvm/test/Analysis/ScalarEvolution/avoid-infinite-recursion-0.ll @@ -5,14 +5,14 @@ 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" target triple = "x86_64-unknown-linux-gnu" -define i32 @test() { +define i32 @test(i1 %arg) { entry: %0 = load ptr, ptr undef, align 8 ; [#uses=1] %1 = ptrtoint ptr %0 to i64 ; [#uses=1] %2 = sub i64 undef, %1 ; [#uses=1] %3 = lshr i64 %2, 3 ; [#uses=1] %4 = trunc i64 %3 to i32 ; [#uses=2] - br i1 undef, label %bb10, label %bb4.i + br i1 %arg, label %bb10, label %bb4.i bb4.i: ; preds = %bb4.i, %entry %i.0.i6 = phi i32 [ %8, %bb4.i ], [ 0, %entry ] ; [#uses=2] diff --git a/llvm/test/Analysis/ScalarEvolution/avoid-infinite-recursion-1.ll b/llvm/test/Analysis/ScalarEvolution/avoid-infinite-recursion-1.ll index 49b8c88e5e54d..639914143a024 100644 --- a/llvm/test/Analysis/ScalarEvolution/avoid-infinite-recursion-1.ll +++ b/llvm/test/Analysis/ScalarEvolution/avoid-infinite-recursion-1.ll @@ -207,9 +207,9 @@ module asm ".previous" %union.pager_info = type <{ [4 x i8] }> %union.sigval = type <{ [8 x i8] }> -define i32 @vlrureclaim(ptr %mp) nounwind { +define i32 @vlrureclaim(ptr %mp, i1 %arg) nounwind { entry: - br i1 undef, label %if.then11, label %do.end + br i1 %arg, label %if.then11, label %do.end if.then11: ; preds = %entry br label %do.end @@ -230,19 +230,19 @@ while.body: ; preds = %while.cond br label %while.cond27 while.cond27: ; preds = %while.body36, %while.body - br i1 undef, label %do.body288.loopexit, label %land.rhs + br i1 %arg, label %do.body288.loopexit, label %land.rhs land.rhs: ; preds = %while.cond27 - br i1 undef, label %while.body36, label %while.end + br i1 %arg, label %while.body36, label %while.end while.body36: ; preds = %land.rhs br label %while.cond27 while.end: ; preds = %land.rhs - br i1 undef, label %do.body288.loopexit4, label %do.body46 + br i1 %arg, label %do.body288.loopexit4, label %do.body46 do.body46: ; preds = %while.end - br i1 undef, label %if.else64, label %if.then53 + br i1 %arg, label %if.else64, label %if.then53 if.then53: ; preds = %do.body46 br label %if.end72 @@ -252,58 +252,58 @@ if.else64: ; preds = %do.body46 if.end72: ; preds = %if.else64, %if.then53 %dec = add i32 %count.0, -1 ; [#uses=2] - br i1 undef, label %next_iter, label %if.end111 + br i1 %arg, label %next_iter, label %if.end111 if.end111: ; preds = %if.end72 - br i1 undef, label %lor.lhs.false, label %do.body145 + br i1 %arg, label %lor.lhs.false, label %do.body145 lor.lhs.false: ; preds = %if.end111 - br i1 undef, label %lor.lhs.false122, label %do.body145 + br i1 %arg, label %lor.lhs.false122, label %do.body145 lor.lhs.false122: ; preds = %lor.lhs.false - br i1 undef, label %lor.lhs.false128, label %do.body145 + br i1 %arg, label %lor.lhs.false128, label %do.body145 lor.lhs.false128: ; preds = %lor.lhs.false122 - br i1 undef, label %do.body162, label %land.lhs.true + br i1 %arg, label %do.body162, label %land.lhs.true land.lhs.true: ; preds = %lor.lhs.false128 - br i1 undef, label %do.body145, label %do.body162 + br i1 %arg, label %do.body145, label %do.body162 do.body145: ; preds = %land.lhs.true, %lor.lhs.false122, %lor.lhs.false, %if.end111 - br i1 undef, label %if.then156, label %next_iter + br i1 %arg, label %if.then156, label %next_iter if.then156: ; preds = %do.body145 br label %next_iter do.body162: ; preds = %land.lhs.true, %lor.lhs.false128 - br i1 undef, label %if.then173, label %do.end177 + br i1 %arg, label %if.then173, label %do.end177 if.then173: ; preds = %do.body162 br label %do.end177 do.end177: ; preds = %if.then173, %do.body162 - br i1 undef, label %do.body185, label %if.then182 + br i1 %arg, label %do.body185, label %if.then182 if.then182: ; preds = %do.end177 br label %next_iter_mntunlocked do.body185: ; preds = %do.end177 - br i1 undef, label %if.then196, label %do.end202 + br i1 %arg, label %if.then196, label %do.end202 if.then196: ; preds = %do.body185 br label %do.end202 do.end202: ; preds = %if.then196, %do.body185 - br i1 undef, label %lor.lhs.false207, label %if.then231 + br i1 %arg, label %lor.lhs.false207, label %if.then231 lor.lhs.false207: ; preds = %do.end202 - br i1 undef, label %lor.lhs.false214, label %if.then231 + br i1 %arg, label %lor.lhs.false214, label %if.then231 lor.lhs.false214: ; preds = %lor.lhs.false207 - br i1 undef, label %do.end236, label %land.lhs.true221 + br i1 %arg, label %do.end236, label %land.lhs.true221 land.lhs.true221: ; preds = %lor.lhs.false214 - br i1 undef, label %if.then231, label %do.end236 + br i1 %arg, label %if.then231, label %do.end236 if.then231: ; preds = %land.lhs.true221, %lor.lhs.false207, %do.end202 br label %next_iter_mntunlocked @@ -312,7 +312,7 @@ do.end236: ; preds = %land.lhs.true221, %lor.lhs.false214 br label %next_iter_mntunlocked next_iter_mntunlocked: ; preds = %do.end236, %if.then231, %if.then182 - br i1 undef, label %yield, label %do.body269 + br i1 %arg, label %yield, label %do.body269 next_iter: ; preds = %if.then156, %do.body145, %if.end72 %rem2482 = and i32 %dec, 255 ; [#uses=1] @@ -320,7 +320,7 @@ next_iter: ; preds = %if.then156, %do.body145, %if.end72 br i1 %cmp249, label %do.body253, label %while.cond do.body253: ; preds = %next_iter - br i1 undef, label %if.then264, label %yield + br i1 %arg, label %if.then264, label %yield if.then264: ; preds = %do.body253 br label %yield @@ -329,7 +329,7 @@ yield: ; preds = %if.then264, %do.body253, %next_iter_mntunlocked br label %do.body269 do.body269: ; preds = %yield, %next_iter_mntunlocked - br i1 undef, label %if.then280, label %while.cond.outer.backedge + br i1 %arg, label %if.then280, label %while.cond.outer.backedge if.then280: ; preds = %do.body269 br label %while.cond.outer.backedge @@ -344,7 +344,7 @@ do.body288.loopexit4: ; preds = %while.end, %while.cond br label %do.body288 do.body288: ; preds = %do.body288.loopexit4, %do.body288.loopexit - br i1 undef, label %if.then299, label %do.end303 + br i1 %arg, label %if.then299, label %do.end303 if.then299: ; preds = %do.body288 br label %do.end303 diff --git a/llvm/test/Analysis/ScalarEvolution/different-loops-recs.ll b/llvm/test/Analysis/ScalarEvolution/different-loops-recs.ll index 41e1d059803b2..44bff5638bc85 100644 --- a/llvm/test/Analysis/ScalarEvolution/different-loops-recs.ll +++ b/llvm/test/Analysis/ScalarEvolution/different-loops-recs.ll @@ -7,7 +7,7 @@ ; Check that we can evaluate a sum of phis from two different loops in any ; order. -define void @test_00() { +define void @test_00(i1 %arg) { ; CHECK-LABEL: 'test_00' ; CHECK-NEXT: Classifying expressions for: @test_00 ; CHECK-NEXT: %phi1 = phi i32 [ 10, %entry ], [ %phi1.inc, %loop1 ] @@ -383,7 +383,7 @@ exit: ; Another mix of previous use cases that demonstrates that incorrect picking of ; a loop for a recurrence may cause a crash of SCEV analysis. -define void @test_04() { +define void @test_04(i1 %arg) { ; CHECK-LABEL: 'test_04' ; CHECK-NEXT: Classifying expressions for: @test_04 ; CHECK-NEXT: %tmp = phi i64 [ 2, %bb ], [ %tmp4, %bb3 ] @@ -425,7 +425,7 @@ bb: loop1: %tmp = phi i64 [ 2, %bb ], [ %tmp4, %bb3 ] %tmp2 = trunc i64 %tmp to i32 - br i1 undef, label %loop2, label %bb3 + br i1 %arg, label %loop2, label %bb3 bb3: %tmp4 = add nuw nsw i64 %tmp, 1 diff --git a/llvm/test/Analysis/ScalarEvolution/expander-replace-congruent-ivs.ll b/llvm/test/Analysis/ScalarEvolution/expander-replace-congruent-ivs.ll index c77697172c71f..3063e4fc4f47e 100644 --- a/llvm/test/Analysis/ScalarEvolution/expander-replace-congruent-ivs.ll +++ b/llvm/test/Analysis/ScalarEvolution/expander-replace-congruent-ivs.ll @@ -6,10 +6,10 @@ target triple = "x86_64-apple-macosx10.11.0" ; SCEVExpander would try to RAUW %val_2 with %c.lcssa, breaking "def ; dominates uses". -define void @pr27232(i32 %val) { +define void @pr27232(i32 %val, i1 %arg) { ; CHECK-LABEL: @pr27232( entry: - br i1 undef, label %loop_0.cond, label %for.body.us + br i1 %arg, label %loop_0.cond, label %for.body.us for.body.us: br label %loop_0.cond @@ -29,12 +29,12 @@ loop_1.ph: br label %loop_1 loop_0: - br i1 undef, label %loop_0, label %loop_1.exit + br i1 %arg, label %loop_0, label %loop_1.exit loop_1: %d.1 = phi i32 [ %c.lcssa, %loop_1 ], [ %val_2, %loop_1.ph ] %t.1 = phi i32 [ %val_2, %loop_1 ], [ %c.lcssa, %loop_1.ph ] - br i1 undef, label %leave, label %loop_1 + br i1 %arg, label %leave, label %loop_1 leave: ret void @@ -44,10 +44,10 @@ leave: ; @ReplaceArg_0 and @ReplaceArg_1 used to trigger a failed cast<> ; assertion in SCEVExpander. -define void @ReplaceArg_0(i32 %val) { +define void @ReplaceArg_0(i32 %val, i1 %arg) { ; CHECK-LABEL: @ReplaceArg_0( entry: - br i1 undef, label %loop_0.cond, label %for.body.us + br i1 %arg, label %loop_0.cond, label %for.body.us for.body.us: br label %loop_0.cond @@ -66,21 +66,21 @@ loop_1.ph: br label %loop_1 loop_0: - br i1 undef, label %loop_0, label %loop_1.exit + br i1 %arg, label %loop_0, label %loop_1.exit loop_1: %d.1 = phi i32 [ %c.lcssa, %loop_1 ], [ %val, %loop_1.ph ] %t.1 = phi i32 [ %val, %loop_1 ], [ %c.lcssa, %loop_1.ph ] - br i1 undef, label %leave, label %loop_1 + br i1 %arg, label %leave, label %loop_1 leave: ret void } -define void @ReplaceArg_1(i32 %val) { +define void @ReplaceArg_1(i32 %val, i1 %arg) { ; CHECK-LABEL: @ReplaceArg_1( entry: - br i1 undef, label %loop_0.cond, label %for.body.us + br i1 %arg, label %loop_0.cond, label %for.body.us for.body.us: br label %loop_0.cond @@ -99,12 +99,12 @@ loop_1.ph: br label %loop_1 loop_0: - br i1 undef, label %loop_0, label %loop_1.exit + br i1 %arg, label %loop_0, label %loop_1.exit loop_1: %t.1 = phi i32 [ %val, %loop_1 ], [ %c.lcssa, %loop_1.ph ] %d.1 = phi i32 [ %c.lcssa, %loop_1 ], [ %val, %loop_1.ph ] - br i1 undef, label %leave, label %loop_1 + br i1 %arg, label %leave, label %loop_1 leave: ret void diff --git a/llvm/test/Analysis/ScalarEvolution/how-far-to-zero.ll b/llvm/test/Analysis/ScalarEvolution/how-far-to-zero.ll index eab6faf11bdb3..f0328d1d70674 100644 --- a/llvm/test/Analysis/ScalarEvolution/how-far-to-zero.ll +++ b/llvm/test/Analysis/ScalarEvolution/how-far-to-zero.ll @@ -1,7 +1,7 @@ ; RUN: opt < %s -disable-output "-passes=print" 2>&1 | FileCheck %s ; PR13228 -define void @f() nounwind uwtable readnone { +define void @f(i1 %arg) nounwind uwtable readnone { entry: br label %for.cond @@ -14,7 +14,7 @@ for.cond: ; preds = %for.cond, %entry while.cond: ; preds = %while.body, %for.cond %b.2 = phi i8 [ %add, %while.body ], [ 0, %for.cond ] - br i1 undef, label %while.end, label %while.body + br i1 %arg, label %while.end, label %while.body while.body: ; preds = %while.cond %add = add i8 %b.2, %c.0 diff --git a/llvm/test/Analysis/ScalarEvolution/overflow-intrinsics-trip-count.ll b/llvm/test/Analysis/ScalarEvolution/overflow-intrinsics-trip-count.ll index 15ba27682a128..88515a310f9bc 100644 --- a/llvm/test/Analysis/ScalarEvolution/overflow-intrinsics-trip-count.ll +++ b/llvm/test/Analysis/ScalarEvolution/overflow-intrinsics-trip-count.ll @@ -8,7 +8,7 @@ declare { i16, i1 } @llvm.usub.with.overflow.i16(i16, i16) nounwind readnone declare { i16, i1 } @llvm.smul.with.overflow.i16(i16, i16) nounwind readnone declare { i16, i1 } @llvm.umul.with.overflow.i16(i16, i16) nounwind readnone -define void @uadd_exhaustive() { +define void @uadd_exhaustive(i1 %arg) { ; CHECK-LABEL: 'uadd_exhaustive' ; CHECK-NEXT: Determining loop execution counts for: @uadd_exhaustive ; CHECK-NEXT: Loop %for.body: backedge-taken count is i16 35 @@ -17,7 +17,7 @@ define void @uadd_exhaustive() { ; CHECK-NEXT: Loop %for.body: Trip multiple is 36 ; entry: - br i1 undef, label %for.end, label %for.body.preheader + br i1 %arg, label %for.end, label %for.body.preheader for.body.preheader: ; preds = %entry br label %for.body @@ -33,7 +33,7 @@ for.end: ; preds = %for.body, %entry ret void } -define void @sadd_exhaustive() { +define void @sadd_exhaustive(i1 %arg) { ; CHECK-LABEL: 'sadd_exhaustive' ; CHECK-NEXT: Determining loop execution counts for: @sadd_exhaustive ; CHECK-NEXT: Loop %for.body: backedge-taken count is i16 67 @@ -42,7 +42,7 @@ define void @sadd_exhaustive() { ; CHECK-NEXT: Loop %for.body: Trip multiple is 68 ; entry: - br i1 undef, label %for.end, label %for.body.preheader + br i1 %arg, label %for.end, label %for.body.preheader for.body.preheader: ; preds = %entry br label %for.body @@ -58,7 +58,7 @@ for.end: ; preds = %for.body, %entry ret void } -define void @usub_exhaustive() { +define void @usub_exhaustive(i1 %arg) { ; CHECK-LABEL: 'usub_exhaustive' ; CHECK-NEXT: Determining loop execution counts for: @usub_exhaustive ; CHECK-NEXT: Loop %for.body: backedge-taken count is i16 50 @@ -67,7 +67,7 @@ define void @usub_exhaustive() { ; CHECK-NEXT: Loop %for.body: Trip multiple is 51 ; entry: - br i1 undef, label %for.end, label %for.body.preheader + br i1 %arg, label %for.end, label %for.body.preheader for.body.preheader: ; preds = %entry br label %for.body @@ -83,7 +83,7 @@ for.end: ; preds = %for.body, %entry ret void } -define void @ssub_exhaustive() { +define void @ssub_exhaustive(i1 %arg) { ; CHECK-LABEL: 'ssub_exhaustive' ; CHECK-NEXT: Determining loop execution counts for: @ssub_exhaustive ; CHECK-NEXT: Loop %for.body: backedge-taken count is i16 68 @@ -92,7 +92,7 @@ define void @ssub_exhaustive() { ; CHECK-NEXT: Loop %for.body: Trip multiple is 69 ; entry: - br i1 undef, label %for.end, label %for.body.preheader + br i1 %arg, label %for.end, label %for.body.preheader for.body.preheader: ; preds = %entry br label %for.body @@ -108,7 +108,7 @@ for.end: ; preds = %for.body, %entry ret void } -define void @smul_exhaustive() { +define void @smul_exhaustive(i1 %arg) { ; CHECK-LABEL: 'smul_exhaustive' ; CHECK-NEXT: Determining loop execution counts for: @smul_exhaustive ; CHECK-NEXT: Loop %for.body: backedge-taken count is i32 14 @@ -117,7 +117,7 @@ define void @smul_exhaustive() { ; CHECK-NEXT: Loop %for.body: Trip multiple is 15 ; entry: - br i1 undef, label %for.end, label %for.body.preheader + br i1 %arg, label %for.end, label %for.body.preheader for.body.preheader: ; preds = %entry br label %for.body @@ -133,7 +133,7 @@ for.end: ; preds = %for.body, %entry ret void } -define void @umul_exhaustive() { +define void @umul_exhaustive(i1 %arg) { ; CHECK-LABEL: 'umul_exhaustive' ; CHECK-NEXT: Determining loop execution counts for: @umul_exhaustive ; CHECK-NEXT: Loop %for.body: backedge-taken count is i32 15 @@ -142,7 +142,7 @@ define void @umul_exhaustive() { ; CHECK-NEXT: Loop %for.body: Trip multiple is 16 ; entry: - br i1 undef, label %for.end, label %for.body.preheader + br i1 %arg, label %for.end, label %for.body.preheader for.body.preheader: ; preds = %entry br label %for.body @@ -158,7 +158,7 @@ for.end: ; preds = %for.body, %entry ret void } -define void @uadd_symbolic_start(i16 %start) { +define void @uadd_symbolic_start(i16 %start, i1 %arg) { ; CHECK-LABEL: 'uadd_symbolic_start' ; CHECK-NEXT: Determining loop execution counts for: @uadd_symbolic_start ; CHECK-NEXT: Loop %for.body: backedge-taken count is (-1 + (-1 * %start)) @@ -167,7 +167,7 @@ define void @uadd_symbolic_start(i16 %start) { ; CHECK-NEXT: Loop %for.body: Trip multiple is 1 ; entry: - br i1 undef, label %for.end, label %for.body.preheader + br i1 %arg, label %for.end, label %for.body.preheader for.body.preheader: ; preds = %entry br label %for.body @@ -183,7 +183,7 @@ for.end: ; preds = %for.body, %entry ret void } -define void @sadd_symbolic_start(i16 %start) { +define void @sadd_symbolic_start(i16 %start, i1 %arg) { ; CHECK-LABEL: 'sadd_symbolic_start' ; CHECK-NEXT: Determining loop execution counts for: @sadd_symbolic_start ; CHECK-NEXT: Loop %for.body: backedge-taken count is (32767 + (-1 * %start)) @@ -192,7 +192,7 @@ define void @sadd_symbolic_start(i16 %start) { ; CHECK-NEXT: Loop %for.body: Trip multiple is 1 ; entry: - br i1 undef, label %for.end, label %for.body.preheader + br i1 %arg, label %for.end, label %for.body.preheader for.body.preheader: ; preds = %entry br label %for.body @@ -208,7 +208,7 @@ for.end: ; preds = %for.body, %entry ret void } -define void @sadd_symbolic_start2(i16 %start) { +define void @sadd_symbolic_start2(i16 %start, i1 %arg) { ; CHECK-LABEL: 'sadd_symbolic_start2' ; CHECK-NEXT: Determining loop execution counts for: @sadd_symbolic_start2 ; CHECK-NEXT: Loop %for.body: Unpredictable backedge-taken count. @@ -216,7 +216,7 @@ define void @sadd_symbolic_start2(i16 %start) { ; CHECK-NEXT: Loop %for.body: Unpredictable symbolic max backedge-taken count. ; entry: - br i1 undef, label %for.end, label %for.body.preheader + br i1 %arg, label %for.end, label %for.body.preheader for.body.preheader: ; preds = %entry br label %for.body @@ -233,7 +233,7 @@ for.end: ; preds = %for.body, %entry ret void } -define void @sadd_symbolic_swapped(i16 %start) { +define void @sadd_symbolic_swapped(i16 %start, i1 %arg) { ; CHECK-LABEL: 'sadd_symbolic_swapped' ; CHECK-NEXT: Determining loop execution counts for: @sadd_symbolic_swapped ; CHECK-NEXT: Loop %for.body: Unpredictable backedge-taken count. @@ -241,7 +241,7 @@ define void @sadd_symbolic_swapped(i16 %start) { ; CHECK-NEXT: Loop %for.body: Unpredictable symbolic max backedge-taken count. ; entry: - br i1 undef, label %for.end, label %for.body.preheader + br i1 %arg, label %for.end, label %for.body.preheader for.body.preheader: ; preds = %entry br label %for.body @@ -257,7 +257,7 @@ for.end: ; preds = %for.body, %entry ret void } -define void @usub_symbolic_start(i16 %start) { +define void @usub_symbolic_start(i16 %start, i1 %arg) { ; CHECK-LABEL: 'usub_symbolic_start' ; CHECK-NEXT: Determining loop execution counts for: @usub_symbolic_start ; CHECK-NEXT: Loop %for.body: backedge-taken count is %start @@ -266,7 +266,7 @@ define void @usub_symbolic_start(i16 %start) { ; CHECK-NEXT: Loop %for.body: Trip multiple is 1 ; entry: - br i1 undef, label %for.end, label %for.body.preheader + br i1 %arg, label %for.end, label %for.body.preheader for.body.preheader: ; preds = %entry br label %for.body @@ -282,7 +282,7 @@ for.end: ; preds = %for.body, %entry ret void } -define void @ssub_symbolic_start(i16 %start) { +define void @ssub_symbolic_start(i16 %start, i1 %arg) { ; CHECK-LABEL: 'ssub_symbolic_start' ; CHECK-NEXT: Determining loop execution counts for: @ssub_symbolic_start ; CHECK-NEXT: Loop %for.body: backedge-taken count is (-32768 + %start) @@ -291,7 +291,7 @@ define void @ssub_symbolic_start(i16 %start) { ; CHECK-NEXT: Loop %for.body: Trip multiple is 1 ; entry: - br i1 undef, label %for.end, label %for.body.preheader + br i1 %arg, label %for.end, label %for.body.preheader for.body.preheader: ; preds = %entry br label %for.body @@ -307,7 +307,7 @@ for.end: ; preds = %for.body, %entry ret void } -define void @smul_symbolic_start(i16 %start) { +define void @smul_symbolic_start(i16 %start, i1 %arg) { ; CHECK-LABEL: 'smul_symbolic_start' ; CHECK-NEXT: Determining loop execution counts for: @smul_symbolic_start ; CHECK-NEXT: Loop %for.body: Unpredictable backedge-taken count. @@ -315,7 +315,7 @@ define void @smul_symbolic_start(i16 %start) { ; CHECK-NEXT: Loop %for.body: Unpredictable symbolic max backedge-taken count. ; entry: - br i1 undef, label %for.end, label %for.body.preheader + br i1 %arg, label %for.end, label %for.body.preheader for.body.preheader: ; preds = %entry br label %for.body @@ -331,7 +331,7 @@ for.end: ; preds = %for.body, %entry ret void } -define void @umul_symbolic_start(i16 %start) { +define void @umul_symbolic_start(i16 %start, i1 %arg) { ; CHECK-LABEL: 'umul_symbolic_start' ; CHECK-NEXT: Determining loop execution counts for: @umul_symbolic_start ; CHECK-NEXT: Loop %for.body: Unpredictable backedge-taken count. @@ -339,7 +339,7 @@ define void @umul_symbolic_start(i16 %start) { ; CHECK-NEXT: Loop %for.body: Unpredictable symbolic max backedge-taken count. ; entry: - br i1 undef, label %for.end, label %for.body.preheader + br i1 %arg, label %for.end, label %for.body.preheader for.body.preheader: ; preds = %entry br label %for.body @@ -355,7 +355,7 @@ for.end: ; preds = %for.body, %entry ret void } -define void @sadd_symbolic_non_latch(i16 %start) { +define void @sadd_symbolic_non_latch(i16 %start, i1 %arg) { ; CHECK-LABEL: 'sadd_symbolic_non_latch' ; CHECK-NEXT: Determining loop execution counts for: @sadd_symbolic_non_latch ; CHECK-NEXT: Loop %for.body: backedge-taken count is ((230 + (-1 * %start)) umin (32767 + (-1 * %start))) @@ -368,7 +368,7 @@ define void @sadd_symbolic_non_latch(i16 %start) { ; CHECK-NEXT: Loop %for.body: Trip multiple is 1 ; entry: - br i1 undef, label %for.end, label %for.body.preheader + br i1 %arg, label %for.end, label %for.body.preheader for.body.preheader: ; preds = %entry br label %for.body diff --git a/llvm/test/Analysis/ScalarEvolution/pointer-sign-bits.ll b/llvm/test/Analysis/ScalarEvolution/pointer-sign-bits.ll index bfd43c82d3a07..02fc2196fb6f9 100644 --- a/llvm/test/Analysis/ScalarEvolution/pointer-sign-bits.ll +++ b/llvm/test/Analysis/ScalarEvolution/pointer-sign-bits.ll @@ -3,9 +3,9 @@ target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32" %JavaObject = type { ptr, ptr } -define void @JnJVM_antlr_CSharpCodeGenerator_genBitSet__Lantlr_collections_impl_BitSet_2I(ptr, ptr, i32) { +define void @JnJVM_antlr_CSharpCodeGenerator_genBitSet__Lantlr_collections_impl_BitSet_2I(ptr, ptr, i32, i1 %arg) { start: - br i1 undef, label %"stack overflow", label %"no stack overflow" + br i1 %arg, label %"stack overflow", label %"no stack overflow" "GOTO or IF*2": ; preds = %"true verifyAndComputePtr89", %verifyNullCont84 unreachable @@ -27,151 +27,151 @@ end: ; preds = %"no exception block35" ret void "no stack overflow": ; preds = %start - br i1 undef, label %verifyNullCont, label %"no stack overflow.end_crit_edge" + br i1 %arg, label %verifyNullCont, label %"no stack overflow.end_crit_edge" "no stack overflow.end_crit_edge": ; preds = %"no stack overflow" ret void verifyNullCont: ; preds = %"no stack overflow" - br i1 undef, label %verifyNullCont9, label %verifyNullCont.end_crit_edge + br i1 %arg, label %verifyNullCont9, label %verifyNullCont.end_crit_edge verifyNullCont.end_crit_edge: ; preds = %verifyNullCont ret void verifyNullCont9: ; preds = %verifyNullCont - br i1 undef, label %verifyNullCont12, label %verifyNullCont9.end_crit_edge + br i1 %arg, label %verifyNullCont12, label %verifyNullCont9.end_crit_edge verifyNullCont9.end_crit_edge: ; preds = %verifyNullCont9 ret void verifyNullCont12: ; preds = %verifyNullCont9 - br i1 undef, label %"no exception block13", label %verifyNullCont12.end_crit_edge + br i1 %arg, label %"no exception block13", label %verifyNullCont12.end_crit_edge verifyNullCont12.end_crit_edge: ; preds = %verifyNullCont12 ret void "no exception block13": ; preds = %verifyNullCont12 - br i1 undef, label %verifyNullExit14, label %verifyNullCont15 + br i1 %arg, label %verifyNullExit14, label %verifyNullCont15 verifyNullExit14: ; preds = %"no exception block13" ret void verifyNullCont15: ; preds = %"no exception block13" - br i1 undef, label %"no exception block16", label %verifyNullCont15.end_crit_edge + br i1 %arg, label %"no exception block16", label %verifyNullCont15.end_crit_edge verifyNullCont15.end_crit_edge: ; preds = %verifyNullCont15 ret void "no exception block16": ; preds = %verifyNullCont15 - br i1 undef, label %verifyNullExit17, label %verifyNullCont18 + br i1 %arg, label %verifyNullExit17, label %verifyNullCont18 verifyNullExit17: ; preds = %"no exception block16" ret void verifyNullCont18: ; preds = %"no exception block16" - br i1 undef, label %"no exception block19", label %verifyNullCont18.end_crit_edge + br i1 %arg, label %"no exception block19", label %verifyNullCont18.end_crit_edge verifyNullCont18.end_crit_edge: ; preds = %verifyNullCont18 ret void "no exception block19": ; preds = %verifyNullCont18 - br i1 undef, label %verifyNullExit20, label %verifyNullCont21 + br i1 %arg, label %verifyNullExit20, label %verifyNullCont21 verifyNullExit20: ; preds = %"no exception block19" ret void verifyNullCont21: ; preds = %"no exception block19" - br i1 undef, label %verifyNullCont24, label %verifyNullCont21.end_crit_edge + br i1 %arg, label %verifyNullCont24, label %verifyNullCont21.end_crit_edge verifyNullCont21.end_crit_edge: ; preds = %verifyNullCont21 ret void verifyNullCont24: ; preds = %verifyNullCont21 - br i1 undef, label %verifyNullCont27, label %verifyNullCont24.end_crit_edge + br i1 %arg, label %verifyNullCont27, label %verifyNullCont24.end_crit_edge verifyNullCont24.end_crit_edge: ; preds = %verifyNullCont24 ret void verifyNullCont27: ; preds = %verifyNullCont24 - br i1 undef, label %verifyNullCont32, label %verifyNullCont27.end_crit_edge + br i1 %arg, label %verifyNullCont32, label %verifyNullCont27.end_crit_edge verifyNullCont27.end_crit_edge: ; preds = %verifyNullCont27 ret void verifyNullCont32: ; preds = %verifyNullCont27 - br i1 undef, label %verifyNullExit33, label %verifyNullCont34 + br i1 %arg, label %verifyNullExit33, label %verifyNullCont34 verifyNullExit33: ; preds = %verifyNullCont32 ret void verifyNullCont34: ; preds = %verifyNullCont32 - br i1 undef, label %"no exception block35", label %verifyNullCont34.end_crit_edge + br i1 %arg, label %"no exception block35", label %verifyNullCont34.end_crit_edge verifyNullCont34.end_crit_edge: ; preds = %verifyNullCont34 ret void "no exception block35": ; preds = %verifyNullCont34 - br i1 undef, label %end, label %verifyNullCont60 + br i1 %arg, label %end, label %verifyNullCont60 verifyNullCont60: ; preds = %"no exception block35" - br i1 undef, label %verifyNullCont63, label %verifyNullCont60.end_crit_edge + br i1 %arg, label %verifyNullCont63, label %verifyNullCont60.end_crit_edge verifyNullCont60.end_crit_edge: ; preds = %verifyNullCont60 ret void verifyNullCont63: ; preds = %verifyNullCont60 - br i1 undef, label %"no exception block64", label %verifyNullCont63.end_crit_edge + br i1 %arg, label %"no exception block64", label %verifyNullCont63.end_crit_edge verifyNullCont63.end_crit_edge: ; preds = %verifyNullCont63 ret void "no exception block64": ; preds = %verifyNullCont63 - br i1 undef, label %verifyNullExit65, label %verifyNullCont66 + br i1 %arg, label %verifyNullExit65, label %verifyNullCont66 verifyNullExit65: ; preds = %"no exception block64" ret void verifyNullCont66: ; preds = %"no exception block64" - br i1 undef, label %"no exception block67", label %verifyNullCont66.end_crit_edge + br i1 %arg, label %"no exception block67", label %verifyNullCont66.end_crit_edge verifyNullCont66.end_crit_edge: ; preds = %verifyNullCont66 ret void "no exception block67": ; preds = %verifyNullCont66 - br i1 undef, label %verifyNullExit68, label %verifyNullCont69 + br i1 %arg, label %verifyNullExit68, label %verifyNullCont69 verifyNullExit68: ; preds = %"no exception block67" ret void verifyNullCont69: ; preds = %"no exception block67" - br i1 undef, label %"no exception block70", label %verifyNullCont69.end_crit_edge + br i1 %arg, label %"no exception block70", label %verifyNullCont69.end_crit_edge verifyNullCont69.end_crit_edge: ; preds = %verifyNullCont69 ret void "no exception block70": ; preds = %verifyNullCont69 - br i1 undef, label %verifyNullExit71, label %verifyNullCont72 + br i1 %arg, label %verifyNullExit71, label %verifyNullCont72 verifyNullExit71: ; preds = %"no exception block70" ret void verifyNullCont72: ; preds = %"no exception block70" - br i1 undef, label %verifyNullCont75, label %verifyNullCont72.end_crit_edge + br i1 %arg, label %verifyNullCont75, label %verifyNullCont72.end_crit_edge verifyNullCont72.end_crit_edge: ; preds = %verifyNullCont72 ret void verifyNullCont75: ; preds = %verifyNullCont72 - br i1 undef, label %verifyNullCont78, label %verifyNullCont75.end_crit_edge + br i1 %arg, label %verifyNullCont78, label %verifyNullCont75.end_crit_edge verifyNullCont75.end_crit_edge: ; preds = %verifyNullCont75 ret void verifyNullCont78: ; preds = %verifyNullCont75 - br i1 undef, label %"verifyNullCont78.GOTO or IF*4_crit_edge", label %verifyNullCont78.end_crit_edge + br i1 %arg, label %"verifyNullCont78.GOTO or IF*4_crit_edge", label %verifyNullCont78.end_crit_edge "verifyNullCont78.GOTO or IF*4_crit_edge": ; preds = %verifyNullCont78 - br i1 undef, label %verifyNullExit80, label %verifyNullCont81 + br i1 %arg, label %verifyNullExit80, label %verifyNullCont81 verifyNullCont78.end_crit_edge: ; preds = %verifyNullCont78 ret void @@ -185,28 +185,28 @@ verifyNullCont81: ; preds = %"verifyNullCont78.GOTO or IF*4_crit_e br i1 %5, label %verifyNullCont84, label %verifyNullCont172 verifyNullCont84: ; preds = %verifyNullCont81 - br i1 undef, label %"GOTO or IF*2", label %verifyNullCont86 + br i1 %arg, label %"GOTO or IF*2", label %verifyNullCont86 verifyNullCont86: ; preds = %verifyNullCont84 - br i1 undef, label %"true verifyAndComputePtr", label %"false verifyAndComputePtr" + br i1 %arg, label %"true verifyAndComputePtr", label %"false verifyAndComputePtr" "true verifyAndComputePtr": ; preds = %verifyNullCont86 - br i1 undef, label %"true verifyAndComputePtr89", label %"false verifyAndComputePtr90" + br i1 %arg, label %"true verifyAndComputePtr89", label %"false verifyAndComputePtr90" "false verifyAndComputePtr": ; preds = %verifyNullCont86 ret void "true verifyAndComputePtr89": ; preds = %"true verifyAndComputePtr" - br i1 undef, label %"GOTO or IF*6", label %"GOTO or IF*2" + br i1 %arg, label %"GOTO or IF*6", label %"GOTO or IF*2" "false verifyAndComputePtr90": ; preds = %"true verifyAndComputePtr" ret void verifyNullCont126: ; preds = %"GOTO or IF*6" - br i1 undef, label %"true verifyAndComputePtr127", label %"false verifyAndComputePtr128" + br i1 %arg, label %"true verifyAndComputePtr127", label %"false verifyAndComputePtr128" "true verifyAndComputePtr127": ; preds = %verifyNullCont126 - br i1 undef, label %"true verifyAndComputePtr131.GOTO or IF*6_crit_edge", label %"GOTO or IF*5" + br i1 %arg, label %"true verifyAndComputePtr131.GOTO or IF*6_crit_edge", label %"GOTO or IF*5" "false verifyAndComputePtr128": ; preds = %verifyNullCont126 ret void diff --git a/llvm/test/Analysis/ScalarEvolution/pr22674.ll b/llvm/test/Analysis/ScalarEvolution/pr22674.ll index f175b1b360230..95f96ca17e763 100644 --- a/llvm/test/Analysis/ScalarEvolution/pr22674.ll +++ b/llvm/test/Analysis/ScalarEvolution/pr22674.ll @@ -11,12 +11,12 @@ target triple = "x86_64-pc-linux-gnux32" %"class.llvm::AttributeImpl.2.1802.3601.5914.6685.7456.8227.9255.9769.10026.18508" = type <{ ptr, %"class.llvm::FoldingSetImpl::Node.1.1801.3600.5913.6684.7455.8226.9254.9768.10025.18505", i8, [3 x i8] }> ; Function Attrs: nounwind uwtable -define void @_ZNK4llvm11AttrBuilder13hasAttributesENS_12AttributeSetEy() #0 align 2 { +define void @_ZNK4llvm11AttrBuilder13hasAttributesENS_12AttributeSetEy(i1 %arg) #0 align 2 { entry: - br i1 undef, label %cond.false, label %_ZNK4llvm12AttributeSet11getNumSlotsEv.exit + br i1 %arg, label %cond.false, label %_ZNK4llvm12AttributeSet11getNumSlotsEv.exit _ZNK4llvm12AttributeSet11getNumSlotsEv.exit: ; preds = %entry - br i1 undef, label %cond.false, label %for.body.lr.ph.for.body.lr.ph.split_crit_edge + br i1 %arg, label %cond.false, label %for.body.lr.ph.for.body.lr.ph.split_crit_edge for.body.lr.ph.for.body.lr.ph.split_crit_edge: ; preds = %_ZNK4llvm12AttributeSet11getNumSlotsEv.exit br label %land.lhs.true.i @@ -30,15 +30,15 @@ cond.false.i.split: ; preds = %land.lhs.true.i unreachable _ZNK4llvm12AttributeSet12getSlotIndexEj.exit: ; preds = %land.lhs.true.i - br i1 undef, label %for.end, label %for.inc + br i1 %arg, label %for.end, label %for.inc for.inc: ; preds = %_ZNK4llvm12AttributeSet12getSlotIndexEj.exit %inc = add i32 %I.099, 1 - br i1 undef, label %cond.false, label %land.lhs.true.i + br i1 %arg, label %cond.false, label %land.lhs.true.i for.end: ; preds = %_ZNK4llvm12AttributeSet12getSlotIndexEj.exit %I.099.lcssa129 = phi i32 [ %I.099, %_ZNK4llvm12AttributeSet12getSlotIndexEj.exit ] - br i1 undef, label %cond.false, label %_ZNK4llvm12AttributeSet3endEj.exit + br i1 %arg, label %cond.false, label %_ZNK4llvm12AttributeSet3endEj.exit cond.false: ; preds = %for.end, %for.inc, %_ZNK4llvm12AttributeSet11getNumSlotsEv.exit, %entry unreachable @@ -49,7 +49,7 @@ _ZNK4llvm12AttributeSet3endEj.exit: ; preds = %for.end %NumAttrs.i.i.i = getelementptr inbounds %"class.llvm::AttributeSetNode.230.2029.3828.6141.6912.7683.8454.9482.9996.10253.18506", ptr %0, i32 0, i32 1 %1 = load i32, ptr %NumAttrs.i.i.i, align 4, !tbaa !8 %add.ptr.i.i.i55 = getelementptr inbounds %"class.llvm::Attribute.222.2021.3820.6133.6904.7675.8446.9474.9988.10245.18509", ptr undef, i32 %1 - br i1 undef, label %return, label %for.body11 + br i1 %arg, label %return, label %for.body11 for.cond9: ; preds = %_ZNK4llvm9Attribute13getKindAsEnumEv.exit %cmp10 = icmp eq ptr %incdec.ptr, %add.ptr.i.i.i55 @@ -70,7 +70,7 @@ _ZNK4llvm9Attribute15isEnumAttributeEv.exit: ; preds = %for.body11 _ZNK4llvm9Attribute13getKindAsEnumEv.exit: ; preds = %_ZNK4llvm9Attribute15isEnumAttributeEv.exit, %_ZNK4llvm9Attribute15isEnumAttributeEv.exit %incdec.ptr = getelementptr inbounds %"class.llvm::Attribute.222.2021.3820.6133.6904.7675.8446.9474.9988.10245.18509", ptr %I5.096, i32 1 - br i1 undef, label %for.cond9, label %return + br i1 %arg, label %for.cond9, label %return cond.false21: ; preds = %_ZNK4llvm9Attribute15isEnumAttributeEv.exit, %for.body11 unreachable diff --git a/llvm/test/Analysis/ScalarEvolution/pr22856.ll b/llvm/test/Analysis/ScalarEvolution/pr22856.ll index 89e83516efddd..52a6787648745 100644 --- a/llvm/test/Analysis/ScalarEvolution/pr22856.ll +++ b/llvm/test/Analysis/ScalarEvolution/pr22856.ll @@ -3,17 +3,17 @@ target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64--linux-gnu" -define void @unbounded() { +define void @unbounded(i1 %arg) { block_A: %0 = sext i32 undef to i64 - br i1 undef, label %block_F, label %block_G + br i1 %arg, label %block_F, label %block_G block_C: ; preds = %block_F - br i1 undef, label %block_D, label %block_E + br i1 %arg, label %block_D, label %block_E block_D: ; preds = %block_D, %block_C - br i1 undef, label %block_E, label %block_D + br i1 %arg, label %block_E, label %block_D block_E: ; preds = %block_D, %block_C %iv2 = phi i64 [ %4, %block_D ], [ %4, %block_C ] diff --git a/llvm/test/Analysis/ScalarEvolution/pr25369.ll b/llvm/test/Analysis/ScalarEvolution/pr25369.ll index 5783ef24b8a0a..e2524de3161ad 100644 --- a/llvm/test/Analysis/ScalarEvolution/pr25369.ll +++ b/llvm/test/Analysis/ScalarEvolution/pr25369.ll @@ -4,7 +4,7 @@ target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" -define void @hoge1() { +define void @hoge1(i1 %arg) { ; ; CHECK-LABEL: 'hoge1' ; CHECK-NEXT: Determining loop execution counts for: @hoge1 @@ -21,7 +21,7 @@ define void @hoge1() { ; CHECK-NEXT: Loop %bb2: Unpredictable symbolic max backedge-taken count. ; bb: - br i1 undef, label %bb4, label %bb2 + br i1 %arg, label %bb4, label %bb2 bb2: ; preds = %bb2, %bb br i1 false, label %bb4, label %bb2 @@ -53,7 +53,7 @@ bb18: ; preds = %bb13 ret void } -define void @hoge2() { +define void @hoge2(i1 %arg) { ; ; CHECK-LABEL: 'hoge2' ; CHECK-NEXT: Determining loop execution counts for: @hoge2 @@ -69,7 +69,7 @@ define void @hoge2() { ; CHECK-NEXT: Loop %bb2: Unpredictable symbolic max backedge-taken count. ; bb: - br i1 undef, label %bb4, label %bb2 + br i1 %arg, label %bb4, label %bb2 bb2: ; preds = %bb2, %bb br i1 false, label %bb4, label %bb2 diff --git a/llvm/test/Analysis/ScalarEvolution/scev-aa.ll b/llvm/test/Analysis/ScalarEvolution/scev-aa.ll index 5610833e9c474..a1d3699b3cb4b 100644 --- a/llvm/test/Analysis/ScalarEvolution/scev-aa.ll +++ b/llvm/test/Analysis/ScalarEvolution/scev-aa.ll @@ -223,7 +223,7 @@ for.end: ; preds = %for.body, %entry ; different loops where neither dominates the other. This used to crash ; because we expected the arguments to an AddExpr to have a strict ; dominance order. -define void @test_no_dom(ptr %data) { +define void @test_no_dom(ptr %data, i1 %arg) { entry: load double, ptr %data br label %for.body @@ -231,7 +231,7 @@ entry: for.body: %indvars.iv = phi i64 [ 0, %entry ], [ %indvars.iv.next, %for.latch ] %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - br i1 undef, label %subloop1, label %subloop2 + br i1 %arg, label %subloop1, label %subloop2 subloop1: %iv1 = phi i32 [0, %for.body], [%iv1.next, %subloop1] @@ -266,7 +266,7 @@ declare ptr @get_addr(i32 %i) ; In this case, checking %addr1 and %add2 involves two addrecs in two ; different loops where neither dominates the other. This is analogous ; to test_no_dom, but involves SCEVUnknown as opposed to SCEVAddRecExpr. -define void @test_no_dom2(ptr %data) { +define void @test_no_dom2(ptr %data, i1 %arg) { entry: load double, ptr %data br label %for.body @@ -274,7 +274,7 @@ entry: for.body: %indvars.iv = phi i64 [ 0, %entry ], [ %indvars.iv.next, %for.latch ] %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - br i1 undef, label %subloop1, label %subloop2 + br i1 %arg, label %subloop1, label %subloop2 subloop1: %iv1 = phi i32 [0, %for.body], [%iv1.next, %subloop1] diff --git a/llvm/test/Analysis/ScalarEvolution/scev-canonical-mode.ll b/llvm/test/Analysis/ScalarEvolution/scev-canonical-mode.ll index 18df75e290861..3879b2e71851a 100644 --- a/llvm/test/Analysis/ScalarEvolution/scev-canonical-mode.ll +++ b/llvm/test/Analysis/ScalarEvolution/scev-canonical-mode.ll @@ -6,12 +6,12 @@ target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" ; Function Attrs: norecurse nounwind uwtable -define void @ehF() #0 { +define void @ehF(i1 %arg) #0 { entry: - br i1 undef, label %if.then.i, label %hup.exit + br i1 %arg, label %if.then.i, label %hup.exit if.then.i: ; preds = %entry - br i1 undef, label %for.body.lr.ph.i, label %hup.exit + br i1 %arg, label %for.body.lr.ph.i, label %hup.exit for.body.lr.ph.i: ; preds = %if.then.i br label %for.body.i diff --git a/llvm/test/Analysis/ScalarEvolution/scev-invalid.ll b/llvm/test/Analysis/ScalarEvolution/scev-invalid.ll index 1afc3e175c3ae..fe2402bec9309 100644 --- a/llvm/test/Analysis/ScalarEvolution/scev-invalid.ll +++ b/llvm/test/Analysis/ScalarEvolution/scev-invalid.ll @@ -15,13 +15,13 @@ ; CHECK-NOT: phi ; CHECK-NOT: icmp ; CHECK: ret void -define void @test() { +define void @test(i1 %arg) { entry: %xor1 = xor i32 0, 1 br label %b17 b17: - br i1 undef, label %b22, label %b18 + br i1 %arg, label %b22, label %b18 b18: %phi1 = phi i32 [ %add1, %b18 ], [ %xor1, %b17 ] diff --git a/llvm/test/Analysis/ScalarEvolution/shift-recurrences.ll b/llvm/test/Analysis/ScalarEvolution/shift-recurrences.ll index 9806fd3d57f62..6cd709bfff68f 100644 --- a/llvm/test/Analysis/ScalarEvolution/shift-recurrences.ll +++ b/llvm/test/Analysis/ScalarEvolution/shift-recurrences.ll @@ -1,7 +1,7 @@ ; NOTE: Assertions have been autogenerated by utils/update_analyze_test_checks.py ; RUN: opt -disable-output "-passes=print" < %s 2>&1 | FileCheck %s -define void @test_lshr() { +define void @test_lshr(i1 %arg) { ; CHECK-LABEL: 'test_lshr' ; CHECK-NEXT: Classifying expressions for: @test_lshr ; CHECK-NEXT: %iv.lshr = phi i64 [ 1023, %entry ], [ %iv.lshr.next, %loop ] @@ -18,13 +18,13 @@ entry: loop: %iv.lshr = phi i64 [1023, %entry], [%iv.lshr.next, %loop] %iv.lshr.next = lshr i64 %iv.lshr, 1 - br i1 undef, label %exit, label %loop + br i1 %arg, label %exit, label %loop exit: ret void } ; Deliberate overflow doesn't change range -define void @test_lshr2() { +define void @test_lshr2(i1 %arg) { ; CHECK-LABEL: 'test_lshr2' ; CHECK-NEXT: Classifying expressions for: @test_lshr2 ; CHECK-NEXT: %iv.lshr = phi i64 [ 1023, %entry ], [ %iv.lshr.next, %loop ] @@ -41,13 +41,13 @@ entry: loop: %iv.lshr = phi i64 [1023, %entry], [%iv.lshr.next, %loop] %iv.lshr.next = lshr i64 %iv.lshr, 4 - br i1 undef, label %exit, label %loop + br i1 %arg, label %exit, label %loop exit: ret void } -define void @test_ashr_zeros() { +define void @test_ashr_zeros(i1 %arg) { ; CHECK-LABEL: 'test_ashr_zeros' ; CHECK-NEXT: Classifying expressions for: @test_ashr_zeros ; CHECK-NEXT: %iv.ashr = phi i64 [ 1023, %entry ], [ %iv.ashr.next, %loop ] @@ -64,12 +64,12 @@ entry: loop: %iv.ashr = phi i64 [1023, %entry], [%iv.ashr.next, %loop] %iv.ashr.next = ashr i64 %iv.ashr, 1 - br i1 undef, label %exit, label %loop + br i1 %arg, label %exit, label %loop exit: ret void } -define void @test_ashr_ones() { +define void @test_ashr_ones(i1 %arg) { ; CHECK-LABEL: 'test_ashr_ones' ; CHECK-NEXT: Classifying expressions for: @test_ashr_ones ; CHECK-NEXT: %iv.ashr = phi i64 [ -1023, %entry ], [ %iv.ashr.next, %loop ] @@ -86,13 +86,13 @@ entry: loop: %iv.ashr = phi i64 [-1023, %entry], [%iv.ashr.next, %loop] %iv.ashr.next = ashr i64 %iv.ashr, 1 - br i1 undef, label %exit, label %loop + br i1 %arg, label %exit, label %loop exit: ret void } ; Same as previous, but swapped operands to phi -define void @test_ashr_ones2() { +define void @test_ashr_ones2(i1 %arg) { ; CHECK-LABEL: 'test_ashr_ones2' ; CHECK-NEXT: Classifying expressions for: @test_ashr_ones2 ; CHECK-NEXT: %iv.ashr = phi i64 [ %iv.ashr.next, %loop ], [ -1023, %entry ] @@ -109,14 +109,14 @@ entry: loop: %iv.ashr = phi i64 [%iv.ashr.next, %loop], [-1023, %entry] %iv.ashr.next = ashr i64 %iv.ashr, 1 - br i1 undef, label %exit, label %loop + br i1 %arg, label %exit, label %loop exit: ret void } ; negative case for when start is unknown -define void @test_ashr_unknown(i64 %start) { +define void @test_ashr_unknown(i64 %start, i1 %arg) { ; CHECK-LABEL: 'test_ashr_unknown' ; CHECK-NEXT: Classifying expressions for: @test_ashr_unknown ; CHECK-NEXT: %iv.ashr = phi i64 [ %start, %entry ], [ %iv.ashr.next, %loop ] @@ -133,14 +133,14 @@ entry: loop: %iv.ashr = phi i64 [%start, %entry], [%iv.ashr.next, %loop] %iv.ashr.next = ashr i64 %iv.ashr, 1 - br i1 undef, label %exit, label %loop + br i1 %arg, label %exit, label %loop exit: ret void } ; Negative case where we don't have a (shift) recurrence because the operands ; of the ashr are swapped. (This does end up being a divide recurrence.) -define void @test_ashr_wrong_op(i64 %start) { +define void @test_ashr_wrong_op(i64 %start, i1 %arg) { ; CHECK-LABEL: 'test_ashr_wrong_op' ; CHECK-NEXT: Classifying expressions for: @test_ashr_wrong_op ; CHECK-NEXT: %iv.ashr = phi i64 [ %start, %entry ], [ %iv.ashr.next, %loop ] @@ -157,13 +157,13 @@ entry: loop: %iv.ashr = phi i64 [%start, %entry], [%iv.ashr.next, %loop] %iv.ashr.next = ashr i64 1, %iv.ashr - br i1 undef, label %exit, label %loop + br i1 %arg, label %exit, label %loop exit: ret void } -define void @test_shl() { +define void @test_shl(i1 %arg) { ; CHECK-LABEL: 'test_shl' ; CHECK-NEXT: Classifying expressions for: @test_shl ; CHECK-NEXT: %iv.shl = phi i64 [ 8, %entry ], [ %iv.shl.next, %loop ] @@ -180,13 +180,13 @@ entry: loop: %iv.shl = phi i64 [8, %entry], [%iv.shl.next, %loop] %iv.shl.next = shl i64 %iv.shl, 1 - br i1 undef, label %exit, label %loop + br i1 %arg, label %exit, label %loop exit: ret void } ; use trip count to refine -define void @test_shl2() { +define void @test_shl2(i1 %arg) { ; CHECK-LABEL: 'test_shl2' ; CHECK-NEXT: Classifying expressions for: @test_shl2 ; CHECK-NEXT: %iv = phi i64 [ 0, %entry ], [ %iv.next, %loop ] @@ -251,7 +251,7 @@ exit: } ; edge case on max value not overflowing -define void @test_shl4() { +define void @test_shl4(i1 %arg) { ; CHECK-LABEL: 'test_shl4' ; CHECK-NEXT: Classifying expressions for: @test_shl4 ; CHECK-NEXT: %iv = phi i64 [ 0, %entry ], [ %iv.next, %loop ] @@ -282,7 +282,7 @@ exit: } ; other side of edge case from previous test -define void @test_shl5() { +define void @test_shl5(i1 %arg) { ; CHECK-LABEL: 'test_shl5' ; CHECK-NEXT: Classifying expressions for: @test_shl5 ; CHECK-NEXT: %iv = phi i64 [ 0, %entry ], [ %iv.next, %loop ] @@ -379,7 +379,7 @@ exit: ; Corner case where phi is not in a loop because it is in unreachable ; code (which loopinfo ignores, but simple recurrence matching does not). -define void @unreachable_phi() { +define void @unreachable_phi(i1 %arg) { ; CHECK-LABEL: 'unreachable_phi' ; CHECK-NEXT: Classifying expressions for: @unreachable_phi ; CHECK-NEXT: %p_58.addr.1 = phi i32 [ undef, %unreachable1 ], [ %sub2629, %unreachable2 ] @@ -403,7 +403,7 @@ unreachable_nonloop: ; Corner case where phi is not in loop header because binop is in unreachable ; code (which loopinfo ignores, but simple recurrence matching does not). -define void @unreachable_binop() { +define void @unreachable_binop(i1 %arg) { ; CHECK-LABEL: 'unreachable_binop' ; CHECK-NEXT: Classifying expressions for: @unreachable_binop ; CHECK-NEXT: %p_58.addr.1 = phi i32 [ undef, %header ], [ %sub2629, %unreachable ] @@ -423,7 +423,7 @@ header: for.cond2295: %p_58.addr.1 = phi i32 [ undef, %header ], [ %sub2629, %unreachable ] - br i1 undef, label %if.then2321, label %header + br i1 %arg, label %if.then2321, label %header if.then2321: ret void diff --git a/llvm/test/Analysis/ValueTracking/memory-dereferenceable.ll b/llvm/test/Analysis/ValueTracking/memory-dereferenceable.ll index 7a976fa7c0f81..3da1aaa8a68a8 100644 --- a/llvm/test/Analysis/ValueTracking/memory-dereferenceable.ll +++ b/llvm/test/Analysis/ValueTracking/memory-dereferenceable.ll @@ -25,7 +25,7 @@ declare ptr @foo() ; CHECK-LABEL: 'test_sret' ; CHECK: %sret_gep{{.*}}(aligned) ; CHECK-NOT: %sret_gep_outside -define void @test_sret(ptr sret(%struct.A) %result) { +define void @test_sret(ptr sret(%struct.A) %result, i1 %arg) { %sret_gep = getelementptr inbounds %struct.A, ptr %result, i64 0, i32 1, i64 2 load i8, ptr %sret_gep @@ -287,10 +287,10 @@ define void @infer_noalias2(ptr dereferenceable(8) noalias readonly %p) nosync { ; Just check that we don't crash. ; CHECK-LABEL: 'opaque_type_crasher' -define void @opaque_type_crasher(ptr dereferenceable(16) %a) { +define void @opaque_type_crasher(ptr dereferenceable(16) %a, i1 %arg) { entry: %ptr8 = getelementptr inbounds i8, ptr %a, i32 8 - br i1 undef, label %if.then, label %if.end + br i1 %arg, label %if.then, label %if.end if.then: %res = load i32, ptr %ptr8, align 4 diff --git a/llvm/test/Assembler/atomicrmw.ll b/llvm/test/Assembler/atomicrmw.ll index 8c043c76ff038..fb1347addb558 100644 --- a/llvm/test/Assembler/atomicrmw.ll +++ b/llvm/test/Assembler/atomicrmw.ll @@ -4,7 +4,7 @@ ; CHECK: @f ; CHECK: atomicrmw -define void @f() { +define void @f(i1 %arg) { entry: br label %def @@ -14,5 +14,5 @@ define void @f() { def: %y = add i32 undef, undef - br i1 undef, label %use, label %use + br i1 %arg, label %use, label %use } diff --git a/llvm/test/Assembler/convergence-control.ll b/llvm/test/Assembler/convergence-control.ll index 28fba5692bce7..f32f4a9f53707 100644 --- a/llvm/test/Assembler/convergence-control.ll +++ b/llvm/test/Assembler/convergence-control.ll @@ -25,14 +25,14 @@ define void @mixed2() { } -define void @region_nesting1() convergent { +define void @region_nesting1(i1 %arg) convergent { A: %tok1 = call token @llvm.experimental.convergence.entry() %tok2 = call token @llvm.experimental.convergence.anchor() br label %B B: - br i1 undef, label %C, label %D + br i1 %arg, label %C, label %D C: call void @f() [ "convergencectrl"(token %tok1) ] @@ -44,14 +44,14 @@ D: } ; Mirror image of @region_nesting1 -define void @region_nesting2() { +define void @region_nesting2(i1 %arg) { A: %tok1 = call token @llvm.experimental.convergence.anchor() %tok2 = call token @llvm.experimental.convergence.anchor() br label %B B: - br i1 undef, label %C, label %D + br i1 %arg, label %C, label %D C: call void @f() [ "convergencectrl"(token %tok2) ] @@ -62,14 +62,14 @@ D: ret void } -define void @loop_nesting() convergent { +define void @loop_nesting(i1 %arg) convergent { A: %a = call token @llvm.experimental.convergence.entry() br label %B B: %b = call token @llvm.experimental.convergence.anchor() - br i1 undef, label %C, label %D + br i1 %arg, label %C, label %D C: %c = call token @llvm.experimental.convergence.loop() [ "convergencectrl"(token %b) ] @@ -78,7 +78,7 @@ C: D: call void @f() [ "convergencectrl"(token %b) ] - br i1 undef, label %B, label %E + br i1 %arg, label %B, label %E E: ret void diff --git a/llvm/test/Bitcode/convergence-control.ll b/llvm/test/Bitcode/convergence-control.ll index 7ba5609b6a7cc..a973722b60056 100644 --- a/llvm/test/Bitcode/convergence-control.ll +++ b/llvm/test/Bitcode/convergence-control.ll @@ -1,6 +1,6 @@ ; RUN: llvm-dis < %s.bc | FileCheck %s -define void @loop_nesting() convergent { +define void @loop_nesting(i1 %arg) convergent { A: ; CHECK-LABEL: A: ; CHECK: [[A:%.*]] = call token @llvm.experimental.convergence.entry() @@ -13,7 +13,7 @@ B: ; CHECK: [[B:%.*]] = call token @llvm.experimental.convergence.anchor() ; %b = call token @llvm.experimental.convergence.anchor() - br i1 undef, label %C, label %D + br i1 %arg, label %C, label %D C: ; CHECK-LABEL: C: @@ -29,7 +29,7 @@ D: ; CHECK: call void @f() [ "convergencectrl"(token [[B]]) ] ; call void @f() [ "convergencectrl"(token %b) ] - br i1 undef, label %B, label %E + br i1 %arg, label %B, label %E E: ret void diff --git a/llvm/test/DebugInfo/ARM/illegal-fragment.ll b/llvm/test/DebugInfo/ARM/illegal-fragment.ll index 494cdee0c68be..c581aa2613129 100644 --- a/llvm/test/DebugInfo/ARM/illegal-fragment.ll +++ b/llvm/test/DebugInfo/ARM/illegal-fragment.ll @@ -8,7 +8,7 @@ target triple = "thumbv7s-apple-ios5.0.0" %struct.vm_object = type { i64 } ; Function Attrs: nounwind ssp -define void @f(ptr %object, ptr nocapture readonly %start) local_unnamed_addr #0 !dbg !11 { +define void @f(ptr %object, ptr nocapture readonly %start, i1 %arg) local_unnamed_addr #0 !dbg !11 { entry: tail call void @llvm.dbg.value(metadata ptr %object, metadata !21, metadata !DIExpression()), !dbg !27 tail call void @llvm.dbg.value(metadata ptr %start, metadata !22, metadata !DIExpression()), !dbg !28 @@ -17,7 +17,7 @@ entry: ; This debug value cannot safely be split into two 32-bit pieces. ; CHECK-NOT: DW_AT_name(offset) tail call void @llvm.dbg.value(metadata i32 undef, metadata !23, metadata !DIExpression()), !dbg !31 - br i1 undef, label %for.end, label %for.body.lr.ph, !dbg !31 + br i1 %arg, label %for.end, label %for.body.lr.ph, !dbg !31 for.body.lr.ph: ; preds = %entry %0 = load i64, ptr %start, align 4, !dbg !33 diff --git a/llvm/test/DebugInfo/ARM/machine-cp-updates-dbg-reg.mir b/llvm/test/DebugInfo/ARM/machine-cp-updates-dbg-reg.mir index bbd816a330886..e14472af7a4ea 100644 --- a/llvm/test/DebugInfo/ARM/machine-cp-updates-dbg-reg.mir +++ b/llvm/test/DebugInfo/ARM/machine-cp-updates-dbg-reg.mir @@ -27,10 +27,10 @@ declare dso_local i32 @get_mm_counter(ptr, i32) local_unnamed_addr #0 - define dso_local i32 @dup_mm() local_unnamed_addr !dbg !16 { + define dso_local i32 @dup_mm(i1 %arg) local_unnamed_addr !dbg !16 { entry: %call = tail call i32 @kmem_cache_alloc(i32 0) - br i1 undef, label %cleanup, label %if.end + br i1 %arg, label %cleanup, label %if.end if.end: ; preds = %entry %tobool1.not = icmp eq i32 undef, 0 diff --git a/llvm/test/DebugInfo/MIR/InstrRef/follow-spill-of-live-value.mir b/llvm/test/DebugInfo/MIR/InstrRef/follow-spill-of-live-value.mir index e625493f1a305..79a62c1db58a5 100644 --- a/llvm/test/DebugInfo/MIR/InstrRef/follow-spill-of-live-value.mir +++ b/llvm/test/DebugInfo/MIR/InstrRef/follow-spill-of-live-value.mir @@ -36,13 +36,13 @@ %"class.llvm::Loop" = type opaque %"struct.std::_Deque_iterator" = type { ptr, ptr, ptr, ptr } - define linkonce_odr void @_ZNSt5dequeIPN4llvm4LoopESaIS2_EE13_M_insert_auxESt15_Deque_iteratorIS2_RS2_PS2_EmRKS2_(ptr %this, ptr %__pos, i64 %__n) local_unnamed_addr align 2 !dbg !3 { + define linkonce_odr void @_ZNSt5dequeIPN4llvm4LoopESaIS2_EE13_M_insert_auxESt15_Deque_iteratorIS2_RS2_PS2_EmRKS2_(ptr %this, ptr %__pos, i64 %__n, i1 %arg) local_unnamed_addr align 2 !dbg !3 { entry: %0 = load ptr, ptr undef, align 8, !dbg !7 %_M_cur6.i = getelementptr inbounds %"class.std::deque", ptr %this, i64 0, i32 0, i32 0, i32 2, i32 0, !dbg !7 %1 = load ptr, ptr %_M_cur6.i, align 8, !dbg !7 %2 = load ptr, ptr undef, align 8, !dbg !7 - br i1 undef, label %if.then.i851, label %if.end.i856, !dbg !7 + br i1 %arg, label %if.then.i851, label %if.end.i856, !dbg !7 if.then.i851: ; preds = %entry %.pre1038 = load ptr, ptr undef, align 8, !dbg !7 @@ -71,7 +71,7 @@ %sunkaddr3 = getelementptr inbounds i8, ptr %13, i64 40, !dbg !7 %14 = bitcast ptr %sunkaddr3 to ptr, !dbg !7 %15 = load ptr, ptr %14, align 8, !dbg !7 - br i1 undef, label %if.then.i.i775, label %cond.true.i.i777, !dbg !7 + br i1 %arg, label %if.then.i.i775, label %cond.true.i.i777, !dbg !7 if.then.i.i775: ; preds = %if.end.i856 %add.ptr.i.i774 = getelementptr inbounds ptr, ptr %11, i64 %__n, !dbg !7 diff --git a/llvm/test/DebugInfo/MIR/InstrRef/out-of-scope-blocks.mir b/llvm/test/DebugInfo/MIR/InstrRef/out-of-scope-blocks.mir index c25c467c10f21..5c4f9b0d0e478 100644 --- a/llvm/test/DebugInfo/MIR/InstrRef/out-of-scope-blocks.mir +++ b/llvm/test/DebugInfo/MIR/InstrRef/out-of-scope-blocks.mir @@ -37,14 +37,14 @@ %class._Tree_unchecked_const_iterator = type { %struct._Iterator_base0, ptr } %struct._Iterator_base0 = type { i32 } - define i32 @main({ i32, ptr } %call.i) !dbg !6 { + define i32 @main({ i32, ptr } %call.i, i1 %arg) !dbg !6 { entry: call void @llvm.dbg.value(metadata i32 2, metadata !10, metadata !DIExpression()), !dbg !12 %call.i1 = call { i32, ptr } undef(ptr null) %0 = extractvalue { i32, ptr } %call.i, 1 call void @llvm.dbg.value(metadata ptr %0, metadata !13, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 64)), !dbg !15 %call.i.i.i.i.i = call i8 undef(ptr null), !dbg !15 - br i1 undef, label %_Z17do_insert_cv_testI5_TreeEvv.exit, label %if.then.i.i.i.i.i + br i1 %arg, label %_Z17do_insert_cv_testI5_TreeEvv.exit, label %if.then.i.i.i.i.i if.then.i.i.i.i.i: %call3.i.i.i.i.i = call ptr undef(ptr null) diff --git a/llvm/test/DebugInfo/MIR/X86/machine-cse.mir b/llvm/test/DebugInfo/MIR/X86/machine-cse.mir index 9bcb4408312a6..c38c0a1a79f75 100644 --- a/llvm/test/DebugInfo/MIR/X86/machine-cse.mir +++ b/llvm/test/DebugInfo/MIR/X86/machine-cse.mir @@ -24,11 +24,11 @@ ; Function Attrs: nounwind readnone speculatable declare void @llvm.dbg.value(metadata, metadata, metadata) #0 - define fastcc ptr @t(i32 %base) !dbg !3 { + define fastcc ptr @t(i32 %base, i1 %arg) !dbg !3 { entry: %0 = zext i32 %base to i64 %1 = getelementptr inbounds %struct.s2, ptr null, i64 %0 - br i1 undef, label %bb1, label %bb2 + br i1 %arg, label %bb1, label %bb2 bb1: ; preds = %entry %2 = getelementptr inbounds %struct.s2, ptr null, i64 %0, i32 0 @@ -43,9 +43,9 @@ } ; This is a stub replicating bb structure of @t - define fastcc ptr @u(i32 %base) !dbg !33 { + define fastcc ptr @u(i32 %base, i1 %arg) !dbg !33 { entry: - br i1 undef, label %bb1, label %bb2 + br i1 %arg, label %bb1, label %bb2 bb1: ; preds = %entry unreachable diff --git a/llvm/test/DebugInfo/X86/dbg-merge-loc-entry.ll b/llvm/test/DebugInfo/X86/dbg-merge-loc-entry.ll index bfc1dbafbc93a..b0ace49e7fb3a 100644 --- a/llvm/test/DebugInfo/X86/dbg-merge-loc-entry.ll +++ b/llvm/test/DebugInfo/X86/dbg-merge-loc-entry.ll @@ -13,18 +13,18 @@ target triple = "x86_64-apple-darwin8" @__clz_tab = external constant [256 x i8] -define hidden i128 @__divti3(i128 %u, i128 %v) nounwind readnone !dbg !9 { +define hidden i128 @__divti3(i128 %u, i128 %v, i1 %arg) nounwind readnone !dbg !9 { entry: tail call void @llvm.dbg.value(metadata i128 %u, metadata !14, metadata !DIExpression()), !dbg !15 tail call void @llvm.dbg.value(metadata i64 0, metadata !17, metadata !DIExpression()), !dbg !21 - br i1 undef, label %bb2, label %bb4, !dbg !22 + br i1 %arg, label %bb2, label %bb4, !dbg !22 bb2: ; preds = %entry tail call void @llvm.dbg.value(metadata i128 %u, metadata !14, metadata !DIExpression()), !dbg !15 br label %bb4, !dbg !23 bb4: ; preds = %bb2, %entry - br i1 undef, label %__udivmodti4.exit, label %bb82.i, !dbg !24 + br i1 %arg, label %__udivmodti4.exit, label %bb82.i, !dbg !24 bb82.i: ; preds = %bb4 unreachable diff --git a/llvm/test/DebugInfo/X86/dbg-value-terminator.ll b/llvm/test/DebugInfo/X86/dbg-value-terminator.ll index 4cea19435b673..e8974491cdeea 100644 --- a/llvm/test/DebugInfo/X86/dbg-value-terminator.ll +++ b/llvm/test/DebugInfo/X86/dbg-value-terminator.ll @@ -10,52 +10,52 @@ %a = type { i32, i32 } -define hidden fastcc ptr @test() #1 !dbg !1 { +define hidden fastcc ptr @test(i1 %arg) #1 !dbg !1 { entry: %0 = icmp eq ptr undef, null, !dbg !12 br i1 %0, label %"14", label %return, !dbg !12 "14": ; preds = %"8" - br i1 undef, label %"25", label %"21", !dbg !12 + br i1 %arg, label %"25", label %"21", !dbg !12 "21": ; preds = %"14" - br i1 undef, label %may_unswitch_on.exit, label %"6.i", !dbg !12 + br i1 %arg, label %may_unswitch_on.exit, label %"6.i", !dbg !12 "6.i": ; preds = %"21" - br i1 undef, label %"10.i", label %may_unswitch_on.exit, !dbg !12 + br i1 %arg, label %"10.i", label %may_unswitch_on.exit, !dbg !12 "10.i": ; preds = %"6.i" - br i1 undef, label %may_unswitch_on.exit, label %"12.i", !dbg !12 + br i1 %arg, label %may_unswitch_on.exit, label %"12.i", !dbg !12 "12.i": ; preds = %"10.i" - br i1 undef, label %"4.i.i", label %"3.i.i", !dbg !12 + br i1 %arg, label %"4.i.i", label %"3.i.i", !dbg !12 "3.i.i": ; preds = %"12.i" - br i1 undef, label %"4.i.i", label %VEC_edge_base_index.exit.i, !dbg !12 + br i1 %arg, label %"4.i.i", label %VEC_edge_base_index.exit.i, !dbg !12 "4.i.i": ; preds = %"3.i.i", %"12.i" unreachable, !dbg !12 VEC_edge_base_index.exit.i: ; preds = %"3.i.i" - br i1 undef, label %may_unswitch_on.exit, label %"16.i", !dbg !12 + br i1 %arg, label %may_unswitch_on.exit, label %"16.i", !dbg !12 "16.i": ; preds = %VEC_edge_base_index.exit.i - br i1 undef, label %"4.i6.i", label %"3.i5.i", !dbg !12 + br i1 %arg, label %"4.i6.i", label %"3.i5.i", !dbg !12 "3.i5.i": ; preds = %"16.i" - br i1 undef, label %VEC_edge_base_index.exit7.i, label %"4.i6.i", !dbg !12 + br i1 %arg, label %VEC_edge_base_index.exit7.i, label %"4.i6.i", !dbg !12 "4.i6.i": ; preds = %"3.i5.i", %"16.i" unreachable, !dbg !12 VEC_edge_base_index.exit7.i: ; preds = %"3.i5.i" - br i1 undef, label %may_unswitch_on.exit, label %"21.i", !dbg !12 + br i1 %arg, label %may_unswitch_on.exit, label %"21.i", !dbg !12 "21.i": ; preds = %VEC_edge_base_index.exit7.i - br i1 undef, label %may_unswitch_on.exit, label %"23.i", !dbg !12 + br i1 %arg, label %may_unswitch_on.exit, label %"23.i", !dbg !12 "23.i": ; preds = %"21.i" - br i1 undef, label %may_unswitch_on.exit, label %"26.i", !dbg !12 + br i1 %arg, label %may_unswitch_on.exit, label %"26.i", !dbg !12 "26.i": ; preds = %"34.i", %"23.i" %1 = icmp eq i32 undef, 9, !dbg !12 @@ -65,25 +65,25 @@ VEC_edge_base_index.exit7.i: ; preds = %"3.i5.i" unreachable "34.i": ; preds = %"26.i" - br i1 undef, label %"26.i", label %"36.i", !dbg !12 + br i1 %arg, label %"26.i", label %"36.i", !dbg !12 "36.i": ; preds = %"34.i" - br i1 undef, label %"37.i", label %"38.i", !dbg !12 + br i1 %arg, label %"37.i", label %"38.i", !dbg !12 "37.i": ; preds = %"36.i" br label %"38.i", !dbg !12 "38.i": ; preds = %"37.i", %"36.i" - br i1 undef, label %"39.i", label %"45.i", !dbg !12 + br i1 %arg, label %"39.i", label %"45.i", !dbg !12 "39.i": ; preds = %"38.i" - br i1 undef, label %"41.i", label %may_unswitch_on.exit, !dbg !12 + br i1 %arg, label %"41.i", label %may_unswitch_on.exit, !dbg !12 "41.i": ; preds = %"39.i" - br i1 undef, label %may_unswitch_on.exit, label %"42.i", !dbg !12 + br i1 %arg, label %may_unswitch_on.exit, label %"42.i", !dbg !12 "42.i": ; preds = %"41.i" - br i1 undef, label %may_unswitch_on.exit, label %"44.i", !dbg !12 + br i1 %arg, label %may_unswitch_on.exit, label %"44.i", !dbg !12 "44.i": ; preds = %"42.i" %2 = load ptr, ptr undef, align 8, !dbg !12 diff --git a/llvm/test/DebugInfo/X86/deleted-bit-piece.ll b/llvm/test/DebugInfo/X86/deleted-bit-piece.ll index fb07e0a26171a..ff277006f7702 100644 --- a/llvm/test/DebugInfo/X86/deleted-bit-piece.ll +++ b/llvm/test/DebugInfo/X86/deleted-bit-piece.ll @@ -9,9 +9,9 @@ target triple = "x86_64-apple-macosx10.8.0" ; CHECK: __Z3foov: ; CHECK: retq -define void @_Z3foov() !dbg !12 { +define void @_Z3foov(i1 %arg) !dbg !12 { entry: - br i1 undef, label %exit, label %bb + br i1 %arg, label %exit, label %bb bb: ; preds = %entry call void @llvm.dbg.value(metadata ptr undef, metadata !15, metadata !16), !dbg !17 diff --git a/llvm/test/DebugInfo/X86/earlydup-crash.ll b/llvm/test/DebugInfo/X86/earlydup-crash.ll index ccb8853fdd1ca..a83a4ae69708a 100644 --- a/llvm/test/DebugInfo/X86/earlydup-crash.ll +++ b/llvm/test/DebugInfo/X86/earlydup-crash.ll @@ -8,13 +8,13 @@ declare void @llvm.dbg.value(metadata, metadata, metadata) nounwind readnone define internal ptr @framework_construct_pathname(ptr %fname, ptr %dir) nounwind ssp !dbg !2 { entry: - br i1 undef, label %bb33, label %bb + br i1 poison, label %bb33, label %bb bb: ; preds = %entry %tmp = icmp eq i32 undef, 0 %tmp1 = add i32 0, 11 call void @llvm.dbg.value(metadata i32 %tmp1, metadata !0, metadata !DIExpression()), !dbg !DILocation(scope: !1) - br i1 undef, label %bb18, label %bb31.preheader + br i1 poison, label %bb18, label %bb31.preheader bb31.preheader: ; preds = %bb19, %bb br label %bb31 @@ -30,7 +30,7 @@ bb19: ; preds = %bb18 bb22: ; preds = %bb31 %tmp4 = add i32 0, %tmp1 call void @foobar(i32 %tmp4) - br i1 undef, label %bb33, label %bb31 + br i1 poison, label %bb33, label %bb31 bb31: ; preds = %bb22, %bb31.preheader br i1 false, label %bb33, label %bb22 diff --git a/llvm/test/DebugInfo/X86/live-debug-values-constprop.mir b/llvm/test/DebugInfo/X86/live-debug-values-constprop.mir index 2dbe8fbc0f2a4..8a0537658c9c0 100644 --- a/llvm/test/DebugInfo/X86/live-debug-values-constprop.mir +++ b/llvm/test/DebugInfo/X86/live-debug-values-constprop.mir @@ -8,9 +8,9 @@ source_filename = "" target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" - define i32 @foo(ptr %bees, ptr %output) !dbg !4 { + define i32 @foo(ptr %bees, ptr %output, i1 %arg) !dbg !4 { entry: - br i1 undef, label %bb1, label %bb1 + br i1 %arg, label %bb1, label %bb1 bb1: br label %bb3 bb2: @@ -19,9 +19,9 @@ ret i32 0 } - define i32 @bar(ptr %bees, ptr %output) !dbg !40 { + define i32 @bar(ptr %bees, ptr %output, i1 %arg) !dbg !40 { entry: - br i1 undef, label %bb1, label %bb1 + br i1 %arg, label %bb1, label %bb1 bb1: br label %bb3 bb2: @@ -30,9 +30,9 @@ ret i32 0 } - define i32 @baz(ptr %bees, ptr %output) !dbg !80 { + define i32 @baz(ptr %bees, ptr %output, i1 %arg) !dbg !80 { entry: - br i1 undef, label %bb1, label %bb1 + br i1 %arg, label %bb1, label %bb1 bb1: br label %bb3 bb2: @@ -41,9 +41,9 @@ ret i32 0 } - define i32 @qux(ptr %bees, ptr %output) !dbg !120 { + define i32 @qux(ptr %bees, ptr %output, i1 %arg) !dbg !120 { entry: - br i1 undef, label %bb1, label %bb1 + br i1 %arg, label %bb1, label %bb1 bb1: br label %bb3 bb2: diff --git a/llvm/test/DebugInfo/X86/mem2reg_fp80.ll b/llvm/test/DebugInfo/X86/mem2reg_fp80.ll index 342ba5a274a01..72409f4ef34bb 100644 --- a/llvm/test/DebugInfo/X86/mem2reg_fp80.ll +++ b/llvm/test/DebugInfo/X86/mem2reg_fp80.ll @@ -4,11 +4,11 @@ target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" -define dso_local x86_fp80 @powixf2() !dbg !1 { +define dso_local x86_fp80 @powixf2(i1 %arg) !dbg !1 { entry: %r = alloca x86_fp80, align 16 call void @llvm.dbg.declare(metadata ptr %r, metadata !14, metadata !DIExpression()), !dbg !15 - br i1 undef, label %if.then, label %if.end, !dbg !16 + br i1 %arg, label %if.then, label %if.end, !dbg !16 if.then: ; preds = %entry ; CHECK-LABEL: if.then: diff --git a/llvm/test/DebugInfo/X86/sdag-dbgvalue-phi-use-4.ll b/llvm/test/DebugInfo/X86/sdag-dbgvalue-phi-use-4.ll index 1c04e77c7d286..fa456abd51698 100644 --- a/llvm/test/DebugInfo/X86/sdag-dbgvalue-phi-use-4.ll +++ b/llvm/test/DebugInfo/X86/sdag-dbgvalue-phi-use-4.ll @@ -39,9 +39,9 @@ target datalayout = "e-m:x-p:32:32-i64:64-f80:32-n8:16:32-a:0:32-S32" target triple = "i686-w64-windows-gnu" ; Function Attrs: nounwind readnone -define dso_local i64 @nextafterl(i80 %a) local_unnamed_addr #0 !dbg !6 { +define dso_local i64 @nextafterl(i80 %a, i1 %arg) local_unnamed_addr #0 !dbg !6 { entry: - br i1 undef, label %if.else, label %if.then13, !dbg !28 + br i1 %arg, label %if.else, label %if.then13, !dbg !28 if.then13: ; preds = %entry %u.sroa.0.8.insert.insert = or i80 %a, 2222, !dbg !29 diff --git a/llvm/test/Examples/IRTransforms/SimplifyCFG/tut-simplify-cfg2-dead-block-order.ll b/llvm/test/Examples/IRTransforms/SimplifyCFG/tut-simplify-cfg2-dead-block-order.ll index d53f5133b2bf3..aa078179d2e3b 100644 --- a/llvm/test/Examples/IRTransforms/SimplifyCFG/tut-simplify-cfg2-dead-block-order.ll +++ b/llvm/test/Examples/IRTransforms/SimplifyCFG/tut-simplify-cfg2-dead-block-order.ll @@ -18,7 +18,7 @@ bb.2: ret i32 3 } -define i32 @simp1() { +define i32 @simp1(i1 %arg) { ; CHECK-LABEL: @simp1( ; CHECK-NEXT: entry: ; CHECK-NEXT: ret i32 1 @@ -32,7 +32,7 @@ bb.1: ret i32 2 bb.2: - br i1 undef, label %bb.1, label %bb.3 + br i1 %arg, label %bb.1, label %bb.3 bb.3: ret i32 3 diff --git a/llvm/test/Other/loop-pass-ordering.ll b/llvm/test/Other/loop-pass-ordering.ll index c7e24fe9a3c08..ad831135426ea 100644 --- a/llvm/test/Other/loop-pass-ordering.ll +++ b/llvm/test/Other/loop-pass-ordering.ll @@ -14,23 +14,23 @@ ; CHECK: Running pass: NoOpLoopPass on loop %loop.1.0 in function f ; CHECK: Running pass: NoOpLoopPass on loop %loop.1 in function f -define void @f() { +define void @f(i1 %arg) { entry: br label %loop.0 loop.0: - br i1 undef, label %loop.0.0, label %loop.1 + br i1 %arg, label %loop.0.0, label %loop.1 loop.0.0: - br i1 undef, label %loop.0.0, label %loop.0.1 + br i1 %arg, label %loop.0.0, label %loop.0.1 loop.0.1: - br i1 undef, label %loop.0.1, label %loop.0 + br i1 %arg, label %loop.0.1, label %loop.0 loop.1: - br i1 undef, label %loop.1, label %loop.1.bb1 + br i1 %arg, label %loop.1, label %loop.1.bb1 loop.1.bb1: - br i1 undef, label %loop.1, label %loop.1.bb2 + br i1 %arg, label %loop.1, label %loop.1.bb2 loop.1.bb2: - br i1 undef, label %end, label %loop.1.0 + br i1 %arg, label %end, label %loop.1.0 loop.1.0: - br i1 undef, label %loop.1.0, label %loop.1 + br i1 %arg, label %loop.1.0, label %loop.1 end: ret void } diff --git a/llvm/test/Other/loopnest-pass-ordering.ll b/llvm/test/Other/loopnest-pass-ordering.ll index e3d58e8e1c769..553126c221617 100644 --- a/llvm/test/Other/loopnest-pass-ordering.ll +++ b/llvm/test/Other/loopnest-pass-ordering.ll @@ -12,23 +12,23 @@ ; CHECK: Running pass: NoOpLoopNestPass on loop %loop.1 in function f ; CHECK-NOT: Running pass: NoOpLoopNestPass on {{loop\..*\..*}} -define void @f() { +define void @f(i1 %arg) { entry: br label %loop.0 loop.0: - br i1 undef, label %loop.0.0, label %loop.1 + br i1 %arg, label %loop.0.0, label %loop.1 loop.0.0: - br i1 undef, label %loop.0.0, label %loop.0.1 + br i1 %arg, label %loop.0.0, label %loop.0.1 loop.0.1: - br i1 undef, label %loop.0.1, label %loop.0 + br i1 %arg, label %loop.0.1, label %loop.0 loop.1: - br i1 undef, label %loop.1, label %loop.1.bb1 + br i1 %arg, label %loop.1, label %loop.1.bb1 loop.1.bb1: - br i1 undef, label %loop.1, label %loop.1.bb2 + br i1 %arg, label %loop.1, label %loop.1.bb2 loop.1.bb2: - br i1 undef, label %end, label %loop.1.0 + br i1 %arg, label %end, label %loop.1.0 loop.1.0: - br i1 undef, label %loop.1.0, label %loop.1 + br i1 %arg, label %loop.1.0, label %loop.1 end: ret void } diff --git a/llvm/test/Other/opt-bisect-new-pass-manager.ll b/llvm/test/Other/opt-bisect-new-pass-manager.ll index 4e15a56012e5b..01dad705ec362 100644 --- a/llvm/test/Other/opt-bisect-new-pass-manager.ll +++ b/llvm/test/Other/opt-bisect-new-pass-manager.ll @@ -101,23 +101,23 @@ declare i32 @g() -define void @f1() { +define void @f1(i1 %arg) { entry: br label %loop.0 loop.0: - br i1 undef, label %loop.0.0, label %loop.1 + br i1 %arg, label %loop.0.0, label %loop.1 loop.0.0: - br i1 undef, label %loop.0.0, label %loop.0.1 + br i1 %arg, label %loop.0.0, label %loop.0.1 loop.0.1: - br i1 undef, label %loop.0.1, label %loop.0 + br i1 %arg, label %loop.0.1, label %loop.0 loop.1: - br i1 undef, label %loop.1, label %loop.1.bb1 + br i1 %arg, label %loop.1, label %loop.1.bb1 loop.1.bb1: - br i1 undef, label %loop.1, label %loop.1.bb2 + br i1 %arg, label %loop.1, label %loop.1.bb2 loop.1.bb2: - br i1 undef, label %end, label %loop.1.0 + br i1 %arg, label %end, label %loop.1.0 loop.1.0: - br i1 undef, label %loop.1.0, label %loop.1 + br i1 %arg, label %loop.1.0, label %loop.1 end: ret void } @@ -141,14 +141,14 @@ bb.false: ; This function is here to verify that opt-bisect can skip all passes for ; functions that contain lifetime intrinsics. -define void @f4() { +define void @f4(i1 %arg) { entry: %i = alloca i32, align 4 call void @llvm.lifetime.start(i64 4, ptr %i) br label %for.cond for.cond: - br i1 undef, label %for.body, label %for.end + br i1 %arg, label %for.body, label %for.end for.body: br label %for.cond diff --git a/llvm/test/SafepointIRVerifier/from-same-relocation-in-phi-nodes.ll b/llvm/test/SafepointIRVerifier/from-same-relocation-in-phi-nodes.ll index a38651a5a1e4e..392e1f04cbdab 100644 --- a/llvm/test/SafepointIRVerifier/from-same-relocation-in-phi-nodes.ll +++ b/llvm/test/SafepointIRVerifier/from-same-relocation-in-phi-nodes.ll @@ -3,11 +3,11 @@ ; In %merge %val.unrelocated, %ptr and %arg should be unrelocated. ; FIXME: if this test fails it is a false-positive alarm. IR is correct. -define void @test.unrelocated-phi.ok(ptr addrspace(1) %arg) gc "statepoint-example" { +define void @test.unrelocated-phi.ok(ptr addrspace(1) %arg, i1 %new_arg) gc "statepoint-example" { ; CHECK-LABEL: Verifying gc pointers in function: test.unrelocated-phi.ok bci_0: %ptr = getelementptr i8, ptr addrspace(1) %arg, i64 4 - br i1 undef, label %left, label %right + br i1 %new_arg, label %left, label %right left: %safepoint_token = call token (i64, i32, ptr, i32, i32, ...) @llvm.experimental.gc.statepoint.p0(i64 0, i32 0, ptr undef, i32 0, i32 0, i32 0, i32 5, i32 0, i32 -1, i32 0, i32 0, i32 0) diff --git a/llvm/test/SafepointIRVerifier/unrecorded-live-at-sp.ll b/llvm/test/SafepointIRVerifier/unrecorded-live-at-sp.ll index b64851e76b716..42130c507fd09 100644 --- a/llvm/test/SafepointIRVerifier/unrecorded-live-at-sp.ll +++ b/llvm/test/SafepointIRVerifier/unrecorded-live-at-sp.ll @@ -14,7 +14,7 @@ declare ptr addrspace(1) @generate_obj2() #1 declare ptr addrspace(1) @generate_obj3() #1 ; Function Attrs: nounwind -define void @test(ptr addrspace(1), ptr addrspace(1), i32) #3 gc "statepoint-example" { +define void @test(ptr addrspace(1), ptr addrspace(1), i32, i1 %new_arg) #3 gc "statepoint-example" { bci_0: %result608 = call ptr addrspace(1) @generate_obj3() br label %bci_37-aload @@ -24,7 +24,7 @@ bci_37-aload: ; preds = %not_zero179, %bci_0 %base_phi2 = phi ptr addrspace(1) [ %base_phi3, %not_zero179 ], [ %result608, %bci_0 ], !is_base_value !0 %relocated8 = phi ptr addrspace(1) [ %relocated7.relocated, %not_zero179 ], [ %result608, %bci_0 ] %tmp3 = getelementptr inbounds %jObject, ptr addrspace(1) %relocated8, i64 0, i32 0, i64 32 - br i1 undef, label %not_zero179, label %not_zero146 + br i1 %new_arg, label %not_zero179, label %not_zero146 not_zero146: ; preds = %bci_37-aload %addr98.relocated = call ptr addrspace(1) @generate_obj2() #1 diff --git a/llvm/test/SafepointIRVerifier/uses-in-phi-nodes.ll b/llvm/test/SafepointIRVerifier/uses-in-phi-nodes.ll index 2311d2d53c0ef..e75428bec23f7 100644 --- a/llvm/test/SafepointIRVerifier/uses-in-phi-nodes.ll +++ b/llvm/test/SafepointIRVerifier/uses-in-phi-nodes.ll @@ -1,9 +1,9 @@ ; RUN: opt -safepoint-ir-verifier-print-only -verify-safepoint-ir -S %s 2>&1 | FileCheck %s -define ptr addrspace(1) @test.not.ok.0(ptr addrspace(1) %arg) gc "statepoint-example" { +define ptr addrspace(1) @test.not.ok.0(ptr addrspace(1) %arg, i1 %new_arg) gc "statepoint-example" { ; CHECK-LABEL: Verifying gc pointers in function: test.not.ok.0 bci_0: - br i1 undef, label %left, label %right + br i1 %new_arg, label %left, label %right left: %safepoint_token = call token (i64, i32, ptr, i32, i32, ...) @llvm.experimental.gc.statepoint.p0(i64 0, i32 0, ptr elementtype(void ()) undef, i32 0, i32 0, i32 0, i32 0) @@ -20,10 +20,10 @@ define ptr addrspace(1) @test.not.ok.0(ptr addrspace(1) %arg) gc "statepoint-exa ret ptr addrspace(1) %val } -define ptr addrspace(1) @test.not.ok.1(ptr addrspace(1) %arg) gc "statepoint-example" { +define ptr addrspace(1) @test.not.ok.1(ptr addrspace(1) %arg, i1 %new_arg) gc "statepoint-example" { ; CHECK-LABEL: Verifying gc pointers in function: test.not.ok.1 bci_0: - br i1 undef, label %left, label %right + br i1 %new_arg, label %left, label %right left: %safepoint_token = call token (i64, i32, ptr, i32, i32, ...) @llvm.experimental.gc.statepoint.p0(i64 0, i32 0, ptr elementtype(void ()) undef, i32 0, i32 0, i32 0, i32 0) @@ -40,10 +40,10 @@ define ptr addrspace(1) @test.not.ok.1(ptr addrspace(1) %arg) gc "statepoint-exa ret ptr addrspace(1) %val } -define ptr addrspace(1) @test.ok.0(ptr addrspace(1) %arg) gc "statepoint-example" { +define ptr addrspace(1) @test.ok.0(ptr addrspace(1) %arg, i1 %new_arg) gc "statepoint-example" { ; CHECK: No illegal uses found by SafepointIRVerifier in: test.ok.0 bci_0: - br i1 undef, label %left, label %right + br i1 %new_arg, label %left, label %right left: %safepoint_token = call token (i64, i32, ptr, i32, i32, ...) @llvm.experimental.gc.statepoint.p0(i64 0, i32 0, ptr elementtype(void ()) undef, i32 0, i32 0, i32 0, i32 0) @@ -57,10 +57,10 @@ define ptr addrspace(1) @test.ok.0(ptr addrspace(1) %arg) gc "statepoint-example ret ptr addrspace(1) %val } -define ptr addrspace(1) @test.ok.1(ptr addrspace(1) %arg) gc "statepoint-example" { +define ptr addrspace(1) @test.ok.1(ptr addrspace(1) %arg, i1 %new_arg) gc "statepoint-example" { ; CHECK: No illegal uses found by SafepointIRVerifier in: test.ok.1 bci_0: - br i1 undef, label %left, label %right + br i1 %new_arg, label %left, label %right left: call void @not_statepoint() @@ -75,10 +75,10 @@ define ptr addrspace(1) @test.ok.1(ptr addrspace(1) %arg) gc "statepoint-example } ; It should be allowed to compare poisoned ptr with null. -define void @test.poisoned.cmp.ok(ptr addrspace(1) %arg) gc "statepoint-example" { +define void @test.poisoned.cmp.ok(ptr addrspace(1) %arg, i1 %new_arg) gc "statepoint-example" { ; CHECK-LABEL: Verifying gc pointers in function: test.poisoned.cmp.ok bci_0: - br i1 undef, label %left, label %right + br i1 %new_arg, label %left, label %right left: %safepoint_token = call token (i64, i32, ptr, i32, i32, ...) @llvm.experimental.gc.statepoint.p0(i64 0, i32 0, ptr elementtype(void ()) undef, i32 0, i32 0, i32 0, i32 0) ["gc-live"(ptr addrspace(1) %arg)] @@ -97,10 +97,10 @@ define void @test.poisoned.cmp.ok(ptr addrspace(1) %arg) gc "statepoint-example" } ; It is illegal to compare poisoned ptr and relocated. -define void @test.poisoned.cmp.fail.0(ptr addrspace(1) %arg) gc "statepoint-example" { +define void @test.poisoned.cmp.fail.0(ptr addrspace(1) %arg, i1 %new_arg) gc "statepoint-example" { ; CHECK-LABEL: Verifying gc pointers in function: test.poisoned.cmp.fail.0 bci_0: - br i1 undef, label %left, label %right + br i1 %new_arg, label %left, label %right left: %safepoint_token = call token (i64, i32, ptr, i32, i32, ...) @llvm.experimental.gc.statepoint.p0(i64 0, i32 0, ptr elementtype(void ()) undef, i32 0, i32 0, i32 0, i32 0) ["gc-live"(ptr addrspace(1) %arg)] @@ -123,10 +123,10 @@ define void @test.poisoned.cmp.fail.0(ptr addrspace(1) %arg) gc "statepoint-exam } ; It is illegal to compare poisoned ptr and unrelocated. -define void @test.poisoned.cmp.fail.1(ptr addrspace(1) %arg) gc "statepoint-example" { +define void @test.poisoned.cmp.fail.1(ptr addrspace(1) %arg, i1 %new_arg) gc "statepoint-example" { ; CHECK-LABEL: Verifying gc pointers in function: test.poisoned.cmp.fail.1 bci_0: - br i1 undef, label %left, label %right + br i1 %new_arg, label %left, label %right left: %safepoint_token = call token (i64, i32, ptr, i32, i32, ...) @llvm.experimental.gc.statepoint.p0(i64 0, i32 0, ptr elementtype(void ()) undef, i32 0, i32 0, i32 0, i32 0) ["gc-live"(ptr addrspace(1) %arg)] @@ -148,10 +148,10 @@ define void @test.poisoned.cmp.fail.1(ptr addrspace(1) %arg) gc "statepoint-exam } ; It should be allowed to compare unrelocated phi with unrelocated value. -define void @test.unrelocated-phi.cmp.ok(ptr addrspace(1) %arg) gc "statepoint-example" { +define void @test.unrelocated-phi.cmp.ok(ptr addrspace(1) %arg, i1 %new_arg) gc "statepoint-example" { ; CHECK-LABEL: Verifying gc pointers in function: test.unrelocated-phi.cmp.ok bci_0: - br i1 undef, label %left, label %right + br i1 %new_arg, label %left, label %right left: %safepoint_token = call token (i64, i32, ptr, i32, i32, ...) @llvm.experimental.gc.statepoint.p0(i64 0, i32 0, ptr elementtype(void ()) undef, i32 0, i32 0, i32 0, i32 0) diff --git a/llvm/test/Verifier/tbaa-cyclic.ll b/llvm/test/Verifier/tbaa-cyclic.ll index 134fd7c4648cc..76f7bb6062f9c 100644 --- a/llvm/test/Verifier/tbaa-cyclic.ll +++ b/llvm/test/Verifier/tbaa-cyclic.ll @@ -1,13 +1,13 @@ ; RUN: not llvm-as -disable-output < %s 2>&1 | FileCheck %s ; CHECK: Access type node must be a valid scalar type -define void @test6(ptr %gi) #0 { +define void @test6(ptr %gi, i1 %arg) #0 { entry: store i32 42, ptr %gi, align 4, !tbaa !0 br label %for.cond for.cond: ; preds = %for.body, %entry - br i1 undef, label %for.body, label %for.end + br i1 %arg, label %for.body, label %for.end for.body: ; preds = %for.cond store i32 undef, ptr %gi, align 4, !tbaa !2 diff --git a/llvm/test/tools/llvm-reduce/operands-skip.ll b/llvm/test/tools/llvm-reduce/operands-skip.ll index 505f1d7e36906..ba5bcf4420181 100644 --- a/llvm/test/tools/llvm-reduce/operands-skip.ll +++ b/llvm/test/tools/llvm-reduce/operands-skip.ll @@ -27,10 +27,10 @@ @Global = global i32 42 -define void @func(ptr %arg1, ptr %arg2) { +define void @func(ptr %arg1, ptr %arg2, i1 %arg) { entry: %val = getelementptr i32, ptr getelementptr (i32, ptr @Global, i32 1), i32 2 - br i1 undef, label %branch, label %loop + br i1 %arg, label %branch, label %loop branch: %nondominating1 = getelementptr i32, ptr %val, i32 3 @@ -50,7 +50,7 @@ loop: store i32 49, ptr %imm, align 4 ; Reduce to null %nondominating2 = getelementptr i32, ptr %indirect, i32 6 - br i1 undef, label %loop, label %exit + br i1 %arg, label %loop, label %exit exit: store i32 50, ptr %arg2, align 4 ; Reduce to %arg1 (compactify function arguments)