Fun arithmetic with iterators aimed at fixing a bug: inserting instructions
authorMisha Brukman <brukman+llvm@gmail.com>
Wed, 4 Dec 2002 19:24:45 +0000 (19:24 +0000)
committerMisha Brukman <brukman+llvm@gmail.com>
Wed, 4 Dec 2002 19:24:45 +0000 (19:24 +0000)
after the *current* instruction while keeping the iterator in the same
'logical' place.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4923 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/RegAllocSimple.cpp

index 0daab42c3eb2f46d5e40b1e65b0d4f50f6964f45..596ade5faca58ff48ba04ea1d16ad1657110fb17 100644 (file)
@@ -29,7 +29,8 @@ namespace {
     unsigned NumBytesAllocated, ByteAlignment;
     
     // Maps SSA Regs => offsets on the stack where these values are stored
-    std::map<unsigned, unsigned> RegMap; // FIXME: change name to VirtReg2OffsetMap
+    // FIXME: change name to VirtReg2OffsetMap
+    std::map<unsigned, unsigned> RegMap;
 
     // Maps SSA Regs => physical regs
     std::map<unsigned, unsigned> SSA2PhysRegMap;
@@ -235,7 +236,8 @@ bool RegAllocSimple::runOnMachineFunction(MachineFunction &Fn) {
           if (op.opIsDef()) {
             physReg = getFreeReg(virtualReg);
             MachineBasicBlock::iterator J = I;
-            I = saveVirtRegToStack(J, virtualReg, physReg);
+            J = saveVirtRegToStack(++J, virtualReg, physReg);
+            I = --J;
           } else {
             I = moveUseToReg(I, virtualReg, physReg);
           }