aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen/LiveInterval.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/CodeGen/LiveInterval.cpp')
-rw-r--r--lib/CodeGen/LiveInterval.cpp16
1 files changed, 15 insertions, 1 deletions
diff --git a/lib/CodeGen/LiveInterval.cpp b/lib/CodeGen/LiveInterval.cpp
index b0f09297b3..0a2483e481 100644
--- a/lib/CodeGen/LiveInterval.cpp
+++ b/lib/CodeGen/LiveInterval.cpp
@@ -388,7 +388,7 @@ void LiveInterval::join(LiveInterval &Other, unsigned CopyIdx) {
I->ValId = MergedDstValIdx;
else {
unsigned &NV = Dst2SrcIdxMap[I->ValId];
- if (NV == 0) NV = getNextValue();
+ if (NV == 0) NV = getNextValue(Other.getInstForValNum(I->ValId));
I->ValId = NV;
}
@@ -422,6 +422,20 @@ void LiveInterval::print(std::ostream &OS, const MRegisterInfo *MRI) const {
E = ranges.end(); I != E; ++I)
OS << *I;
}
+
+ // Print value number info.
+ if (NumValues) {
+ OS << " ";
+ for (unsigned i = 0; i != NumValues; ++i) {
+ if (i) OS << " ";
+ OS << i << "@";
+ if (InstDefiningValue[i] == ~0U) {
+ OS << "?";
+ } else {
+ OS << InstDefiningValue[i];
+ }
+ }
+ }
}
void LiveInterval::dump() const {