[llvm-commits] CVS: llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h
Evan Cheng
evan.cheng at apple.com
Wed Feb 28 18:03:22 PST 2007
Changes in directory llvm/include/llvm/CodeGen:
LiveIntervalAnalysis.h updated: 1.75 -> 1.76
---
Log message:
Track all joined registers and eliminate unneeded kills after all joining are done.
---
Diffs of the changes: (+10 -3)
LiveIntervalAnalysis.h | 13 ++++++++++---
1 files changed, 10 insertions(+), 3 deletions(-)
Index: llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h
diff -u llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.75 llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.76
--- llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.75 Mon Feb 26 15:37:37 2007
+++ llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h Wed Feb 28 20:03:03 2007
@@ -57,6 +57,10 @@
BitVector allocatableRegs_;
+ /// JoinedLIs - Keep track which register intervals have been coalesced
+ /// with other intervals.
+ BitVector JoinedLIs;
+
public:
struct CopyRec {
MachineInstr *MI;
@@ -119,8 +123,7 @@
}
bool hasInterval(unsigned reg) const {
- Reg2IntervalMap::const_iterator I = r2iMap_.find(reg);
- return I != r2iMap_.end();
+ return r2iMap_.count(reg);
}
/// getMBBStartIdx - Return the base index of the first instruction in the
@@ -264,10 +267,14 @@
MachineInstr *lastRegisterUse(unsigned Reg, unsigned Start, unsigned End,
MachineOperand *&MOU);
- /// unsetRegisterKill - Unset IsKill property of all uses of specific
+ /// unsetRegisterKill - Unset IsKill property of all uses of the specific
/// register of the specific instruction.
void unsetRegisterKill(MachineInstr *MI, unsigned Reg);
+ /// hasRegisterDef - True if the instruction defines the specific register.
+ ///
+ bool hasRegisterDef(MachineInstr *MI, unsigned Reg);
+
static LiveInterval createInterval(unsigned Reg);
void removeInterval(unsigned Reg) {
More information about the llvm-commits
mailing list