CodeGen: Create a proper ModuleSlotTracker for MachineInstr

Another follow-up related to r240848: try a little harder to share slot
tracking calculations within a single `MachineInstr` dump.  This is
unrelated to `MachineFunction::print()`, since that should be passing
through the function's `ModuleSlotTracker` by now, but could affect the
speed of dumping from a debugger if there is more than one IR-level
operand.

llvm-svn: 240852
This commit is contained in:
Duncan P. N. Exon Smith 2015-06-26 23:18:44 +00:00
parent 5d6108e4ed
commit c03745260e
1 changed files with 7 additions and 2 deletions

View File

@ -1532,8 +1532,13 @@ void MachineInstr::dump() const {
}
void MachineInstr::print(raw_ostream &OS, bool SkipOpers) const {
ModuleSlotTracker DummyMST(nullptr);
print(OS, DummyMST, SkipOpers);
const Module *M = nullptr;
if (const MachineBasicBlock *MBB = getParent())
if (const MachineFunction *MF = MBB->getParent())
M = MF->getFunction()->getParent();
ModuleSlotTracker MST(M);
print(OS, MST, SkipOpers);
}
void MachineInstr::print(raw_ostream &OS, ModuleSlotTracker &MST,