From 12ebf14048f4a6489033f8468ba36424442140ac Mon Sep 17 00:00:00 2001 From: Bill Wendling Date: Tue, 11 Dec 2007 19:40:06 +0000 Subject: [PATCH] Blark! How in the world did this work without this?! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44874 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/CodeGen/MachineLICM.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/lib/CodeGen/MachineLICM.cpp b/lib/CodeGen/MachineLICM.cpp index b5a00848a23..8277a430678 100644 --- a/lib/CodeGen/MachineLICM.cpp +++ b/lib/CodeGen/MachineLICM.cpp @@ -43,6 +43,8 @@ STATISTIC(NumHoisted, "Number of machine instructions hoisted out of loops"); namespace { class VISIBILITY_HIDDEN MachineLICM : public MachineFunctionPass { + MachineFunction *CurMF;// Current MachineFunction + // Various analyses that we use... MachineLoopInfo *LI; // Current MachineLoopInfo MachineDominatorTree *DT; // Machine dominator tree for the current Loop @@ -91,7 +93,7 @@ namespace { /// MapVirtualRegisterDefs - Create a map of which machine instruction /// defines a virtual register. /// - void MapVirtualRegisterDefs(const MachineFunction &MF); + void MapVirtualRegisterDefs(); /// IsInSubLoop - A little predicate that returns true if the specified /// basic block is in a subloop of the current one, not the current one @@ -182,12 +184,15 @@ bool MachineLICM::runOnMachineFunction(MachineFunction &MF) { if (!PerformLICM) return false; // For debugging. Changed = false; - TII = MF.getTarget().getInstrInfo(); + CurMF = &MF; + TII = CurMF->getTarget().getInstrInfo(); // Get our Loop information... LI = &getAnalysis(); DT = &getAnalysis(); + MapVirtualRegisterDefs(); + for (MachineLoopInfo::iterator I = LI->begin(), E = LI->end(); I != E; ++I) { MachineLoop *L = *I; @@ -205,9 +210,9 @@ bool MachineLICM::runOnMachineFunction(MachineFunction &MF) { /// MapVirtualRegisterDefs - Create a map of which machine instruction defines a /// virtual register. /// -void MachineLICM::MapVirtualRegisterDefs(const MachineFunction &MF) { +void MachineLICM::MapVirtualRegisterDefs() { for (MachineFunction::const_iterator - I = MF.begin(), E = MF.end(); I != E; ++I) { + I = CurMF->begin(), E = CurMF->end(); I != E; ++I) { const MachineBasicBlock &MBB = *I; for (MachineBasicBlock::const_iterator