Modified dump() to provide a little

more information for dependences between
instructions that don't share a common loop.

Updated the test results appropriately.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168965 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Preston Briggs
2012-11-30 00:44:47 +00:00
parent adf0c3d82d
commit a4eff77e37
3 changed files with 34 additions and 36 deletions

View File

@ -583,42 +583,40 @@ void Dependence::dump(raw_ostream &OS) const {
else if (isInput()) else if (isInput())
OS << "input"; OS << "input";
unsigned Levels = getLevels(); unsigned Levels = getLevels();
if (Levels) { OS << " [";
OS << " ["; for (unsigned II = 1; II <= Levels; ++II) {
for (unsigned II = 1; II <= Levels; ++II) { if (isSplitable(II))
if (isSplitable(II)) Splitable = true;
Splitable = true; if (isPeelFirst(II))
if (isPeelFirst(II)) OS << 'p';
OS << 'p'; const SCEV *Distance = getDistance(II);
const SCEV *Distance = getDistance(II); if (Distance)
if (Distance) OS << *Distance;
OS << *Distance; else if (isScalar(II))
else if (isScalar(II)) OS << "S";
OS << "S"; else {
unsigned Direction = getDirection(II);
if (Direction == DVEntry::ALL)
OS << "*";
else { else {
unsigned Direction = getDirection(II); if (Direction & DVEntry::LT)
if (Direction == DVEntry::ALL) OS << "<";
OS << "*"; if (Direction & DVEntry::EQ)
else { OS << "=";
if (Direction & DVEntry::LT) if (Direction & DVEntry::GT)
OS << "<"; OS << ">";
if (Direction & DVEntry::EQ)
OS << "=";
if (Direction & DVEntry::GT)
OS << ">";
}
} }
if (isPeelLast(II))
OS << 'p';
if (II < Levels)
OS << " ";
} }
if (isLoopIndependent()) if (isPeelLast(II))
OS << "|<"; OS << 'p';
OS << "]"; if (II < Levels)
if (Splitable) OS << " ";
OS << " splitable";
} }
if (isLoopIndependent())
OS << "|<";
OS << "]";
if (Splitable)
OS << " splitable";
} }
OS << "!\n"; OS << "!\n";
} }

View File

@ -201,7 +201,7 @@ entry:
br label %for.body br label %for.body
; CHECK: da analyze - none! ; CHECK: da analyze - none!
; CHECK: da analyze - flow! ; CHECK: da analyze - flow [|<]!
; CHECK: da analyze - confused! ; CHECK: da analyze - confused!
; CHECK: da analyze - none! ; CHECK: da analyze - none!
; CHECK: da analyze - confused! ; CHECK: da analyze - confused!
@ -388,7 +388,7 @@ entry:
br label %for.body br label %for.body
; CHECK: da analyze - none! ; CHECK: da analyze - none!
; CHECK: da analyze - flow! ; CHECK: da analyze - flow [|<]!
; CHECK: da analyze - confused! ; CHECK: da analyze - confused!
; CHECK: da analyze - none! ; CHECK: da analyze - none!
; CHECK: da analyze - confused! ; CHECK: da analyze - confused!

View File

@ -15,7 +15,7 @@ entry:
store i32 0, i32* %arrayidx, align 4 store i32 0, i32* %arrayidx, align 4
; CHECK: da analyze - none! ; CHECK: da analyze - none!
; CHECK: da analyze - consistent flow! ; CHECK: da analyze - consistent flow [|<]!
; CHECK: da analyze - confused! ; CHECK: da analyze - confused!
; CHECK: da analyze - none! ; CHECK: da analyze - none!
; CHECK: da analyze - confused! ; CHECK: da analyze - confused!
@ -61,7 +61,7 @@ entry:
store i32 0, i32* %arrayidx, align 4 store i32 0, i32* %arrayidx, align 4
; CHECK: da analyze - none! ; CHECK: da analyze - none!
; CHECK: da analyze - flow! ; CHECK: da analyze - flow [|<]!
; CHECK: da analyze - confused! ; CHECK: da analyze - confused!
; CHECK: da analyze - none! ; CHECK: da analyze - none!
; CHECK: da analyze - confused! ; CHECK: da analyze - confused!