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) { _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits