aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen/LiveRangeEdit.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/CodeGen/LiveRangeEdit.h')
-rw-r--r--lib/CodeGen/LiveRangeEdit.h11
1 files changed, 8 insertions, 3 deletions
diff --git a/lib/CodeGen/LiveRangeEdit.h b/lib/CodeGen/LiveRangeEdit.h
index 2bd34611c2..0846961f5b 100644
--- a/lib/CodeGen/LiveRangeEdit.h
+++ b/lib/CodeGen/LiveRangeEdit.h
@@ -65,6 +65,9 @@ private:
/// live range trimmed or entirely removed.
SmallPtrSet<const VNInfo*,4> rematted_;
+ /// createFrom - Create a new virtual register based on OldReg.
+ LiveInterval &createFrom(unsigned, LiveIntervals&, VirtRegMap &);
+
/// scanRemattable - Identify the parent_ values that may rematerialize.
void scanRemattable(LiveIntervals &lis,
const TargetInstrInfo &tii,
@@ -110,9 +113,11 @@ public:
return uselessRegs_;
}
- /// create - Create a new register with the same class and stack slot as
+ /// create - Create a new register with the same class and original slot as
/// parent.
- LiveInterval &create(MachineRegisterInfo&, LiveIntervals&, VirtRegMap&);
+ LiveInterval &create(LiveIntervals &LIS, VirtRegMap &VRM) {
+ return createFrom(getReg(), LIS, VRM);
+ }
/// anyRematerializable - Return true if any parent values may be
/// rematerializable.
@@ -166,7 +171,7 @@ public:
/// (allDefsAreDead returns true). This may cause live intervals to be trimmed
/// and further dead efs to be eliminated.
void eliminateDeadDefs(SmallVectorImpl<MachineInstr*> &Dead,
- LiveIntervals&,
+ LiveIntervals&, VirtRegMap&,
const TargetInstrInfo&);
};