Localize a map, remove another
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5060 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/RegAllocSimple.cpp b/lib/CodeGen/RegAllocSimple.cpp
index 73c193b..e1f10bf 100644
--- a/lib/CodeGen/RegAllocSimple.cpp
+++ b/lib/CodeGen/RegAllocSimple.cpp
@@ -49,15 +49,9 @@
// Maps SSA Regs => offsets on the stack where these values are stored
std::map<unsigned, unsigned> VirtReg2OffsetMap;
- // Maps SSA Regs => physical regs
- std::map<unsigned, unsigned> SSA2PhysRegMap;
-
// Maps physical register to their register classes
PhysRegClassMap PhysRegClasses;
- // Made to combat the incorrect allocation of r2 = add r1, r1
- std::map<unsigned, unsigned> VirtReg2PhysRegMap;
-
// RegsUsed - Keep track of what registers are currently in use.
std::set<unsigned> RegsUsed;
@@ -134,7 +128,6 @@
void cleanupAfterFunction() {
VirtReg2OffsetMap.clear();
- SSA2PhysRegMap.clear();
NumBytesAllocated = 4; // FIXME: This is X86 specific
}
@@ -357,6 +350,9 @@
//loop over each basic block
for (MachineBasicBlock::iterator I = MBB.begin(); I != MBB.end(); ++I) {
+ // Made to combat the incorrect allocation of r2 = add r1, r1
+ std::map<unsigned, unsigned> VirtReg2PhysRegMap;
+
MachineInstr *MI = *I;
// a preliminary pass that will invalidate any registers that
@@ -406,9 +402,7 @@
", phys: " << op.getAllocatedRegNum() << "\n");
}
}
-
clearAllRegs();
- VirtReg2PhysRegMap.clear();
}
}