[llvm-commits] CVS: llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h
Chris Lattner
lattner at cs.uiuc.edu
Fri Sep 1 22:33:07 PDT 2006
Changes in directory llvm/include/llvm/CodeGen:
LiveIntervalAnalysis.h updated: 1.58 -> 1.59
---
Log message:
Iteration is required for some cases, even if they don't occur in crafty.
Restore it, which re-fixes X86/2006-08-21-ExtraMovInst.ll
---
Diffs of the changes: (+15 -3)
LiveIntervalAnalysis.h | 18 +++++++++++++++---
1 files changed, 15 insertions(+), 3 deletions(-)
Index: llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h
diff -u llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.58 llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.59
--- llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.58 Sat Sep 2 00:26:01 2006
+++ llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h Sat Sep 2 00:32:53 2006
@@ -53,6 +53,17 @@
std::vector<bool> allocatableRegs_;
public:
+ struct CopyRec {
+ MachineInstr *MI;
+ unsigned SrcReg, DstReg;
+ };
+ CopyRec getCopyRec(MachineInstr *MI, unsigned SrcReg, unsigned DstReg) {
+ CopyRec R;
+ R.MI = MI;
+ R.SrcReg = SrcReg;
+ R.DstReg = DstReg;
+ return R;
+ }
struct InstrSlots {
enum {
LOAD = 0,
@@ -150,9 +161,10 @@
/// joinIntervals - join compatible live intervals
void joinIntervals();
- /// CopyCoallesceInMBB - Coallsece copies in the specified MBB.
- void CopyCoallesceInMBB(MachineBasicBlock *MBB);
-
+ /// CopyCoallesceInMBB - Coallsece copies in the specified MBB, putting
+ /// copies that cannot yet be coallesced into the "TryAgain" list.
+ void CopyCoallesceInMBB(MachineBasicBlock *MBB,
+ std::vector<CopyRec> &TryAgain);
/// JoinCopy - Attempt to join intervals corresponding to SrcReg/DstReg,
/// which are the src/dst of the copy instruction CopyMI. This returns true
/// if the copy was successfully coallesced away, or if it is never possible
More information about the llvm-commits
mailing list