@@ -523,20 +523,20 @@ declare void @cold() cold
523523
524524; If loop has single exit and it leads to 'cold' block then edge leading to loop enter
525525; should be considered 'cold' as well.
526- define void @test13 () {
526+ define void @test13 (i1 %arg ) {
527527; CHECK: edge %entry -> %loop probability is 0x078780e3 / 0x80000000 = 5.88%
528528; CHECK: edge %entry -> %exit probability is 0x78787f1d / 0x80000000 = 94.12% [HOT edge]
529529; CHECK: edge %loop -> %loop probability is 0x7fbe1203 / 0x80000000 = 99.80% [HOT edge]
530530; CHECK: edge %loop -> %cold probability is 0x0041edfd / 0x80000000 = 0.20%
531531; CHECK: edge %cold -> %exit probability is 0x80000000 / 0x80000000 = 100.00% [HOT edge]
532532
533533entry:
534- br i1 undef , label %loop , label %exit
534+ br i1 %arg , label %loop , label %exit
535535
536536loop:
537537 %i.0 = phi i32 [ 0 , %entry ], [ %inc , %loop ]
538538 %inc = add nsw i32 %i.0 , 1
539- br i1 undef , label %loop , label %cold
539+ br i1 %arg , label %loop , label %cold
540540
541541cold:
542542 call void @cold ()
@@ -547,7 +547,7 @@ exit:
547547}
548548
549549; This is the same case as test13 but with additional loop 'preheader' block.
550- define void @test14 () {
550+ define void @test14 (i1 %arg ) {
551551; CHECK: edge %entry -> %preheader probability is 0x078780e3 / 0x80000000 = 5.88%
552552; CHECK: edge %entry -> %exit probability is 0x78787f1d / 0x80000000 = 94.12% [HOT edge]
553553; CHECK: edge %preheader -> %loop probability is 0x80000000 / 0x80000000 = 100.00% [HOT edge]
@@ -556,15 +556,15 @@ define void @test14() {
556556; CHECK: edge %cold -> %exit probability is 0x80000000 / 0x80000000 = 100.00% [HOT edge]
557557
558558entry:
559- br i1 undef , label %preheader , label %exit
559+ br i1 %arg , label %preheader , label %exit
560560
561561preheader:
562562 br label %loop
563563
564564loop:
565565 %i.0 = phi i32 [ 0 , %preheader ], [ %inc , %loop ]
566566 %inc = add nsw i32 %i.0 , 1
567- br i1 undef , label %loop , label %cold
567+ br i1 %arg , label %loop , label %cold
568568
569569cold:
570570 call void @cold ()
@@ -576,7 +576,7 @@ exit:
576576
577577; If loop has multiple low probability exits then edge leading to loop enter
578578; should be considered low probable as well.
579- define void @test15 () {
579+ define void @test15 (i1 %arg ) {
580580; CHECK: edge %entry -> %loop probability is 0x078780e3 / 0x80000000 = 5.88%
581581; CHECK: edge %entry -> %exit probability is 0x78787f1d / 0x80000000 = 94.12% [HOT edge]
582582; CHECK: edge %loop -> %cont probability is 0x80000000 / 0x80000000 = 100.00% [HOT edge]
@@ -586,15 +586,15 @@ define void @test15() {
586586; CHECK: edge %cold -> %exit probability is 0x80000000 / 0x80000000 = 100.00% [HOT edge]
587587
588588entry:
589- br i1 undef , label %loop , label %exit
589+ br i1 %arg , label %loop , label %exit
590590
591591loop:
592592 %i.0 = phi i32 [ 0 , %entry ], [ %inc , %cont ]
593593 %inc = add nsw i32 %i.0 , 1
594- br i1 undef , label %cont , label %unreached
594+ br i1 %arg , label %cont , label %unreached
595595
596596cont:
597- br i1 undef , label %loop , label %cold
597+ br i1 %arg , label %loop , label %cold
598598
599599unreached:
600600 unreachable
@@ -609,7 +609,7 @@ exit:
609609}
610610
611611; This is the same case as test15 but with additional loop 'preheader' block.
612- define void @test16 () {
612+ define void @test16 (i1 %arg ) {
613613; CHECK: edge %entry -> %preheader probability is 0x80000000 / 0x80000000 = 100.00% [HOT edge]
614614; CHECK: edge %preheader -> %loop probability is 0x078780e3 / 0x80000000 = 5.88%
615615; CHECK: edge %preheader -> %exit probability is 0x78787f1d / 0x80000000 = 94.12% [HOT edge]
@@ -623,15 +623,15 @@ entry:
623623 br label %preheader
624624
625625preheader:
626- br i1 undef , label %loop , label %exit
626+ br i1 %arg , label %loop , label %exit
627627
628628loop:
629629 %i.0 = phi i32 [ 0 , %preheader ], [ %inc , %cont ]
630630 %inc = add nsw i32 %i.0 , 1
631- br i1 undef , label %cont , label %unreached
631+ br i1 %arg , label %cont , label %unreached
632632
633633cont:
634- br i1 undef , label %loop , label %cold
634+ br i1 %arg , label %loop , label %cold
635635
636636unreached:
637637 unreachable
@@ -649,7 +649,7 @@ declare void @abort() noreturn
649649
650650; Check that 'preheader' has 50/50 probability since there is one 'normal' exit.
651651; Check that exit to 'cold' and 'noreturn' has lower probability than 'normal' exit.
652- define void @test17 () {
652+ define void @test17 (i1 %arg ) {
653653; CHECK: edge %entry -> %preheader probability is 0x80000000 / 0x80000000 = 100.00% [HOT edge]
654654; CHECK: edge %preheader -> %loop probability is 0x40000000 / 0x80000000 = 50.00%
655655; CHECK: edge %preheader -> %exit probability is 0x40000000 / 0x80000000 = 50.00%
@@ -664,18 +664,18 @@ entry:
664664 br label %preheader
665665
666666preheader:
667- br i1 undef , label %loop , label %exit
667+ br i1 %arg , label %loop , label %exit
668668
669669loop:
670670 %i.0 = phi i32 [ 0 , %preheader ], [ %inc , %cont2 ]
671671 %inc = add nsw i32 %i.0 , 1
672- br i1 undef , label %cont , label %noreturn
672+ br i1 %arg , label %cont , label %noreturn
673673
674674cont:
675- br i1 undef , label %cont2 , label %cold
675+ br i1 %arg , label %cont2 , label %cold
676676
677677cont2:
678- br i1 undef , label %loop , label %exit
678+ br i1 %arg , label %loop , label %exit
679679
680680noreturn:
681681 call void @abort ()
@@ -692,7 +692,7 @@ exit:
692692
693693; This is case with two loops where one nested into another. Nested loop has
694694; low probable exit what encreases robability to take exit in the top level loop.
695- define void @test18 () {
695+ define void @test18 (i1 %arg ) {
696696; CHECK: edge %entry -> %top.loop probability is 0x80000000 / 0x80000000 = 100.00% [HOT edge]
697697; CHECK: edge %top.loop -> %loop probability is 0x546cd4b7 / 0x80000000 = 65.96%
698698; CHECK: edge %top.loop -> %exit probability is 0x2b932b49 / 0x80000000 = 34.04%
@@ -705,12 +705,12 @@ entry:
705705
706706top.loop:
707707 %j.0 = phi i32 [ 0 , %entry ], [ %j.inc , %cold ]
708- br i1 undef , label %loop , label %exit
708+ br i1 %arg , label %loop , label %exit
709709
710710loop:
711711 %i.0 = phi i32 [ %j.0 , %top.loop ], [ %inc , %loop ]
712712 %inc = add nsw i32 %i.0 , 1
713- br i1 undef , label %loop , label %cold
713+ br i1 %arg , label %loop , label %cold
714714
715715cold:
716716 call void @cold ()
0 commit comments