[llvm] r268405 - [SCEV] Tweak the output format and content of -analyze
Sanjoy Das via llvm-commits
llvm-commits at lists.llvm.org
Tue May 3 10:49:58 PDT 2016
Author: sanjoy
Date: Tue May 3 12:49:57 2016
New Revision: 268405
URL: http://llvm.org/viewvc/llvm-project?rev=268405&view=rev
Log:
[SCEV] Tweak the output format and content of -analyze
In the "LoopDispositions:" section:
- Instead of printing out a list, print out a "dictionary" to make it
obvious by inspection which disposition is for which loop. This is
just a cosmetic change.
- Print dispositions for parent _and_ sibling loops. I will use this
to write a test case.
Modified:
llvm/trunk/lib/Analysis/ScalarEvolution.cpp
llvm/trunk/test/Analysis/ScalarEvolution/scev-dispositions.ll
Modified: llvm/trunk/lib/Analysis/ScalarEvolution.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Analysis/ScalarEvolution.cpp?rev=268405&r1=268404&r2=268405&view=diff
==============================================================================
--- llvm/trunk/lib/Analysis/ScalarEvolution.cpp (original)
+++ llvm/trunk/lib/Analysis/ScalarEvolution.cpp Tue May 3 12:49:57 2016
@@ -9628,16 +9628,31 @@ void ScalarEvolution::print(raw_ostream
bool First = true;
for (auto *Iter = L; Iter; Iter = Iter->getParentLoop()) {
if (First) {
- OS << "\t\t" "LoopDispositions: [ ";
+ OS << "\t\t" "LoopDispositions: { ";
First = false;
} else {
OS << ", ";
}
- OS << loopDispositionToStr(SE.getLoopDisposition(SV, Iter));
+ Iter->getHeader()->printAsOperand(OS, /*PrintType=*/false);
+ OS << ": " << loopDispositionToStr(SE.getLoopDisposition(SV, Iter));
}
- OS << " ]";
+ for (auto *InnerL : depth_first(L)) {
+ if (InnerL == L)
+ continue;
+ if (First) {
+ OS << "\t\t" "LoopDispositions: { ";
+ First = false;
+ } else {
+ OS << ", ";
+ }
+
+ InnerL->getHeader()->printAsOperand(OS, /*PrintType=*/false);
+ OS << ": " << loopDispositionToStr(SE.getLoopDisposition(SV, InnerL));
+ }
+
+ OS << " }";
}
OS << "\n";
Modified: llvm/trunk/test/Analysis/ScalarEvolution/scev-dispositions.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Analysis/ScalarEvolution/scev-dispositions.ll?rev=268405&r1=268404&r2=268405&view=diff
==============================================================================
--- llvm/trunk/test/Analysis/ScalarEvolution/scev-dispositions.ll (original)
+++ llvm/trunk/test/Analysis/ScalarEvolution/scev-dispositions.ll Tue May 3 12:49:57 2016
@@ -11,15 +11,15 @@ define void @single_loop(i32* %buf, i32
%idx = phi i32 [ %start, %entry ], [ %idx.inc, %loop ]
; CHECK: %counter = phi i32 [ 0, %entry ], [ %counter.inc, %loop ]
-; CHECK-NEXT: --> {{.*}} LoopDispositions: [ Computable ]
+; CHECK-NEXT: --> {{.*}} LoopDispositions: { %loop: Computable }
; CHECK: %idx = phi i32 [ %start, %entry ], [ %idx.inc, %loop ]
-; CHECK-NEXT: --> {{.*}} LoopDispositions: [ Computable ]
+; CHECK-NEXT: --> {{.*}} LoopDispositions: { %loop: Computable }
; CHECK: %val2 = add i32 %start, 400
-; CHECK-NEXT: --> {{.*}} LoopDispositions: [ Invariant ]
+; CHECK-NEXT: --> {{.*}} LoopDispositions: { %loop: Invariant }
; CHECK: %idx.inc = add nsw i32 %idx, 1
-; CHECK-NEXT: --> {{.*}} LoopDispositions: [ Computable ]
+; CHECK-NEXT: --> {{.*}} LoopDispositions: { %loop: Computable }
; CHECK: %val3 = load volatile i32, i32* %buf
-; CHECK-NEXT: --> {{.*}} LoopDispositions: [ Variant ]
+; CHECK-NEXT: --> {{.*}} LoopDispositions: { %loop: Variant }
%val2 = add i32 %start, 400
%idx.inc = add nsw i32 %idx, 1
@@ -38,15 +38,15 @@ define void @nested_loop(double* %p, i64
; CHECK-LABEL: Classifying expressions for: @nested_loop
; CHECK: %j = phi i64 [ 0, %entry ], [ %j.next, %outer.latch ]
-; CHECK-NEXT: --> {{.*}} LoopDispositions: [ Computable ]
+; CHECK-NEXT: --> {{.*}} LoopDispositions: { %outer.loop: Computable, %bb: Invariant }
; CHECK: %i = phi i64 [ 0, %outer.loop ], [ %i.next, %bb ]
-; CHECK-NEXT: --> {{.*}} LoopDispositions: [ Computable, Variant ]
+; CHECK-NEXT: --> {{.*}} LoopDispositions: { %bb: Computable, %outer.loop: Variant }
; CHECK: %j.add = add i64 %j, 100
-; CHECK-NEXT: --> {{.*}} LoopDispositions: [ Invariant, Computable ]
+; CHECK-NEXT: --> {{.*}} LoopDispositions: { %bb: Invariant, %outer.loop: Computable }
; CHECK: %i.next = add i64 %i, 1
-; CHECK-NEXT: --> {{.*}} LoopDispositions: [ Computable, Variant ]
+; CHECK-NEXT: --> {{.*}} LoopDispositions: { %bb: Computable, %outer.loop: Variant }
; CHECK: %j.next = add i64 %j, 91
-; CHECK-NEXT: --> {{.*}} LoopDispositions: [ Computable ]
+; CHECK-NEXT: --> {{.*}} LoopDispositions: { %outer.loop: Computable, %bb: Invariant }
entry:
%k = icmp sgt i64 %m, 0
More information about the llvm-commits
mailing list