diff options
-rw-r--r-- | lib/Analysis/DependenceAnalysis.cpp | 17 | ||||
-rw-r--r-- | test/Analysis/DependenceAnalysis/Banerjee.ll | 70 | ||||
-rw-r--r-- | test/Analysis/DependenceAnalysis/Coupled.ll | 96 | ||||
-rw-r--r-- | test/Analysis/DependenceAnalysis/ExactRDIV.ll | 70 | ||||
-rw-r--r-- | test/Analysis/DependenceAnalysis/ExactSIV.ll | 84 | ||||
-rw-r--r-- | test/Analysis/DependenceAnalysis/GCD.ll | 12 | ||||
-rw-r--r-- | test/Analysis/DependenceAnalysis/Preliminary.ll | 54 | ||||
-rw-r--r-- | test/Analysis/DependenceAnalysis/Propagating.ll | 54 | ||||
-rw-r--r-- | test/Analysis/DependenceAnalysis/Separability.ll | 8 | ||||
-rw-r--r-- | test/Analysis/DependenceAnalysis/StrongSIV.ll | 66 | ||||
-rw-r--r-- | test/Analysis/DependenceAnalysis/SymbolicRDIV.ll | 36 | ||||
-rw-r--r-- | test/Analysis/DependenceAnalysis/SymbolicSIV.ll | 54 | ||||
-rw-r--r-- | test/Analysis/DependenceAnalysis/WeakCrossingSIV.ll | 42 | ||||
-rw-r--r-- | test/Analysis/DependenceAnalysis/WeakZeroDstSIV.ll | 28 | ||||
-rw-r--r-- | test/Analysis/DependenceAnalysis/WeakZeroSrcSIV.ll | 28 | ||||
-rw-r--r-- | test/Analysis/DependenceAnalysis/ZIV.ll | 18 |
16 files changed, 376 insertions, 361 deletions
diff --git a/lib/Analysis/DependenceAnalysis.cpp b/lib/Analysis/DependenceAnalysis.cpp index 385e779a59..2068f1fb96 100644 --- a/lib/Analysis/DependenceAnalysis.cpp +++ b/lib/Analysis/DependenceAnalysis.cpp @@ -3563,8 +3563,10 @@ Dependence *DependenceAnalysis::depends(Instruction *Src, if (CompleteLoops[II]) Result.DV[II - 1].Scalar = false; - // make sure loopIndepent flag is set correctly if (PossiblyLoopIndependent) { + // Make sure the LoopIndependent flag is set correctly. + // All directions must include equal, otherwise no + // loop-independent dependence is possible. for (unsigned II = 1; II <= CommonLevels; ++II) { if (!(Result.getDirection(II) & Dependence::DVEntry::EQ)) { Result.LoopIndependent = false; @@ -3572,6 +3574,19 @@ Dependence *DependenceAnalysis::depends(Instruction *Src, } } } + else { + // On the other hand, if all directions are equal and there's no + // loop-independent dependence possible, then no dependence exists. + bool AllEqual = true; + for (unsigned II = 1; II <= CommonLevels; ++II) { + if (Result.getDirection(II) != Dependence::DVEntry::EQ) { + AllEqual = false; + break; + } + } + if (AllEqual) + return NULL; + } FullDependence *Final = new FullDependence(Result); Result.DV = NULL; diff --git a/test/Analysis/DependenceAnalysis/Banerjee.ll b/test/Analysis/DependenceAnalysis/Banerjee.ll index eb1a325b3c..003ee03ab0 100644 --- a/test/Analysis/DependenceAnalysis/Banerjee.ll +++ b/test/Analysis/DependenceAnalysis/Banerjee.ll @@ -14,12 +14,12 @@ define void @banerjee0(i64* %A, i64* %B, i64 %m, i64 %n) nounwind uwtable ssp { entry: br label %for.cond1.preheader -; CHECK: da analyze - output [= =]! +; CHECK: da analyze - none! ; CHECK: da analyze - flow [<= <>]! ; CHECK: da analyze - confused! -; CHECK: da analyze - input [= =]! +; CHECK: da analyze - none! ; CHECK: da analyze - confused! -; CHECK: da analyze - output [= =]! +; CHECK: da analyze - none! for.cond1.preheader: ; preds = %entry, %for.inc7 %B.addr.04 = phi i64* [ %B, %entry ], [ %scevgep, %for.inc7 ] @@ -131,12 +131,12 @@ define void @banerjee2(i64* %A, i64* %B, i64 %m, i64 %n) nounwind uwtable ssp { entry: br label %for.cond1.preheader -; CHECK: da analyze - output [= =]! +; CHECK: da analyze - none! ; CHECK: da analyze - none! ; CHECK: da analyze - confused! -; CHECK: da analyze - input [= =]! +; CHECK: da analyze - none! ; CHECK: da analyze - confused! -; CHECK: da analyze - output [= =]! +; CHECK: da analyze - none! for.cond1.preheader: ; preds = %entry, %for.inc8 %B.addr.04 = phi i64* [ %B, %entry ], [ %scevgep, %for.inc8 ] @@ -181,12 +181,12 @@ define void @banerjee3(i64* %A, i64* %B, i64 %m, i64 %n) nounwind uwtable ssp { entry: br label %for.cond1.preheader -; CHECK: da analyze - output [= =]! +; CHECK: da analyze - none! ; CHECK: da analyze - flow [> >]! ; CHECK: da analyze - confused! -; CHECK: da analyze - input [= =]! +; CHECK: da analyze - none! ; CHECK: da analyze - confused! -; CHECK: da analyze - output [= =]! +; CHECK: da analyze - none! for.cond1.preheader: ; preds = %entry, %for.inc8 %B.addr.04 = phi i64* [ %B, %entry ], [ %scevgep, %for.inc8 ] @@ -231,12 +231,12 @@ define void @banerjee4(i64* %A, i64* %B, i64 %m, i64 %n) nounwind uwtable ssp { entry: br label %for.cond1.preheader -; CHECK: da analyze - output [= =]! +; CHECK: da analyze - none! ; CHECK: da analyze - none! ; CHECK: da analyze - confused! -; CHECK: da analyze - input [= =]! +; CHECK: da analyze - none! ; CHECK: da analyze - confused! -; CHECK: da analyze - output [= =]! +; CHECK: da analyze - none! for.cond1.preheader: ; preds = %entry, %for.inc7 %B.addr.04 = phi i64* [ %B, %entry ], [ %scevgep, %for.inc7 ] @@ -281,12 +281,12 @@ define void @banerjee5(i64* %A, i64* %B, i64 %m, i64 %n) nounwind uwtable ssp { entry: br label %for.cond1.preheader -; CHECK: da analyze - output [= =]! +; CHECK: da analyze - none! ; CHECK: da analyze - flow [< <]! ; CHECK: da analyze - confused! -; CHECK: da analyze - input [= =]! +; CHECK: da analyze - none! ; CHECK: da analyze - confused! -; CHECK: da analyze - output [= =]! +; CHECK: da analyze - none! for.cond1.preheader: ; preds = %entry, %for.inc7 %B.addr.04 = phi i64* [ %B, %entry ], [ %scevgep, %for.inc7 ] @@ -331,12 +331,12 @@ define void @banerjee6(i64* %A, i64* %B, i64 %m, i64 %n) nounwind uwtable ssp { entry: br label %for.cond1.preheader -; CHECK: da analyze - output [= =]! +; CHECK: da analyze - none! ; CHECK: da analyze - flow [=> <>]! ; CHECK: da analyze - confused! -; CHECK: da analyze - input [= =]! +; CHECK: da analyze - none! ; CHECK: da analyze - confused! -; CHECK: da analyze - output [= =]! +; CHECK: da analyze - none! for.cond1.preheader: ; preds = %entry, %for.inc8 %B.addr.04 = phi i64* [ %B, %entry ], [ %scevgep, %for.inc8 ] @@ -381,12 +381,12 @@ define void @banerjee7(i64* %A, i64* %B, i64 %m, i64 %n) nounwind uwtable ssp { entry: br label %for.cond1.preheader -; CHECK: da analyze - output [= =]! +; CHECK: da analyze - none! ; CHECK: da analyze - flow [> <=]! ; CHECK: da analyze - confused! -; CHECK: da analyze - input [= =]! +; CHECK: da analyze - none! ; CHECK: da analyze - confused! -; CHECK: da analyze - output [= =]! +; CHECK: da analyze - none! for.cond1.preheader: ; preds = %entry, %for.inc8 %B.addr.04 = phi i64* [ %B, %entry ], [ %scevgep, %for.inc8 ] @@ -431,12 +431,12 @@ define void @banerjee8(i64* %A, i64* %B, i64 %m, i64 %n) nounwind uwtable ssp { entry: br label %for.cond1.preheader -; CHECK: da analyze - output [= =]! +; CHECK: da analyze - none! ; CHECK: da analyze - flow [> <>]! ; CHECK: da analyze - confused! -; CHECK: da analyze - input [= =]! +; CHECK: da analyze - none! ; CHECK: da analyze - confused! -; CHECK: da analyze - output [= =]! +; CHECK: da analyze - none! for.cond1.preheader: ; preds = %entry, %for.inc8 %B.addr.04 = phi i64* [ %B, %entry ], [ %scevgep, %for.inc8 ] @@ -484,9 +484,9 @@ entry: ; CHECK: da analyze - output [* *]! ; CHECK: da analyze - flow [<= =|<]! ; CHECK: da analyze - confused! -; CHECK: da analyze - input [= =]! +; CHECK: da analyze - none! ; CHECK: da analyze - confused! -; CHECK: da analyze - output [= =]! +; CHECK: da analyze - none! for.cond1.preheader: ; preds = %entry, %for.inc8 %B.addr.04 = phi i64* [ %B, %entry ], [ %scevgep, %for.inc8 ] @@ -532,12 +532,12 @@ define void @banerjee10(i64* %A, i64* %B, i64 %m, i64 %n) nounwind uwtable ssp { entry: br label %for.cond1.preheader -; CHECK: da analyze - output [= =]! +; CHECK: da analyze - none! ; CHECK: da analyze - flow [<> =]! ; CHECK: da analyze - confused! -; CHECK: da analyze - input [= =]! +; CHECK: da analyze - none! ; CHECK: da analyze - confused! -; CHECK: da analyze - output [= =]! +; CHECK: da analyze - none! for.cond1.preheader: ; preds = %entry, %for.inc7 %B.addr.04 = phi i64* [ %B, %entry ], [ %scevgep, %for.inc7 ] @@ -582,12 +582,12 @@ define void @banerjee11(i64* %A, i64* %B, i64 %m, i64 %n) nounwind uwtable ssp { entry: br label %for.cond1.preheader -; CHECK: da analyze - output [= =]! +; CHECK: da analyze - none! ; CHECK: da analyze - flow [<= <>]! ; CHECK: da analyze - confused! -; CHECK: da analyze - input [= =]! +; CHECK: da analyze - none! ; CHECK: da analyze - confused! -; CHECK: da analyze - output [= =]! +; CHECK: da analyze - none! for.cond1.preheader: ; preds = %entry, %for.inc7 %B.addr.04 = phi i64* [ %B, %entry ], [ %scevgep, %for.inc7 ] @@ -632,12 +632,12 @@ define void @banerjee12(i64* %A, i64* %B, i64 %m, i64 %n) nounwind uwtable ssp { entry: br label %for.cond1.preheader -; CHECK: da analyze - output [= =]! +; CHECK: da analyze - none! ; CHECK: da analyze - flow [= <>]! ; CHECK: da analyze - confused! -; CHECK: da analyze - input [= =]! +; CHECK: da analyze - none! ; CHECK: da analyze - confused! -; CHECK: da analyze - output [= =]! +; CHECK: da analyze - none! for.cond1.preheader: ; preds = %entry, %for.inc7 %B.addr.04 = phi i64* [ %B, %entry ], [ %scevgep, %for.inc7 ] diff --git a/test/Analysis/DependenceAnalysis/Coupled.ll b/test/Analysis/DependenceAnalysis/Coupled.ll index aca1e70cc9..8c77849ae8 100644 --- a/test/Analysis/DependenceAnalysis/Coupled.ll +++ b/test/Analysis/DependenceAnalysis/Coupled.ll @@ -13,12 +13,12 @@ define void @couple0([100 x i32]* %A, i32* %B, i32 %n) nounwind uwtable ssp { entry: br label %for.body -; CHECK: da analyze - consistent output [0]! +; CHECK: da analyze - none! ; CHECK: da analyze - none! ; CHECK: da analyze - confused! -; CHECK: da analyze - consistent input [0]! +; CHECK: da analyze - none! ; CHECK: da analyze - confused! -; CHECK: da analyze - consistent output [0]! +; CHECK: da analyze - none! for.body: ; preds = %entry, %for.body %i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ] @@ -49,12 +49,12 @@ define void @couple1([100 x i32]* %A, i32* %B, i32 %n) nounwind uwtable ssp { entry: br label %for.body -; CHECK: da analyze - consistent output [0]! +; CHECK: da analyze - none! ; CHECK: da analyze - consistent flow [-9]! ; CHECK: da analyze - confused! -; CHECK: da analyze - consistent input [0]! +; CHECK: da analyze - none! ; CHECK: da analyze - confused! -; CHECK: da analyze - consistent output [0]! +; CHECK: da analyze - none! for.body: ; preds = %entry, %for.body %i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ] @@ -85,12 +85,12 @@ define void @couple2([100 x i32]* %A, i32* %B, i32 %n) nounwind uwtable ssp { entry: br label %for.body -; CHECK: da analyze - consistent output [0]! +; CHECK: da analyze - none! ; CHECK: da analyze - flow [*|<]! ; CHECK: da analyze - confused! -; CHECK: da analyze - consistent input [0]! +; CHECK: da analyze - none! ; CHECK: da analyze - confused! -; CHECK: da analyze - consistent output [0]! +; CHECK: da analyze - none! for.body: ; preds = %entry, %for.body %i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ] @@ -123,12 +123,12 @@ define void @couple3([100 x i32]* %A, i32* %B, i32 %n) nounwind uwtable ssp { entry: br label %for.body -; CHECK: da analyze - consistent output [0]! +; CHECK: da analyze - none! ; CHECK: da analyze - none! ; CHECK: da analyze - confused! -; CHECK: da analyze - consistent input [0]! +; CHECK: da analyze - none! ; CHECK: da analyze - confused! -; CHECK: da analyze - consistent output [0]! +; CHECK: da analyze - none! for.body: ; preds = %entry, %for.body %i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ] @@ -161,12 +161,12 @@ define void @couple4([100 x i32]* %A, i32* %B, i32 %n) nounwind uwtable ssp { entry: br label %for.body -; CHECK: da analyze - consistent output [0]! +; CHECK: da analyze - none! ; CHECK: da analyze - flow [*|<]! ; CHECK: da analyze - confused! -; CHECK: da analyze - consistent input [0]! +; CHECK: da analyze - none! ; CHECK: da analyze - confused! -; CHECK: da analyze - consistent output [0]! +; CHECK: da analyze - none! for.body: ; preds = %entry, %for.body %i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ] @@ -200,12 +200,12 @@ define void @couple5([100 x i32]* %A, i32* %B, i32 %n) nounwind uwtable ssp { entry: br label %for.body -; CHECK: da analyze - consistent output [0]! +; CHECK: da analyze - none! ; CHECK: da analyze - none! ; CHECK: da analyze - confused! -; CHECK: da analyze - consistent input [0]! +; CHECK: da analyze - none! ; CHECK: da analyze - confused! -; CHECK: da analyze - consistent output [0]! +; CHECK: da analyze - none! for.body: ; preds = %entry, %for.body %i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ] @@ -241,12 +241,12 @@ define void @couple6([100 x i32]* %A, i32* %B, i32 %n) nounwind uwtable ssp { entry: br label %for.body -; CHECK: da analyze - consistent output [0]! +; CHECK: da analyze - none! ; CHECK: da analyze - flow [=|<]! ; CHECK: da analyze - confused! -; CHECK: da analyze - consistent input [0]! +; CHECK: da analyze - none! ; CHECK: da analyze - confused! -; CHECK: da analyze - consistent output [0]! +; CHECK: da analyze - none! for.body: ; preds = %entry, %for.body %i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ] @@ -277,12 +277,12 @@ define void @couple7([100 x i32]* %A, i32* %B, i32 %n) nounwind uwtable ssp { entry: br label %for.body -; CHECK: da analyze - consistent output [0]! +; CHECK: da analyze - none! ; CHECK: da analyze - none! ; CHECK: da analyze - confused! -; CHECK: da analyze - consistent input [0]! +; CHECK: da analyze - none! ; CHECK: da analyze - confused! -; CHECK: da analyze - consistent output [0]! +; CHECK: da analyze - none! for.body: ; preds = %entry, %for.body %i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ] @@ -313,12 +313,12 @@ define void @couple8([100 x i32]* %A, i32* %B, i32 %n) nounwind uwtable ssp { entry: br label %for.body -; CHECK: da analyze - consistent output [0]! +; CHECK: da analyze - none! ; CHECK: da analyze - none! ; CHECK: da analyze - confused! -; CHECK: da analyze - consistent input [0]! +; CHECK: da analyze - none! ; CHECK: da analyze - confused! -; CHECK: da analyze - consistent output [0]! +; CHECK: da analyze - none! for.body: ; preds = %entry, %for.body %i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ] @@ -350,12 +350,12 @@ define void @couple9([100 x i32]* %A, i32* %B, i32 %n) nounwind uwtable ssp { entry: br label %for.body -; CHECK: da analyze - consistent output [0]! +; CHECK: da analyze - none! ; CHECK: da analyze - none! ; CHECK: da analyze - confused! -; CHECK: da analyze - consistent input [0]! +; CHECK: da analyze - none! ; CHECK: da analyze - confused! -; CHECK: da analyze - consistent output [0]! +; CHECK: da analyze - none! for.body: ; preds = %entry, %for.body %i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ] @@ -387,13 +387,13 @@ define void @couple10([100 x i32]* %A, i32* %B, i32 %n) nounwind uwtable ssp { entry: br label %for.body -; CHECK: da analyze - consistent output [0]! +; CHECK: da analyze - none! ; CHECK: da analyze - flow [>] splitable! ; CHECK: da analyze - split level = 1, iteration = 3! ; CHECK: da analyze - confused! -; CHECK: da analyze - consistent input [0]! +; CHECK: da analyze - none! ; CHECK: da analyze - confused! -; CHECK: da analyze - consistent output [0]! +; CHECK: da analyze - none! for.body: ; preds = %entry, %for.body %i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ] @@ -425,13 +425,13 @@ define void @couple11([100 x i32]* %A, i32* %B, i32 %n) nounwind uwtable ssp { entry: br label %for.body -; CHECK: da analyze - consistent output [0]! +; CHECK: da analyze - none! ; CHECK: da analyze - flow [=|<] splitable! ; CHECK: da analyze - split level = 1, iteration = 9! ; CHECK: da analyze - confused! -; CHECK: da analyze - consistent input [0]! +; CHECK: da analyze - none! ; CHECK: da analyze - confused! -; CHECK: da analyze - consistent output [0]! +; CHECK: da analyze - none! for.body: ; preds = %entry, %for.body %i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ] @@ -463,13 +463,13 @@ define void @couple12([100 x i32]* %A, i32* %B, i32 %n) nounwind uwtable ssp { entry: br label %for.body -; CHECK: da analyze - consistent output [0]! +; CHECK: da analyze - none! ; CHECK: da analyze - flow [<] splitable! ; CHECK: da analyze - split level = 1, iteration = 11! ; CHECK: da analyze - confused! -; CHECK: da analyze - consistent input [0]! +; CHECK: da analyze - none! ; CHECK: da analyze - confused! -; CHECK: da analyze - consistent output [0]! +; CHECK: da analyze - none! for.body: ; preds = %entry, %for.body %i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ] @@ -501,12 +501,12 @@ define void @couple13([100 x i32]* %A, i32* %B, i32 %n) nounwind uwtable ssp { entry: br label %for.body -; CHECK: da analyze - consistent output [0]! +; CHECK: da analyze - none! ; CHECK: da analyze - none! ; CHECK: da analyze - confused! -; CHECK: da analyze - consistent input [0]! +; CHECK: da analyze - none! ; CHECK: da analyze - confused! -; CHECK: da analyze - consistent output [0]! +; CHECK: da analyze - none! for.body: ; preds = %entry, %for.body %i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ] @@ -537,13 +537,13 @@ define void @couple14([100 x [100 x i32]]* %A, i32* %B, i32 %n) nounwind uwtable entry: br label %for.body -; CHECK: da analyze - consistent output [0]! +; CHECK: da analyze - none! ; CHECK: da analyze - flow [=|<] splitable! ; CHECK: da analyze - split level = 1, iteration = 9! ; CHECK: da analyze - confused! -; CHECK: da analyze - consistent input [0]! +; CHECK: da analyze - none! ; CHECK: da analyze - confused! -; CHECK: da analyze - consistent output [0]! +; CHECK: da analyze - none! for.body: ; preds = %entry, %for.body %i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ] @@ -575,12 +575,12 @@ define void @couple15([100 x [100 x i32]]* %A, i32* %B, i32 %n) nounwind uwtable entry: br label %for.body -; CHECK: da analyze - consistent output [0]! +; CHECK: da analyze - none! ; CHECK: da analyze - none! ; CHECK: da analyze - confused! -; CHECK: da analyze - consistent input [0]! +; CHECK: da analyze - none! ; CHECK: da analyze - confused! -; CHECK: da analyze - consistent output [0]! +; CHECK: da analyze - none! for.body: ; preds = %entry, %for.body %i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ] diff --git a/test/Analysis/DependenceAnalysis/ExactRDIV.ll b/test/Analysis/DependenceAnalysis/ExactRDIV.ll index 5528dedfcc..f5f57e794c 100644 --- a/test/Analysis/DependenceAnalysis/ExactRDIV.ll +++ b/test/Analysis/DependenceAnalysis/ExactRDIV.ll @@ -14,12 +14,12 @@ define void @rdiv0(i32* %A, i32* %B) nounwind uwtable ssp { entry: br label %for.body -; CHECK: da analyze - consistent output [0]! +; CHECK: da analyze - none! ; CHECK: da analyze - none! ; CHECK: da analyze - confused! -; CHECK: da analyze - consistent input [0]! +; CHECK: da analyze - none! ; CHECK: da analyze - confused! -; CHECK: da analyze - consistent output [0]! +; CHECK: da analyze - none! for.body: ; preds = %entry, %for.body %i.03 = phi i64 [ 0, %entry ], [ %inc, %for.body ] @@ -62,12 +62,12 @@ define void @rdiv1(i32* %A, i32* %B) nounwind uwtable ssp { entry: br label %for.body -; CHECK: da analyze - consistent output [0]! +; CHECK: da analyze - none! ; CHECK: da analyze - none! ; CHECK: da analyze - confused! -; CHECK: da analyze - consistent input [0]! +; CHECK: da analyze - none! ; CHECK: da analyze - confused! -; CHECK: da analyze - consistent output [0]! +; CHECK: da analyze - none! for.body: ; preds = %entry, %for.body %i.03 = phi i64 [ 0, %entry ], [ %inc, %for.body ] @@ -108,12 +108,12 @@ define void @rdiv2(i32* %A, i32* %B) nounwind uwtable ssp { entry: br label %for.body -; CHECK: da analyze - consistent output [0]! +; CHECK: da analyze - none! ; CHECK: da analyze - none! ; CHECK: da analyze - confused! -; CHECK: da analyze - consistent input [0]! +; CHECK: da analyze - none! ; CHECK: da analyze - confused! -; CHECK: da analyze - consistent output [0]! +; CHECK: da analyze - none! for.body: ; preds = %entry, %for.body %i.03 = phi i64 [ 0, %entry ], [ %inc, %for.body ] @@ -154,12 +154,12 @@ define void @rdiv3(i32* %A, i32* %B) nounwind uwtable ssp { entry: br label %for.body -; CHECK: da analyze - consistent output [0]! +; CHECK: da analyze - none! ; CHECK: da analyze - none! ; CHECK: da analyze - confused! -; CHECK: da analyze - consistent input [0]! +; CHECK: da analyze - none! ; CHECK: da analyze - confused! -; CHECK: da analyze - consistent output [0]! +; CHECK: da analyze - none! for.body: ; preds = %entry, %for.body %i.03 = phi i64 [ 0, %entry ], [ %inc, %for.body ] @@ -200,12 +200,12 @@ define void @rdiv4(i32* %A, i32* %B) nounwind uwtable ssp { entry: br label %for.body -; CHECK: da analyze - consistent output [0]! +; CHECK: da analyze - none! ; CHECK: da analyze - flow! ; CHECK: da analyze - confused! -; CHECK: da analyze - consistent input [0]! +; CHECK: da analyze - none! ; CHECK: da analyze - confused! -; CHECK: da analyze - consistent output [0]! +; CHECK: da analyze - none! for.body: ; preds = %entry, %for.body %i.03 = phi i64 [ 0, %entry ], [ %inc, %for.body ] @@ -246,12 +246,12 @@ define void @rdiv5(i32* %A, i32* %B) nounwind uwtable ssp { entry: br label %for.body -; CHECK: da analyze - consistent output [0]! +; CHECK: da analyze - none! ; CHECK: da analyze - none! ; CHECK: da analyze - confused! -; CHECK: da analyze - consistent input [0]! +; CHECK: da analyze - none! ; CHECK: da analyze - confused! -; CHECK: da analyze - consistent output [0]! +; CHECK: da analyze - none! for.body: ; preds = %entry, %for.body %i.03 = phi i64 [ 0, %entry ], [ %inc, %for.body ] @@ -293,12 +293,12 @@ define void @rdiv6(i32* %A, i32* %B) nounwind uwtable ssp { entry: br label %for.body -; CHECK: da analyze - consistent output [0]! +; CHECK: da analyze - none! ; CHECK: da analyze - none! ; CHECK: da analyze - confused! -; CHECK: da analyze - consistent input [0]! +; CHECK: da analyze - none! ; CHECK: da analyze - confused! -; CHECK: da analyze - consistent output [0]! +; CHECK: da analyze - none! for.body: ; preds = %entry, %for.body %i.03 = phi i64 [ 0, %entry ], [ %inc, %for.body ] @@ -340,12 +340,12 @@ define void @rdiv7(i32* %A, i32* %B) nounwind uwtable ssp { entry: br label %for.body -; CHECK: da analyze - consistent output [0]! +; CHECK: da analyze - none! ; CHECK: da analyze - none! ; CHECK: da analyze - confused! -; CHECK: da analyze - consistent input [0]! +; CHECK: da analyze - none! ; CHECK: da analyze - confused! -; CHECK: da analyze - consistent output [0]! +; CHECK: da analyze - none! for.body: ; preds = %entry, %for.body %i.03 = phi i64 [ 0, %entry ], [ %inc, %for.body ] @@ -387,12 +387,12 @@ define void @rdiv8(i32* %A, i32* %B) nounwind uwtable ssp { entry: br label %for.body -; CHECK: da analyze - consistent output [0]! +; CHECK: da analyze - none! ; CHECK: da analyze - flow! ; CHECK: da analyze - confused! -; CHECK: da analyze - consistent input [0]! +; CHECK: da analyze - none! ; CHECK: da analyze - confused! -; CHECK: da analyze - consistent output [0]! +; CHECK: da analyze - none! for.body: ; preds = %entry, %for.body %i.03 = phi i64 [ 0, %entry ], [ %inc, %for.body ] @@ -434,12 +434,12 @@ define void @rdiv9(i32* %A, i32* %B) nounwind uwtable ssp { entry: br label %for.cond1.preheader -; CHECK: da analyze - output [= =]! +; CHECK: da analyze - none! ; CHECK: da analyze - none! ; CHECK: da analyze - confused! ; CHECK: da analyze - consistent input [S S]! ; CHECK: da analyze - confused! -; CHECK: da analyze - output [= =]! +; CHECK: da analyze - none! for.cond1.preheader: ; preds = %entry, %for.inc5 %B.addr.04 = phi i32* [ %B, %entry ], [ %scevgep, %for.inc5 ] @@ -483,12 +483,12 @@ define void @rdiv10(i32* %A, i32* %B) nounwind uwtable ssp { entry: br label %for.cond1.preheader -; CHECK: da analyze - output [= =]! +; CHECK: da analyze - none! ; CHECK: da analyze - none! ; CHECK: da analyze - confused! ; CHECK: da analyze - consistent input [S S]! ; CHECK: da analyze - confused! -; CHECK: da analyze - output [= =]! +; CHECK: da analyze - none! for.cond1.preheader: ; preds = %entry, %for.inc5 %B.addr.04 = phi i32* [ %B, %entry ], [ %scevgep, %for.inc5 ] @@ -531,12 +531,12 @@ define void @rdiv11(i32* %A, i32* %B) nounwind uwtable ssp { entry: br label %for.cond1.preheader -; CHECK: da analyze - output [= =]! +; CHECK: da analyze - none! ; CHECK: da analyze - none! ; CHECK: da analyze - confused! ; CHECK: da analyze - consistent input [S S]! ; CHECK: da analyze - confused! -; CHECK: da analyze - output [= =]! +; CHECK: da analyze - none! for.cond1.preheader: ; preds = %entry, %for.inc5 %B.addr.04 = phi i32* [ %B, %entry ], [ %scevgep, %for.inc5 ] @@ -579,12 +579,12 @@ define void @rdiv12(i32* %A, i32* %B) nounwind uwtable ssp { entry: br label %for.cond1.preheader -; CHECK: da analyze - output [= =]! +; CHECK: da analyze - none! ; CHECK: da analyze - flow [* *|<]! ; CHECK: da analyze - confused! ; CHECK: da analyze - consistent input [S S]! ; CHECK: da analyze - confused! -; CHECK: da analyze - output [= =]! +; CHECK: da analyze - none! for.cond1.preheader: ; preds = %entry, %for.inc5 %B.addr.04 = phi i32* [ %B, %entry ], [ %scevgep, %for.inc5 ] diff --git a/test/Analysis/DependenceAnalysis/ExactSIV.ll b/test/Analysis/DependenceAnalysis/ExactSIV.ll index 3cbcade8fb..586bbe5096 100644 --- a/test/Analysis/DependenceAnalysis/ExactSIV.ll +++ b/test/Analysis/DependenceAnalysis/ExactSIV.ll @@ -13,12 +13,12 @@ define void @exact0(i32* %A, i32* %B) nounwind uwtable ssp { entry: br label %for.body -; CHECK: da analyze - consistent output [0]! +; CHECK: da analyze - none! ; CHECK: da analyze - flow [<=|<]! ; CHECK: da analyze - confused! -; CHECK: da analyze - consistent input [0]! +; CHECK: da analyze - none! ; CHECK: da analyze - confused! -; CHECK: da analyze - consistent output [0]! +; CHECK: da analyze - none! for.body: ; preds = %entry, %for.body %i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ] @@ -50,12 +50,12 @@ define void @exact1(i32* %A, i32* %B) nounwind uwtable ssp { entry: br label %for.body -; CHECK: da analyze - consistent output [0]! +; CHECK: da analyze - none! ; CHECK: da analyze - none! ; CHECK: da analyze - confused! -; CHECK: da analyze - consistent input [0]! +; CHECK: da analyze - none! ; CHECK: da analyze - confused! -; CHECK: da analyze - consistent output [0]! +; CHECK: da analyze - none! for.body: ; preds = %entry, %for.body %i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ] @@ -88,12 +88,12 @@ define void @exact2(i32* %A, i32* %B) nounwind uwtable ssp { entry: br label %for.body -; CHECK: da analyze - consistent output [0]! +; CHECK: da analyze - none! ; CHECK: da analyze - none! ; CHECK: da analyze - confused! -; CHECK: da analyze - consistent input [0]! +; CHECK: da analyze - none! ; CHECK: da analyze - confused! -; CHECK: da analyze - consistent output [0]! +; CHECK: da analyze - none! for.body: ; preds = %entry, %for.body %i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ] @@ -124,12 +124,12 @@ define void @exact3(i32* %A, i32* %B) nounwind uwtable ssp { entry: br label %for.body -; CHECK: da analyze - consistent output [0]! +; CHECK: da analyze - none! ; CHECK: da analyze - flow [>]! ; CHECK: da analyze - confused! -; CHECK: da analyze - consistent input [0]! +; CHECK: da analyze - none! ; CHECK: da analyze - confused! -; CHECK: da analyze - consistent output [0]! +; CHECK: da analyze - none! for.body: ; preds = %entry, %for.body %i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ] @@ -160,12 +160,12 @@ define void @exact4(i32* %A, i32* %B) nounwind uwtable ssp { entry: br label %for.body -; CHECK: da analyze - consistent output [0]! +; CHECK: da analyze - none! ; CHECK: da analyze - flow [>]! ; CHECK: da analyze - confused! -; CHECK: da analyze - consistent input [0]! +; CHECK: da analyze - none! ; CHECK: da analyze - confused! -; CHECK: da analyze - consistent output [0]! +; CHECK: da analyze - none! for.body: ; preds = %entry, %for.body %i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ] @@ -196,12 +196,12 @@ define void @exact5(i32* %A, i32* %B) nounwind uwtable ssp { entry: br label %for.body -; CHECK: da analyze - consistent output [0]! +; CHECK: da analyze - none! ; CHECK: da analyze - flow [=>|<]! ; CHECK: da analyze - confused! -; CHECK: da analyze - consistent input [0]! +; CHECK: da analyze - none! ; CHECK: da analyze - confused! -; CHECK: da analyze - consistent output [0]! +; CHECK: da analyze - none! for.body: ; preds = %entry, %for.body %i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ] @@ -232,12 +232,12 @@ define void @exact6(i32* %A, i32* %B) nounwind uwtable ssp { entry: br label %for.body -; CHECK: da analyze - consistent output [0]! +; CHECK: da analyze - none! ; CHECK: da analyze - flow [=>|<]! ; CHECK: da analyze - confused! -; CHECK: da analyze - consistent input [0]! +; CHECK: da analyze - none! ; CHECK: da analyze - confused! -; CHECK: da analyze - consistent output [0]! +; CHECK: da analyze - none! for.body: ; preds = %entry, %for.body %i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ] @@ -268,12 +268,12 @@ define void @exact7(i32* %A, i32* %B) nounwind uwtable ssp { entry: br label %for.body -; CHECK: da analyze - consistent output [0]! +; CHECK: da analyze - none! ; CHECK: da analyze - flow [*|<]! ; CHECK: da analyze - confused! -; CHECK: da analyze - consistent input [0]! +; CHECK: da analyze - none! ; CHECK: da analyze - confused! -; CHECK: da analyze - consistent output [0]! +; CHECK: da analyze - none! for.body: ; preds = %entry, %for.body %i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ] @@ -304,12 +304,12 @@ define void @exact8(i32* %A, i32* %B) nounwind uwtable ssp { entry: br label %for.body -; CHECK: da analyze - consistent output [0]! +; CHECK: da analyze - none! ; CHECK: da analyze - none! ; CHECK: da analyze - confused! -; CHECK: da analyze - consistent input [0]! +; CHECK: da analyze - none! ; CHECK: da analyze - confused! -; CHECK: da analyze - consistent output [0]! +; CHECK: da analyze - none! for.body: ; preds = %entry, %for.body %i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ] @@ -3 |