summaryrefslogtreecommitdiff
path: root/lib/CodeGen/LiveRangeCalc.h
diff options
context:
space:
mode:
authorJakob Stoklund Olesen <stoklund@2pi.dk>2012-06-05 21:54:09 +0000
committerJakob Stoklund Olesen <stoklund@2pi.dk>2012-06-05 21:54:09 +0000
commit4e53a40ea321c43bdf754147dd2ec064985e5b7b (patch)
treef6af24cf27b0f9684f0e8e17f9986796751c06bf /lib/CodeGen/LiveRangeCalc.h
parentd88d27868bf7c2c5914c1b9ccace0ee6d7ee958a (diff)
downloadllvm-4e53a40ea321c43bdf754147dd2ec064985e5b7b.tar.gz
llvm-4e53a40ea321c43bdf754147dd2ec064985e5b7b.tar.bz2
llvm-4e53a40ea321c43bdf754147dd2ec064985e5b7b.tar.xz
Implement LiveRangeCalc::extendToUses() and createDeadDefs().
These LiveRangeCalc methods are to be used when computing a live range from scratch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158027 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/LiveRangeCalc.h')
-rw-r--r--lib/CodeGen/LiveRangeCalc.h19
1 files changed, 17 insertions, 2 deletions
diff --git a/lib/CodeGen/LiveRangeCalc.h b/lib/CodeGen/LiveRangeCalc.h
index 697d5cf179..3c9e40f0fe 100644
--- a/lib/CodeGen/LiveRangeCalc.h
+++ b/lib/CodeGen/LiveRangeCalc.h
@@ -159,11 +159,26 @@ public:
/// single existing value, Alloc may be null.
void extend(LiveInterval *LI, SlotIndex Kill);
- /// extendToUses - Extend the live range of LI to reach all uses.
+ /// createDeadDefs - Create a dead def in LI for every def operand of Reg.
+ /// Each instruction defining Reg gets a new VNInfo with a corresponding
+ /// minimal live range.
+ void createDeadDefs(LiveInterval *LI, unsigned Reg);
+
+ /// createDeadDefs - Create a dead def in LI for every def of LI->reg.
+ void createDeadDefs(LiveInterval *LI) {
+ createDeadDefs(LI, LI->reg);
+ }
+
+ /// extendToUses - Extend the live range of LI to reach all uses of Reg.
///
/// All uses must be jointly dominated by existing liveness. PHI-defs are
/// inserted as needed to preserve SSA form.
- void extendToUses(LiveInterval *LI);
+ void extendToUses(LiveInterval *LI, unsigned Reg);
+
+ /// extendToUses - Extend the live range of LI to reach all uses of LI->reg.
+ void extendToUses(LiveInterval *LI) {
+ extendToUses(LI, LI->reg);
+ }
//===--------------------------------------------------------------------===//
// Low-level interface.