MachineInstr can change. Store indexes instead.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44612 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/VirtRegMap.h b/lib/CodeGen/VirtRegMap.h
index 7740740..192d64a 100644
--- a/lib/CodeGen/VirtRegMap.h
+++ b/lib/CodeGen/VirtRegMap.h
@@ -67,8 +67,8 @@
     IndexedMap<unsigned, VirtReg2IndexFunctor> Virt2SplitMap;
 
     /// Virt2SplitKillMap - This is splitted virtual register to its last use
-    /// (kill) mapping.
-    IndexedMap<MachineOperand*> Virt2SplitKillMap;
+    /// (kill) index mapping.
+    IndexedMap<unsigned> Virt2SplitKillMap;
 
     /// ReMatMap - This is virtual register to re-materialized instruction
     /// mapping. Each virtual register whose definition is going to be
@@ -215,18 +215,17 @@
     }
 
     /// @brief record the last use (kill) of a split virtual register.
-    void addKillPoint(unsigned virtReg, MachineOperand *Op) {
-      Virt2SplitKillMap[virtReg] = Op;
+    void addKillPoint(unsigned virtReg, unsigned index) {
+      Virt2SplitKillMap[virtReg] = index;
     }
 
-    /// @brief reset and remove the last use (kill) of a split virtual register.
+    unsigned getKillPoint(unsigned virtReg) const {
+      return Virt2SplitKillMap[virtReg];
+    }
+
+    /// @brief remove the last use (kill) of a split virtual register.
     void removeKillPoint(unsigned virtReg) {
-      MachineOperand *MO = Virt2SplitKillMap[virtReg];
-      if (MO) {
-        assert(MO->isKill() && "Split last use is not marked kill?");
-        MO->unsetIsKill();
-        Virt2SplitKillMap[virtReg] = NULL;
-      }
+      Virt2SplitKillMap[virtReg] = 0;
     }
 
     /// @brief returns true if the specified MachineInstr is a spill point.