From: Duncan P. N. Exon Smith Date: Fri, 26 Jun 2015 23:18:44 +0000 (+0000) Subject: CodeGen: Create a proper ModuleSlotTracker for MachineInstr X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=340d78d52d970673a0a5efb8ebeaaecdb893fc23;p=oota-llvm.git 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@240852 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/CodeGen/MachineInstr.cpp b/lib/CodeGen/MachineInstr.cpp index 39a395081db..fdc4226ad92 100644 --- a/lib/CodeGen/MachineInstr.cpp +++ b/lib/CodeGen/MachineInstr.cpp @@ -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,