mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-22 12:08:33 +00:00
Print register in LiveInterval::print()
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192398 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
4f3b5e8c92
commit
03d9609c61
@ -527,6 +527,8 @@ namespace llvm {
|
||||
/// or stack slot.
|
||||
class LiveInterval : public LiveRange {
|
||||
public:
|
||||
typedef LiveRange super;
|
||||
|
||||
const unsigned reg; // the register or stack slot of this interval.
|
||||
float weight; // weight of this interval
|
||||
|
||||
@ -554,6 +556,9 @@ namespace llvm {
|
||||
(thisIndex == otherIndex && reg < other.reg);
|
||||
}
|
||||
|
||||
void print(raw_ostream &OS) const;
|
||||
void dump() const;
|
||||
|
||||
private:
|
||||
LiveInterval& operator=(const LiveInterval& rhs) LLVM_DELETED_FUNCTION;
|
||||
|
||||
|
@ -1337,7 +1337,7 @@ void InlineSpiller::spill(LiveRangeEdit &edit) {
|
||||
|
||||
DEBUG(dbgs() << "Inline spilling "
|
||||
<< MRI.getRegClass(edit.getReg())->getName()
|
||||
<< ':' << PrintReg(edit.getReg()) << ' ' << edit.getParent()
|
||||
<< ':' << edit.getParent()
|
||||
<< "\nFrom original " << PrintReg(Original) << '\n');
|
||||
assert(edit.getParent().isSpillable() &&
|
||||
"Attempting to spill already spilled value.");
|
||||
|
@ -617,10 +617,19 @@ void LiveRange::print(raw_ostream &OS) const {
|
||||
}
|
||||
}
|
||||
|
||||
void LiveInterval::print(raw_ostream &OS) const {
|
||||
OS << PrintReg(reg) << ' ';
|
||||
super::print(OS);
|
||||
}
|
||||
|
||||
#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
|
||||
void LiveRange::dump() const {
|
||||
dbgs() << *this << "\n";
|
||||
}
|
||||
|
||||
void LiveInterval::dump() const {
|
||||
dbgs() << *this << "\n";
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifndef NDEBUG
|
||||
|
@ -141,13 +141,13 @@ void LiveIntervals::print(raw_ostream &OS, const Module* ) const {
|
||||
// Dump the regunits.
|
||||
for (unsigned i = 0, e = RegUnitRanges.size(); i != e; ++i)
|
||||
if (LiveRange *LR = RegUnitRanges[i])
|
||||
OS << PrintRegUnit(i, TRI) << " = " << *LR << '\n';
|
||||
OS << PrintRegUnit(i, TRI) << ' ' << *LR << '\n';
|
||||
|
||||
// Dump the virtregs.
|
||||
for (unsigned i = 0, e = MRI->getNumVirtRegs(); i != e; ++i) {
|
||||
unsigned Reg = TargetRegisterInfo::index2VirtReg(i);
|
||||
if (hasInterval(Reg))
|
||||
OS << PrintReg(Reg) << " = " << getInterval(Reg) << '\n';
|
||||
OS << getInterval(Reg) << '\n';
|
||||
}
|
||||
|
||||
OS << "RegMasks:";
|
||||
|
@ -419,23 +419,13 @@ void MachineVerifier::report(const char *msg,
|
||||
void MachineVerifier::report(const char *msg, const MachineFunction *MF,
|
||||
const LiveInterval &LI) {
|
||||
report(msg, MF);
|
||||
*OS << "- interval: ";
|
||||
if (TargetRegisterInfo::isVirtualRegister(LI.reg))
|
||||
*OS << PrintReg(LI.reg, TRI);
|
||||
else
|
||||
*OS << PrintRegUnit(LI.reg, TRI);
|
||||
*OS << ' ' << LI << '\n';
|
||||
*OS << "- interval: " << LI << '\n';
|
||||
}
|
||||
|
||||
void MachineVerifier::report(const char *msg, const MachineBasicBlock *MBB,
|
||||
const LiveInterval &LI) {
|
||||
report(msg, MBB);
|
||||
*OS << "- interval: ";
|
||||
if (TargetRegisterInfo::isVirtualRegister(LI.reg))
|
||||
*OS << PrintReg(LI.reg, TRI);
|
||||
else
|
||||
*OS << PrintRegUnit(LI.reg, TRI);
|
||||
*OS << ' ' << LI << '\n';
|
||||
*OS << "- interval: " << LI << '\n';
|
||||
}
|
||||
|
||||
void MachineVerifier::report(const char *msg, const MachineBasicBlock *MBB,
|
||||
|
@ -99,7 +99,7 @@ void RegAllocBase::allocatePhysRegs() {
|
||||
// result from splitting.
|
||||
DEBUG(dbgs() << "\nselectOrSplit "
|
||||
<< MRI->getRegClass(VirtReg->reg)->getName()
|
||||
<< ':' << PrintReg(VirtReg->reg) << ' ' << *VirtReg << '\n');
|
||||
<< ':' << *VirtReg << '\n');
|
||||
typedef SmallVector<unsigned, 4> VirtRegVec;
|
||||
VirtRegVec SplitVRegs;
|
||||
unsigned AvailablePhysReg = selectOrSplit(*VirtReg, SplitVRegs);
|
||||
|
@ -1156,10 +1156,12 @@ bool RegisterCoalescer::joinCopy(MachineInstr *CopyMI, bool &Again) {
|
||||
TRI->UpdateRegAllocHint(CP.getSrcReg(), CP.getDstReg(), *MF);
|
||||
|
||||
DEBUG({
|
||||
dbgs() << "\tJoined. Result = " << PrintReg(CP.getDstReg(), TRI);
|
||||
if (!CP.isPhys())
|
||||
dbgs() << "\tJoined. Result = ";
|
||||
if (CP.isPhys())
|
||||
dbgs() << PrintReg(CP.getDstReg(), TRI);
|
||||
else
|
||||
dbgs() << LIS->getInterval(CP.getDstReg());
|
||||
dbgs() << '\n';
|
||||
dbgs() << '\n';
|
||||
});
|
||||
|
||||
++numJoins;
|
||||
@ -1171,8 +1173,7 @@ bool RegisterCoalescer::joinReservedPhysReg(CoalescerPair &CP) {
|
||||
assert(CP.isPhys() && "Must be a physreg copy");
|
||||
assert(MRI->isReserved(CP.getDstReg()) && "Not a reserved register");
|
||||
LiveInterval &RHS = LIS->getInterval(CP.getSrcReg());
|
||||
DEBUG(dbgs() << "\t\tRHS = " << PrintReg(CP.getSrcReg()) << ' ' << RHS
|
||||
<< '\n');
|
||||
DEBUG(dbgs() << "\t\tRHS = " << RHS << '\n');
|
||||
|
||||
assert(CP.isFlipped() && RHS.containsOneValue() &&
|
||||
"Invalid join with reserved register");
|
||||
@ -1968,8 +1969,8 @@ bool RegisterCoalescer::joinVirtRegs(CoalescerPair &CP) {
|
||||
JoinVals RHSVals(RHS, CP.getSrcIdx(), NewVNInfo, CP, LIS, TRI);
|
||||
JoinVals LHSVals(LHS, CP.getDstIdx(), NewVNInfo, CP, LIS, TRI);
|
||||
|
||||
DEBUG(dbgs() << "\t\tRHS = " << PrintReg(CP.getSrcReg()) << ' ' << RHS
|
||||
<< "\n\t\tLHS = " << PrintReg(CP.getDstReg()) << ' ' << LHS
|
||||
DEBUG(dbgs() << "\t\tRHS = " << RHS
|
||||
<< "\n\t\tLHS = " << LHS
|
||||
<< '\n');
|
||||
|
||||
// First compute NewVNInfo and the simple value mappings.
|
||||
|
Loading…
Reference in New Issue
Block a user