aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen/VirtRegMap.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/CodeGen/VirtRegMap.h')
-rw-r--r--lib/CodeGen/VirtRegMap.h21
1 files changed, 10 insertions, 11 deletions
diff --git a/lib/CodeGen/VirtRegMap.h b/lib/CodeGen/VirtRegMap.h
index 7740740548..192d64a30e 100644
--- a/lib/CodeGen/VirtRegMap.h
+++ b/lib/CodeGen/VirtRegMap.h
@@ -67,8 +67,8 @@ namespace llvm {
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 @@ namespace llvm {
}
/// @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.