diff options
author | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2012-06-05 21:54:09 +0000 |
---|---|---|
committer | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2012-06-05 21:54:09 +0000 |
commit | 4e53a40ea321c43bdf754147dd2ec064985e5b7b (patch) | |
tree | f6af24cf27b0f9684f0e8e17f9986796751c06bf /lib/CodeGen/LiveRangeCalc.h | |
parent | d88d27868bf7c2c5914c1b9ccace0ee6d7ee958a (diff) | |
download | llvm-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.h | 19 |
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. |