Skip to content

Commit 8b5b294

Browse files
committed
[SCEV] Print predicate backedge count only if new information available
When printing the result of SCEV's analysis, we can avoid printing the predicated backedge taken count and the predicates if the predicates are empty and no new information is provided. This helps to reduce the verbosity of the output.
1 parent 2542d34 commit 8b5b294

File tree

97 files changed

+12
-1110
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

97 files changed

+12
-1110
lines changed

llvm/lib/Analysis/ScalarEvolution.cpp

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -13484,8 +13484,9 @@ static void PrintLoopInfo(raw_ostream &OS, ScalarEvolution *SE,
1348413484
if (ExitingBlocks.size() != 1)
1348513485
OS << "<multiple exits> ";
1348613486

13487-
if (SE->hasLoopInvariantBackedgeTakenCount(L))
13488-
OS << "backedge-taken count is " << *SE->getBackedgeTakenCount(L) << "\n";
13487+
auto *BTC = SE->getBackedgeTakenCount(L);
13488+
if (!isa<SCEVCouldNotCompute>(BTC))
13489+
OS << "backedge-taken count is " << *BTC << "\n";
1348913490
else
1349013491
OS << "Unpredictable backedge-taken count.\n";
1349113492

@@ -13531,19 +13532,19 @@ static void PrintLoopInfo(raw_ostream &OS, ScalarEvolution *SE,
1353113532
<< "\n";
1353213533
}
1353313534

13534-
OS << "Loop ";
13535-
L->getHeader()->printAsOperand(OS, /*PrintType=*/false);
13536-
OS << ": ";
13537-
1353813535
SmallVector<const SCEVPredicate *, 4> Preds;
13539-
auto PBT = SE->getPredicatedBackedgeTakenCount(L, Preds);
13540-
if (!isa<SCEVCouldNotCompute>(PBT)) {
13541-
OS << "Predicated backedge-taken count is " << *PBT << "\n";
13536+
auto *PBT = SE->getPredicatedBackedgeTakenCount(L, Preds);
13537+
if (PBT != BTC || !Preds.empty()) {
13538+
OS << "Loop ";
13539+
L->getHeader()->printAsOperand(OS, /*PrintType=*/false);
13540+
OS << ": ";
13541+
if (!isa<SCEVCouldNotCompute>(PBT))
13542+
OS << "Predicated backedge-taken count is " << *PBT << "\n";
13543+
else
13544+
OS << "Unpredictable predicated backedge-taken count.\n";
1354213545
OS << " Predicates:\n";
1354313546
for (const auto *P : Preds)
1354413547
P->print(OS, 4);
13545-
} else {
13546-
OS << "Unpredictable predicated backedge-taken count.\n";
1354713548
}
1354813549

1354913550
if (SE->hasLoopInvariantBackedgeTakenCount(L)) {

llvm/test/Analysis/ScalarEvolution/2008-11-18-Stride1.ll

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,6 @@ define i32 @f(i32 %x) nounwind readnone {
1313
; CHECK-NEXT: Loop %bb: backedge-taken count is ((-5 + %x) /u 3)
1414
; CHECK-NEXT: Loop %bb: constant max backedge-taken count is i32 1431655764
1515
; CHECK-NEXT: Loop %bb: symbolic max backedge-taken count is ((-5 + %x) /u 3)
16-
; CHECK-NEXT: Loop %bb: Predicated backedge-taken count is ((-5 + %x) /u 3)
17-
; CHECK-NEXT: Predicates:
1816
; CHECK-NEXT: Loop %bb: Trip multiple is 1
1917
;
2018
entry:

llvm/test/Analysis/ScalarEvolution/2008-11-18-Stride2.ll

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,6 @@ define i32 @f(i32 %x) nounwind readnone {
1111
; CHECK-NEXT: Loop %bb: backedge-taken count is (((-3 + (-1 * (1 umin (-3 + (-1 * %x) + (1000 umax (3 + %x)))))<nuw><nsw> + (-1 * %x) + (1000 umax (3 + %x))) /u 3) + (1 umin (-3 + (-1 * %x) + (1000 umax (3 + %x)))))
1212
; CHECK-NEXT: Loop %bb: constant max backedge-taken count is i32 334
1313
; CHECK-NEXT: Loop %bb: symbolic max backedge-taken count is (((-3 + (-1 * (1 umin (-3 + (-1 * %x) + (1000 umax (3 + %x)))))<nuw><nsw> + (-1 * %x) + (1000 umax (3 + %x))) /u 3) + (1 umin (-3 + (-1 * %x) + (1000 umax (3 + %x)))))
14-
; CHECK-NEXT: Loop %bb: Predicated backedge-taken count is (((-3 + (-1 * (1 umin (-3 + (-1 * %x) + (1000 umax (3 + %x)))))<nuw><nsw> + (-1 * %x) + (1000 umax (3 + %x))) /u 3) + (1 umin (-3 + (-1 * %x) + (1000 umax (3 + %x)))))
15-
; CHECK-NEXT: Predicates:
1614
; CHECK-NEXT: Loop %bb: Trip multiple is 1
1715
;
1816
entry:

llvm/test/Analysis/ScalarEvolution/ZeroStep.ll

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ define void @foo() {
1616
; CHECK-NEXT: Loop %loop: <multiple exits> Unpredictable backedge-taken count.
1717
; CHECK-NEXT: Loop %loop: Unpredictable constant max backedge-taken count.
1818
; CHECK-NEXT: Loop %loop: Unpredictable symbolic max backedge-taken count.
19-
; CHECK-NEXT: Loop %loop: Unpredictable predicated backedge-taken count.
2019
;
2120
entry:
2221
br label %loop

llvm/test/Analysis/ScalarEvolution/add-expr-pointer-operand-sorting.ll

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,6 @@ define i32 @d(i32 %base) {
4949
; CHECK-NEXT: Loop %for.cond: <multiple exits> Unpredictable backedge-taken count.
5050
; CHECK-NEXT: Loop %for.cond: Unpredictable constant max backedge-taken count.
5151
; CHECK-NEXT: Loop %for.cond: Unpredictable symbolic max backedge-taken count.
52-
; CHECK-NEXT: Loop %for.cond: Unpredictable predicated backedge-taken count.
5352
;
5453
entry:
5554
%e = alloca [1 x [1 x i8]], align 1

llvm/test/Analysis/ScalarEvolution/add-like-or.ll

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,6 @@ define void @mask-high(i64 %arg, ptr dereferenceable(4) %arg1) {
6868
; CHECK-NEXT: Loop %bb6: backedge-taken count is (-1 + (-16 * (%arg /u 16)) + ((sext i32 %i to i64) smax (1 + (16 * (%arg /u 16))<nuw>)<nuw><nsw>))
6969
; CHECK-NEXT: Loop %bb6: constant max backedge-taken count is i64 -9223372034707292162
7070
; CHECK-NEXT: Loop %bb6: symbolic max backedge-taken count is (-1 + (-16 * (%arg /u 16)) + ((sext i32 %i to i64) smax (1 + (16 * (%arg /u 16))<nuw>)<nuw><nsw>))
71-
; CHECK-NEXT: Loop %bb6: Predicated backedge-taken count is (-1 + (-16 * (%arg /u 16)) + ((sext i32 %i to i64) smax (1 + (16 * (%arg /u 16))<nuw>)<nuw><nsw>))
72-
; CHECK-NEXT: Predicates:
7371
; CHECK-NEXT: Loop %bb6: Trip multiple is 1
7472
;
7573
bb:

llvm/test/Analysis/ScalarEvolution/addrec-computed-during-addrec-calculation.ll

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,17 +29,13 @@ define void @test(ptr %p) {
2929
; CHECK-NEXT: Loop %loop2: Unpredictable backedge-taken count.
3030
; CHECK-NEXT: Loop %loop2: constant max backedge-taken count is i32 -1
3131
; CHECK-NEXT: Loop %loop2: symbolic max backedge-taken count is -1
32-
; CHECK-NEXT: Loop %loop2: Unpredictable predicated backedge-taken count.
3332
; CHECK-NEXT: Loop %loop3: backedge-taken count is false
3433
; CHECK-NEXT: Loop %loop3: constant max backedge-taken count is i1 false
3534
; CHECK-NEXT: Loop %loop3: symbolic max backedge-taken count is false
36-
; CHECK-NEXT: Loop %loop3: Predicated backedge-taken count is false
37-
; CHECK-NEXT: Predicates:
3835
; CHECK-NEXT: Loop %loop3: Trip multiple is 1
3936
; CHECK-NEXT: Loop %loop.header: <multiple exits> Unpredictable backedge-taken count.
4037
; CHECK-NEXT: Loop %loop.header: Unpredictable constant max backedge-taken count.
4138
; CHECK-NEXT: Loop %loop.header: Unpredictable symbolic max backedge-taken count.
42-
; CHECK-NEXT: Loop %loop.header: Unpredictable predicated backedge-taken count.
4339
;
4440
entry:
4541
br label %loop.header

llvm/test/Analysis/ScalarEvolution/addrec-sub-nsw.ll

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,6 @@ define i32 @test_1_non_negative(i32 %n) {
1414
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + (1 smax %n))<nsw>
1515
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 2147483646
1616
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is (-1 + (1 smax %n))<nsw>
17-
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + (1 smax %n))<nsw>
18-
; CHECK-NEXT: Predicates:
1917
; CHECK-NEXT: Loop %loop: Trip multiple is 1
2018
;
2119
entry:
@@ -53,8 +51,6 @@ define i32 @test_2_non_positive(i32 %n) {
5351
; CHECK-NEXT: Loop %loop: backedge-taken count is (-1 + (1 smax %n))<nsw>
5452
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i32 2147483646
5553
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is (-1 + (1 smax %n))<nsw>
56-
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + (1 smax %n))<nsw>
57-
; CHECK-NEXT: Predicates:
5854
; CHECK-NEXT: Loop %loop: Trip multiple is 1
5955
;
6056
entry:

llvm/test/Analysis/ScalarEvolution/alloca.ll

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,6 @@ define void @alloca_icmp_null_exit_count() {
4646
; CHECK-NEXT: Loop %loop: backedge-taken count is 2
4747
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 2
4848
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is 2
49-
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is 2
50-
; CHECK-NEXT: Predicates:
5149
; CHECK-NEXT: Loop %loop: Trip multiple is 3
5250
;
5351
entry:

llvm/test/Analysis/ScalarEvolution/backedge-taken-count-guard-info.ll

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,6 @@ define void @loop_guard_improves_exact_backedge_taken_count_1(i32 %conv) {
1616
; CHECK-NEXT: Loop %loop: backedge-taken count is 0
1717
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 0
1818
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is 0
19-
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is 0
20-
; CHECK-NEXT: Predicates:
2119
; CHECK-NEXT: Loop %loop: Trip multiple is 1
2220
;
2321
entry:
@@ -52,8 +50,6 @@ define void @loop_guard_improves_exact_backedge_taken_count_2(i32 %conv) {
5250
; CHECK-NEXT: Loop %loop: backedge-taken count is (zext i1 (trunc i32 %conv to i1) to i64)
5351
; CHECK-NEXT: Loop %loop: constant max backedge-taken count is i64 1
5452
; CHECK-NEXT: Loop %loop: symbolic max backedge-taken count is (zext i1 (trunc i32 %conv to i1) to i64)
55-
; CHECK-NEXT: Loop %loop: Predicated backedge-taken count is (zext i1 (trunc i32 %conv to i1) to i64)
56-
; CHECK-NEXT: Predicates:
5753
; CHECK-NEXT: Loop %loop: Trip multiple is 2
5854
;
5955
entry:

llvm/test/Analysis/ScalarEvolution/becount-invalidation.ll

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,9 @@ define void @test(ptr %arg) {
3434
; CHECK-NEXT: Loop %loop2.header: symbolic max backedge-taken count is false
3535
; CHECK-NEXT: symbolic max exit count for loop2.header: ***COULDNOTCOMPUTE***
3636
; CHECK-NEXT: symbolic max exit count for loop2.latch: false
37-
; CHECK-NEXT: Loop %loop2.header: Unpredictable predicated backedge-taken count.
3837
; CHECK-NEXT: Loop %loop.header: Unpredictable backedge-taken count.
3938
; CHECK-NEXT: Loop %loop.header: Unpredictable constant max backedge-taken count.
4039
; CHECK-NEXT: Loop %loop.header: Unpredictable symbolic max backedge-taken count.
41-
; CHECK-NEXT: Loop %loop.header: Unpredictable predicated backedge-taken count.
4240
;
4341
entry:
4442
br label %loop.header

llvm/test/Analysis/ScalarEvolution/cycled_phis.ll

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ define void @test_01() {
1717
; CHECK-NEXT: Loop %loop: Unpredictable backedge-taken count.
1818
; CHECK-NEXT: Loop %loop: Unpredictable constant max backedge-taken count.
1919
; CHECK-NEXT: Loop %loop: Unpredictable symbolic max backedge-taken count.
20-
; CHECK-NEXT: Loop %loop: Unpredictable predicated backedge-taken count.
2120
;
2221
entry:
2322
br label %loop
@@ -54,11 +53,9 @@ define void @test_02(ptr %p, ptr %q) {
5453
; CHECK-NEXT: Loop %inner_loop: Unpredictable backedge-taken count.
5554
; CHECK-NEXT: Loop %inner_loop: Unpredictable constant max backedge-taken count.
5655
; CHECK-NEXT: Loop %inner_loop: Unpredictable symbolic max backedge-taken count.
57-
; CHECK-NEXT: Loop %inner_loop: Unpredictable predicated backedge-taken count.
5856
; CHECK-NEXT: Loop %outer_loop: Unpredictable backedge-taken count.
5957
; CHECK-NEXT: Loop %outer_loop: Unpredictable constant max backedge-taken count.
6058
; CHECK-NEXT: Loop %outer_loop: Unpredictable symbolic max backedge-taken count.
61-
; CHECK-NEXT: Loop %outer_loop: Unpredictable predicated backedge-taken count.
6259
;
6360
entry:
6461
%start = load i32, ptr %p, !range !0
@@ -107,11 +104,9 @@ define void @test_03(ptr %p, ptr %q) {
107104
; CHECK-NEXT: Loop %inner_loop: Unpredictable backedge-taken count.
108105
; CHECK-NEXT: Loop %inner_loop: Unpredictable constant max backedge-taken count.
109106
; CHECK-NEXT: Loop %inner_loop: Unpredictable symbolic max backedge-taken count.
110-
; CHECK-NEXT: Loop %inner_loop: Unpredictable predicated backedge-taken count.
111107
; CHECK-NEXT: Loop %outer_loop: Unpredictable backedge-taken count.
112108
; CHECK-NEXT: Loop %outer_loop: Unpredictable constant max backedge-taken count.
113109
; CHECK-NEXT: Loop %outer_loop: Unpredictable symbolic max backedge-taken count.
114-
; CHECK-NEXT: Loop %outer_loop: Unpredictable predicated backedge-taken count.
115110
;
116111
entry:
117112
%start_1 = load i32, ptr %p, !range !0

llvm/test/Analysis/ScalarEvolution/decrementing_addrecs.ll

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,6 @@ define i32 @test_step_1_flags(i32 %n) {
4949
; DEFAULT-NEXT: Loop %loop: backedge-taken count is (-1 + %n)
5050
; DEFAULT-NEXT: Loop %loop: constant max backedge-taken count is i32 2147483646
5151
; DEFAULT-NEXT: Loop %loop: symbolic max backedge-taken count is (-1 + %n)
52-
; DEFAULT-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + %n)
53-
; DEFAULT-NEXT: Predicates:
5452
; DEFAULT-NEXT: Loop %loop: Trip multiple is 1
5553
;
5654
; EXPENSIVE_SHARPENING-LABEL: 'test_step_1_flags'
@@ -75,8 +73,6 @@ define i32 @test_step_1_flags(i32 %n) {
7573
; EXPENSIVE_SHARPENING-NEXT: Loop %loop: backedge-taken count is (-1 + %n)
7674
; EXPENSIVE_SHARPENING-NEXT: Loop %loop: constant max backedge-taken count is i32 2147483646
7775
; EXPENSIVE_SHARPENING-NEXT: Loop %loop: symbolic max backedge-taken count is (-1 + %n)
78-
; EXPENSIVE_SHARPENING-NEXT: Loop %loop: Predicated backedge-taken count is (-1 + %n)
79-
; EXPENSIVE_SHARPENING-NEXT: Predicates:
8076
; EXPENSIVE_SHARPENING-NEXT: Loop %loop: Trip multiple is 1
8177
;
8278
entry:

llvm/test/Analysis/ScalarEvolution/exact-exit-count-more-precise.ll

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,10 @@ define void @test_and(i16 %in) {
1616
; CHECK-NEXT: Loop %bb1.i: backedge-taken count is (1 + (-1 * %in))
1717
; CHECK-NEXT: Loop %bb1.i: constant max backedge-taken count is i16 -1
1818
; CHECK-NEXT: Loop %bb1.i: symbolic max backedge-taken count is (1 + (-1 * %in))
19-
; CHECK-NEXT: Loop %bb1.i: Predicated backedge-taken count is (1 + (-1 * %in))
20-
; CHECK-NEXT: Predicates:
2119
; CHECK-NEXT: Loop %bb1.i: Trip multiple is 1
2220
; CHECK-NEXT: Loop %bb2: <multiple exits> Unpredictable backedge-taken count.
2321
; CHECK-NEXT: Loop %bb2: Unpredictable constant max backedge-taken count.
2422
; CHECK-NEXT: Loop %bb2: Unpredictable symbolic max backedge-taken count.
25-
; CHECK-NEXT: Loop %bb2: Unpredictable predicated backedge-taken count.
2623
;
2724
br label %bb2
2825

@@ -58,8 +55,6 @@ define void @test_or() {
5855
; CHECK-NEXT: Loop %BB: backedge-taken count is undef
5956
; CHECK-NEXT: Loop %BB: constant max backedge-taken count is i32 -1
6057
; CHECK-NEXT: Loop %BB: symbolic max backedge-taken count is undef
61-
; CHECK-NEXT: Loop %BB: Predicated backedge-taken count is undef
62-
; CHECK-NEXT: Predicates:
6358
; CHECK-NEXT: Loop %BB: Trip multiple is 1
6459
;
6560
%C10 = icmp slt i1 undef, undef

llvm/test/Analysis/ScalarEvolution/exhaustive-trip-counts.ll

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,6 @@ define void @f_0() {
1111
; CHECK-NEXT: Loop %for.body: backedge-taken count is 5
1212
; CHECK-NEXT: Loop %for.body: constant max backedge-taken count is i32 5
1313
; CHECK-NEXT: Loop %for.body: symbolic max backedge-taken count is 5
14-
; CHECK-NEXT: Loop %for.body: Predicated backedge-taken count is 5
15-
; CHECK-NEXT: Predicates:
1614
; CHECK-NEXT: Loop %for.body: Trip multiple is 6
1715
;
1816
entry:

0 commit comments

Comments
 (0)