[llvm-commits] CVS: llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h

2007-05-14 Thread Evan Cheng


Changes in directory llvm/include/llvm/CodeGen:

LiveIntervalAnalysis.h updated: 1.84 - 1.85
---
Log message:

Fix for PR1406: http://llvm.org/PR1406 :

v1 =
r2 = move v1
   = op r2kill
...
r2 = move v1
   = op r2kill

Clear the first r2 kill if v1 and r2 are joined.

---
Diffs of the changes:  (+5 -1)

 LiveIntervalAnalysis.h |6 +-
 1 files changed, 5 insertions(+), 1 deletion(-)


Index: llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h
diff -u llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.84 
llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.85
--- llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.84   Sun May  6 
08:37:16 2007
+++ llvm/include/llvm/CodeGen/LiveIntervalAnalysis.hMon May 14 16:10:05 2007
@@ -271,7 +271,7 @@
 /// lastRegisterUse - Returns the last use of the specific register between
 /// cycles Start and End. It also returns the use operand by reference. It
 /// returns NULL if there are no uses.
-MachineInstr *lastRegisterUse(unsigned Reg, unsigned Start, unsigned End,
+MachineInstr *lastRegisterUse(unsigned Start, unsigned End, unsigned Reg,
   MachineOperand *MOU);
 
 /// findDefOperand - Returns the MachineOperand that is a def of the 
specific
@@ -282,6 +282,10 @@
 /// register of the specific instruction.
 void unsetRegisterKill(MachineInstr *MI, unsigned Reg);
 
+/// unsetRegisterKills - Unset IsKill property of all uses of specific 
register
+/// between cycles Start and End.
+void unsetRegisterKills(unsigned Start, unsigned End, unsigned Reg);
+
 /// hasRegisterDef - True if the instruction defines the specific register.
 ///
 bool hasRegisterDef(MachineInstr *MI, unsigned Reg);



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h LiveVariables.h MachineModuleInfo.h

2007-05-06 Thread Nick Lewycky


Changes in directory llvm/include/llvm/CodeGen:

LiveIntervalAnalysis.h updated: 1.83 - 1.84
LiveVariables.h updated: 1.44 - 1.45
MachineModuleInfo.h updated: 1.10 - 1.11
---
Log message:

Fix typo in comment.


---
Diffs of the changes:  (+3 -3)

 LiveIntervalAnalysis.h |2 +-
 LiveVariables.h|2 +-
 MachineModuleInfo.h|2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)


Index: llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h
diff -u llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.83 
llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.84
--- llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.83   Wed May  2 
20:11:53 2007
+++ llvm/include/llvm/CodeGen/LiveIntervalAnalysis.hSun May  6 08:37:16 2007
@@ -65,7 +65,7 @@
 BitVector JoinedLIs;
 
   public:
-static char ID; // Pass identifcation, replacement for typeid
+static char ID; // Pass identification, replacement for typeid
 LiveIntervals() : MachineFunctionPass((intptr_t)ID) {}
 
 struct CopyRec {


Index: llvm/include/llvm/CodeGen/LiveVariables.h
diff -u llvm/include/llvm/CodeGen/LiveVariables.h:1.44 
llvm/include/llvm/CodeGen/LiveVariables.h:1.45
--- llvm/include/llvm/CodeGen/LiveVariables.h:1.44  Wed May  2 20:11:53 2007
+++ llvm/include/llvm/CodeGen/LiveVariables.h   Sun May  6 08:37:16 2007
@@ -40,7 +40,7 @@
 
 class LiveVariables : public MachineFunctionPass {
 public:
-  static char ID; // Pass identifcation, replacement for typeid
+  static char ID; // Pass identification, replacement for typeid
   LiveVariables() : MachineFunctionPass((intptr_t)ID) {}
 
   /// VarInfo - This represents the regions where a virtual register is live in


Index: llvm/include/llvm/CodeGen/MachineModuleInfo.h
diff -u llvm/include/llvm/CodeGen/MachineModuleInfo.h:1.10 
llvm/include/llvm/CodeGen/MachineModuleInfo.h:1.11
--- llvm/include/llvm/CodeGen/MachineModuleInfo.h:1.10  Wed May  2 20:11:53 2007
+++ llvm/include/llvm/CodeGen/MachineModuleInfo.h   Sun May  6 08:37:16 2007
@@ -1022,7 +1022,7 @@
   std::vectorGlobalVariable * TypeInfos;
 
 public:
-  static char ID; // Pass identifcation, replacement for typeid
+  static char ID; // Pass identification, replacement for typeid
 
   MachineModuleInfo();
   ~MachineModuleInfo();



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h LiveVariables.h

2007-04-25 Thread Evan Cheng


Changes in directory llvm/include/llvm/CodeGen:

LiveIntervalAnalysis.h updated: 1.79 - 1.80
LiveVariables.h updated: 1.38 - 1.39
---
Log message:

Fix for PR1306: http://llvm.org/PR1306 .
- A register def / use now implicitly affects sub-register liveness but does
not affect liveness information of super-registers.
- Def of a larger register (if followed by a use later) is treated as
read/mod/write of a smaller register.


---
Diffs of the changes:  (+20 -3)

 LiveIntervalAnalysis.h |2 +-
 LiveVariables.h|   21 +++--
 2 files changed, 20 insertions(+), 3 deletions(-)


Index: llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h
diff -u llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.79 
llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.80
--- llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.79   Tue Apr 17 
21:30:19 2007
+++ llvm/include/llvm/CodeGen/LiveIntervalAnalysis.hWed Apr 25 02:30:23 2007
@@ -255,7 +255,7 @@
 /// handleLiveInRegister - Create interval for a livein register.
 void handleLiveInRegister(MachineBasicBlock* mbb,
   unsigned MIIdx,
-  LiveInterval interval);
+  LiveInterval interval, bool isAlias = false);
 
 /// Return true if the two specified registers belong to different
 /// register classes.  The registers may be either phys or virt regs.


Index: llvm/include/llvm/CodeGen/LiveVariables.h
diff -u llvm/include/llvm/CodeGen/LiveVariables.h:1.38 
llvm/include/llvm/CodeGen/LiveVariables.h:1.39
--- llvm/include/llvm/CodeGen/LiveVariables.h:1.38  Wed Apr 18 00:04:38 2007
+++ llvm/include/llvm/CodeGen/LiveVariables.h   Wed Apr 25 02:30:23 2007
@@ -124,8 +124,25 @@
 
   const MRegisterInfo *RegInfo;
 
-  MachineInstr **PhysRegInfo;
-  bool  *PhysRegUsed;
+  // PhysRegInfo - Keep track of which instruction was the last def/use of a
+  // physical register. This is a purely local property, because all physical
+  // register references as presumed dead across basic blocks.
+  std::vectorMachineInstr* PhysRegInfo;
+
+  // PhysRegUsed - Keep track whether the physical register has been used after
+  // its last definition. This is local property.
+  BitVector  PhysRegUsed;
+
+  // PhysRegPartDef - Keep track of a list of instructions which partially
+  // defined the physical register (e.g. on X86 AX partially defines EAX).
+  // These are turned into use/mod/write if there is a use of the register
+  // later in the same block. This is local property.
+  std::vectorstd::vectorMachineInstr*  PhysRegPartDef;
+
+  // PhysRegPartUse - Keep track of which instruction was the last partial use
+  // of a physical register (e.g. on X86 a def of EAX followed by a use of AX).
+  // This is a purely local property.
+  std::vectorMachineInstr* PhysRegPartUse;
 
   typedef std::mapconst MachineBasicBlock*,
std::vectorunsigned  PHIVarInfoMap;



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h

2007-04-17 Thread Evan Cheng


Changes in directory llvm/include/llvm/CodeGen:

LiveIntervalAnalysis.h updated: 1.77 - 1.78
---
Log message:

Copy coalescing change to prevent a physical register from being pin to a
long live interval that has low usage density.
1. Change order of coalescing to join physical registers with virtual
   registers first before virtual register intervals become too long.
2. Check size and usage density to determine if it's worthwhile to join.
3. If joining is aborted, assign virtual register live interval allocation
   preference field to the physical register.
4. Register allocator should try to allocate to the preferred register
   first (if available) to create identify moves that can be eliminated.


---
Diffs of the changes:  (+6 -2)

 LiveIntervalAnalysis.h |8 ++--
 1 files changed, 6 insertions(+), 2 deletions(-)


Index: llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h
diff -u llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.77 
llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.78
--- llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.77   Mon Apr  2 
13:49:18 2007
+++ llvm/include/llvm/CodeGen/LiveIntervalAnalysis.hTue Apr 17 15:32:26 2007
@@ -23,6 +23,7 @@
 #include llvm/CodeGen/MachineFunctionPass.h
 #include llvm/CodeGen/LiveInterval.h
 #include llvm/ADT/BitVector.h
+#include llvm/ADT/DenseMap.h
 #include llvm/ADT/IndexedMap.h
 
 namespace llvm {
@@ -30,6 +31,7 @@
   class LiveVariables;
   class MRegisterInfo;
   class TargetInstrInfo;
+  class TargetRegisterClass;
   class VirtRegMap;
 
   class LiveIntervals : public MachineFunctionPass {
@@ -56,6 +58,7 @@
 Reg2RegMap r2rMap_;
 
 BitVector allocatableRegs_;
+DenseMapconst TargetRegisterClass*, BitVector allocatableRCRegs_;
 
 /// JoinedLIs - Keep track which register intervals have been coalesced
 /// with other intervals.
@@ -202,7 +205,7 @@
 /// CopyCoallesceInMBB - Coallsece copies in the specified MBB, putting
 /// copies that cannot yet be coallesced into the TryAgain list.
 void CopyCoallesceInMBB(MachineBasicBlock *MBB,
-std::vectorCopyRec TryAgain);
+ std::vectorCopyRec TryAgain, bool PhysOnly = 
false);
 
 /// JoinCopy - Attempt to join intervals corresponding to SrcReg/DstReg,
 /// which are the src/dst of the copy instruction CopyMI.  This returns 
true
@@ -210,7 +213,8 @@
 /// to coallesce these this copy, due to register constraints.  It returns
 /// false if it is not currently possible to coallesce this interval, but
 /// it may be possible if other things get coallesced.
-bool JoinCopy(MachineInstr *CopyMI, unsigned SrcReg, unsigned DstReg);
+bool JoinCopy(MachineInstr *CopyMI, unsigned SrcReg, unsigned DstReg,
+  bool PhysOnly = false);
 
 /// JoinIntervals - Attempt to join these two intervals.  On failure, this
 /// returns false.  Otherwise, if one of the intervals being joined is a



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h

2007-04-17 Thread Evan Cheng


Changes in directory llvm/include/llvm/CodeGen:

LiveIntervalAnalysis.h updated: 1.78 - 1.79
---
Log message:

Don't populate TryAgainList when coalescing only physical registers with 
virtual registers.

---
Diffs of the changes:  (+1 -1)

 LiveIntervalAnalysis.h |2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)


Index: llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h
diff -u llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.78 
llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.79
--- llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.78   Tue Apr 17 
15:32:26 2007
+++ llvm/include/llvm/CodeGen/LiveIntervalAnalysis.hTue Apr 17 21:30:19 2007
@@ -205,7 +205,7 @@
 /// CopyCoallesceInMBB - Coallsece copies in the specified MBB, putting
 /// copies that cannot yet be coallesced into the TryAgain list.
 void CopyCoallesceInMBB(MachineBasicBlock *MBB,
- std::vectorCopyRec TryAgain, bool PhysOnly = 
false);
+ std::vectorCopyRec *TryAgain, bool PhysOnly = 
false);
 
 /// JoinCopy - Attempt to join intervals corresponding to SrcReg/DstReg,
 /// which are the src/dst of the copy instruction CopyMI.  This returns 
true



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h

2007-04-02 Thread Evan Cheng


Changes in directory llvm/include/llvm/CodeGen:

LiveIntervalAnalysis.h updated: 1.76 - 1.77
---
Log message:

Ugh. Copy coalescer does not update register numbers.

---
Diffs of the changes:  (+4 -0)

 LiveIntervalAnalysis.h |4 
 1 files changed, 4 insertions(+)


Index: llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h
diff -u llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.76 
llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.77
--- llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.76   Wed Feb 28 
20:03:03 2007
+++ llvm/include/llvm/CodeGen/LiveIntervalAnalysis.hMon Apr  2 13:49:18 2007
@@ -267,6 +267,10 @@
 MachineInstr *lastRegisterUse(unsigned Reg, unsigned Start, unsigned End,
   MachineOperand *MOU);
 
+/// findDefOperand - Returns the MachineOperand that is a def of the 
specific
+/// register. It returns NULL if the def is not found.
+MachineOperand *findDefOperand(MachineInstr *MI, unsigned Reg);
+
 /// unsetRegisterKill - Unset IsKill property of all uses of the specific
 /// register of the specific instruction.
 void unsetRegisterKill(MachineInstr *MI, unsigned Reg);



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h

2007-02-28 Thread Evan Cheng


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.hWed 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


[llvm-commits] CVS: llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h

2007-02-26 Thread Evan Cheng


Changes in directory llvm/include/llvm/CodeGen:

LiveIntervalAnalysis.h updated: 1.74 - 1.75
---
Log message:

Joining an interval with a dead copy instruction. Shorten the live range to the 
last use.

---
Diffs of the changes:  (+5 -3)

 LiveIntervalAnalysis.h |8 +---
 1 files changed, 5 insertions(+), 3 deletions(-)


Index: llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h
diff -u llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.74 
llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.75
--- llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.74   Thu Feb 22 
17:52:23 2007
+++ llvm/include/llvm/CodeGen/LiveIntervalAnalysis.hMon Feb 26 15:37:37 2007
@@ -258,9 +258,11 @@
 bool AdjustCopiesBackFrom(LiveInterval IntA, LiveInterval IntB,
   MachineInstr *CopyMI);
 
-/// hasRegisterUse - Returns true if there is any use of the specific
-/// reg between indexes Start and End.
-bool hasRegisterUse(unsigned Reg, unsigned Start, unsigned End);
+/// lastRegisterUse - Returns the last use of the specific register between
+/// cycles Start and End. It also returns the use operand by reference. It
+/// returns NULL if there are no uses.
+MachineInstr *lastRegisterUse(unsigned Reg, unsigned Start, unsigned End,
+  MachineOperand *MOU);
 
 /// unsetRegisterKill - Unset IsKill property of all uses of specific
 /// register of the specific instruction.



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h

2007-02-22 Thread Evan Cheng


Changes in directory llvm/include/llvm/CodeGen:

LiveIntervalAnalysis.h updated: 1.72 - 1.73
---
Log message:

Remove unnecessary isKill properties if a live range has been lengthened due to 
coalescing.

---
Diffs of the changes:  (+11 -0)

 LiveIntervalAnalysis.h |   11 +++
 1 files changed, 11 insertions(+)


Index: llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h
diff -u llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.72 
llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.73
--- llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.72   Wed Feb 21 
16:41:17 2007
+++ llvm/include/llvm/CodeGen/LiveIntervalAnalysis.hThu Feb 22 17:03:39 2007
@@ -172,6 +172,13 @@
 }
 
   private:
+/// isRemoved - returns true if the specified machine instr has been
+/// removed.
+bool isRemoved(MachineInstr* instr) const {
+  Mi2IndexMap::const_iterator it = mi2iMap_.find(instr);
+  return it == mi2iMap_.end();
+}
+
 /// RemoveMachineInstrFromMaps - This marks the specified machine instr as
 /// deleted.
 void RemoveMachineInstrFromMaps(MachineInstr *MI) {
@@ -256,6 +263,10 @@
 /// reg between indexes Start and End.
 bool hasRegisterUse(unsigned Reg, unsigned Start, unsigned End);
 
+/// unsetRegisterKill - Unset IsKill property of all uses of specific
+/// register of the specific instruction.
+void unsetRegisterKill(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


[llvm-commits] CVS: llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h

2007-02-22 Thread Evan Cheng


Changes in directory llvm/include/llvm/CodeGen:

LiveIntervalAnalysis.h updated: 1.73 - 1.74
---
Log message:

Copy and paste silliness.

---
Diffs of the changes:  (+1 -2)

 LiveIntervalAnalysis.h |3 +--
 1 files changed, 1 insertion(+), 2 deletions(-)


Index: llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h
diff -u llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.73 
llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.74
--- llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.73   Thu Feb 22 
17:03:39 2007
+++ llvm/include/llvm/CodeGen/LiveIntervalAnalysis.hThu Feb 22 17:52:23 2007
@@ -175,8 +175,7 @@
 /// isRemoved - returns true if the specified machine instr has been
 /// removed.
 bool isRemoved(MachineInstr* instr) const {
-  Mi2IndexMap::const_iterator it = mi2iMap_.find(instr);
-  return it == mi2iMap_.end();
+  return !mi2iMap_.count(instr);
 }
 
 /// RemoveMachineInstrFromMaps - This marks the specified machine instr as



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h

2007-02-21 Thread Jim Laskey


Changes in directory llvm/include/llvm/CodeGen:

LiveIntervalAnalysis.h updated: 1.71 - 1.72
---
Log message:

Allow for live in registers for eh landing pads.

---
Diffs of the changes:  (+3 -1)

 LiveIntervalAnalysis.h |4 +++-
 1 files changed, 3 insertions(+), 1 deletion(-)


Index: llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h
diff -u llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.71 
llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.72
--- llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.71   Mon Feb 19 
15:49:53 2007
+++ llvm/include/llvm/CodeGen/LiveIntervalAnalysis.hWed Feb 21 16:41:17 2007
@@ -240,7 +240,9 @@
unsigned SrcReg);
 
 /// handleLiveInRegister - Create interval for a livein register.
-void handleLiveInRegister(MachineBasicBlock* mbb, LiveInterval interval);
+void handleLiveInRegister(MachineBasicBlock* mbb,
+  unsigned MIIdx,
+  LiveInterval interval);
 
 /// Return true if the two specified registers belong to different
 /// register classes.  The registers may be either phys or virt regs.



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h LiveVariables.h MachineBasicBlock.h MachineInstr.h

2007-02-19 Thread Evan Cheng


Changes in directory llvm/include/llvm/CodeGen:

LiveIntervalAnalysis.h updated: 1.70 - 1.71
LiveVariables.h updated: 1.34 - 1.35
MachineBasicBlock.h updated: 1.57 - 1.58
MachineInstr.h updated: 1.211 - 1.212
---
Log message:

Re-apply my liveintervalanalysis changes. Now with PR1207: 
http://llvm.org/PR1207  fixes.

---
Diffs of the changes:  (+35 -9)

 LiveIntervalAnalysis.h |   18 --
 LiveVariables.h|9 +
 MachineBasicBlock.h|   13 ++---
 MachineInstr.h |4 
 4 files changed, 35 insertions(+), 9 deletions(-)


Index: llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h
diff -u llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.70 
llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.71
--- llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.70   Sun Feb 18 
21:20:00 2007
+++ llvm/include/llvm/CodeGen/LiveIntervalAnalysis.hMon Feb 19 15:49:53 2007
@@ -118,6 +118,11 @@
   return I-second;
 }
 
+bool hasInterval(unsigned reg) const {
+  Reg2IntervalMap::const_iterator I = r2iMap_.find(reg);
+  return I != r2iMap_.end();
+}
+
 /// getMBBStartIdx - Return the base index of the first instruction in the
 /// specified MachineBasicBlock.
 unsigned getMBBStartIdx(MachineBasicBlock *MBB) const {
@@ -189,6 +194,7 @@
 /// copies that cannot yet be coallesced into the TryAgain list.
 void CopyCoallesceInMBB(MachineBasicBlock *MBB,
 std::vectorCopyRec 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
@@ -233,6 +239,9 @@
LiveInterval interval,
unsigned SrcReg);
 
+/// handleLiveInRegister - Create interval for a livein register.
+void handleLiveInRegister(MachineBasicBlock* mbb, LiveInterval interval);
+
 /// Return true if the two specified registers belong to different
 /// register classes.  The registers may be either phys or virt regs.
 bool differingRegisterClasses(unsigned RegA, unsigned RegB) const;
@@ -241,11 +250,16 @@
 bool AdjustCopiesBackFrom(LiveInterval IntA, LiveInterval IntB,
   MachineInstr *CopyMI);
 
-bool overlapsAliases(const LiveInterval *lhs,
- const LiveInterval *rhs) const;
+/// hasRegisterUse - Returns true if there is any use of the specific
+/// reg between indexes Start and End.
+bool hasRegisterUse(unsigned Reg, unsigned Start, unsigned End);
 
 static LiveInterval createInterval(unsigned Reg);
 
+void removeInterval(unsigned Reg) {
+  r2iMap_.erase(Reg);
+}
+
 LiveInterval getOrCreateInterval(unsigned reg) {
   Reg2IntervalMap::iterator I = r2iMap_.find(reg);
   if (I == r2iMap_.end())


Index: llvm/include/llvm/CodeGen/LiveVariables.h
diff -u llvm/include/llvm/CodeGen/LiveVariables.h:1.34 
llvm/include/llvm/CodeGen/LiveVariables.h:1.35
--- llvm/include/llvm/CodeGen/LiveVariables.h:1.34  Sun Feb 18 21:20:00 2007
+++ llvm/include/llvm/CodeGen/LiveVariables.h   Mon Feb 19 15:49:53 2007
@@ -36,6 +36,7 @@
 namespace llvm {
 
 class MRegisterInfo;
+class BitVector;
 
 class LiveVariables : public MachineFunctionPass {
 public:
@@ -108,11 +109,11 @@
   ///
   std::vectorVarInfo VirtRegInfo;
 
-  /// AllocatablePhysicalRegisters - This vector keeps track of which registers
-  /// are actually register allocatable by the target machine.  We can not 
track
-  /// liveness for values that are not in this set.
+  /// ReservedRegisters - This vector keeps track of which registers
+  /// are reserved register which are not allocatable by the target machine.
+  /// We can not track liveness for values that are in this set.
   ///
-  BitVector AllocatablePhysicalRegisters;
+  BitVector ReservedRegisters;
 
 private:   // Intermediate data structures
   const MRegisterInfo *RegInfo;


Index: llvm/include/llvm/CodeGen/MachineBasicBlock.h
diff -u llvm/include/llvm/CodeGen/MachineBasicBlock.h:1.57 
llvm/include/llvm/CodeGen/MachineBasicBlock.h:1.58
--- llvm/include/llvm/CodeGen/MachineBasicBlock.h:1.57  Sun Feb 18 21:20:00 2007
+++ llvm/include/llvm/CodeGen/MachineBasicBlock.h   Mon Feb 19 15:49:53 2007
@@ -138,11 +138,18 @@
   /// is an error to add the same register to the same set more than once.
   void addLiveIn(unsigned Reg)  { LiveIns.push_back(Reg); }
 
+  /// removeLiveIn - Remove the specified register from the live in set.
+  ///
+  void removeLiveIn(unsigned Reg);
+
   // Iteration support for live in sets.  These sets are kept in sorted
   // order by their register number.
-  typedef std::vectorunsigned::const_iterator livein_iterator;
-  livein_iterator livein_begin() const { return LiveIns.begin(); }
-  livein_iterator livein_end()   const { return 

[llvm-commits] CVS: llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h LiveVariables.h MachineBasicBlock.h MachineInstr.h

2007-02-18 Thread Reid Spencer


Changes in directory llvm/include/llvm/CodeGen:

LiveIntervalAnalysis.h updated: 1.69 - 1.70
LiveVariables.h updated: 1.33 - 1.34
MachineBasicBlock.h updated: 1.56 - 1.57
MachineInstr.h updated: 1.210 - 1.211
---
Log message:

For PR1207: http://llvm.org/PR1207 :
Revert patches that caused the problem. Evan, please investigate and reapply
when you've discovered the problem.


---
Diffs of the changes:  (+9 -35)

 LiveIntervalAnalysis.h |   18 ++
 LiveVariables.h|9 -
 MachineBasicBlock.h|   13 +++--
 MachineInstr.h |4 
 4 files changed, 9 insertions(+), 35 deletions(-)


Index: llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h
diff -u llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.69 
llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.70
--- llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.69   Sat Feb 17 
05:15:40 2007
+++ llvm/include/llvm/CodeGen/LiveIntervalAnalysis.hSun Feb 18 21:20:00 2007
@@ -118,11 +118,6 @@
   return I-second;
 }
 
-bool hasInterval(unsigned reg) const {
-  Reg2IntervalMap::const_iterator I = r2iMap_.find(reg);
-  return I != r2iMap_.end();
-}
-
 /// getMBBStartIdx - Return the base index of the first instruction in the
 /// specified MachineBasicBlock.
 unsigned getMBBStartIdx(MachineBasicBlock *MBB) const {
@@ -194,7 +189,6 @@
 /// copies that cannot yet be coallesced into the TryAgain list.
 void CopyCoallesceInMBB(MachineBasicBlock *MBB,
 std::vectorCopyRec 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
@@ -239,9 +233,6 @@
LiveInterval interval,
unsigned SrcReg);
 
-/// handleLiveInRegister - Create interval for a livein register.
-void handleLiveInRegister(MachineBasicBlock* mbb, LiveInterval interval);
-
 /// Return true if the two specified registers belong to different
 /// register classes.  The registers may be either phys or virt regs.
 bool differingRegisterClasses(unsigned RegA, unsigned RegB) const;
@@ -250,16 +241,11 @@
 bool AdjustCopiesBackFrom(LiveInterval IntA, LiveInterval IntB,
   MachineInstr *CopyMI);
 
-/// hasRegisterUse - Returns true if there is any use of the specific
-/// reg between indexes Start and End.
-bool hasRegisterUse(unsigned Reg, unsigned Start, unsigned End);
+bool overlapsAliases(const LiveInterval *lhs,
+ const LiveInterval *rhs) const;
 
 static LiveInterval createInterval(unsigned Reg);
 
-void removeInterval(unsigned Reg) {
-  r2iMap_.erase(Reg);
-}
-
 LiveInterval getOrCreateInterval(unsigned reg) {
   Reg2IntervalMap::iterator I = r2iMap_.find(reg);
   if (I == r2iMap_.end())


Index: llvm/include/llvm/CodeGen/LiveVariables.h
diff -u llvm/include/llvm/CodeGen/LiveVariables.h:1.33 
llvm/include/llvm/CodeGen/LiveVariables.h:1.34
--- llvm/include/llvm/CodeGen/LiveVariables.h:1.33  Sat Feb 17 05:07:08 2007
+++ llvm/include/llvm/CodeGen/LiveVariables.h   Sun Feb 18 21:20:00 2007
@@ -36,7 +36,6 @@
 namespace llvm {
 
 class MRegisterInfo;
-class BitVector;
 
 class LiveVariables : public MachineFunctionPass {
 public:
@@ -109,11 +108,11 @@
   ///
   std::vectorVarInfo VirtRegInfo;
 
-  /// ReservedRegisters - This vector keeps track of which registers
-  /// are reserved register which are not allocatable by the target machine.
-  /// We can not track liveness for values that are in this set.
+  /// AllocatablePhysicalRegisters - This vector keeps track of which registers
+  /// are actually register allocatable by the target machine.  We can not 
track
+  /// liveness for values that are not in this set.
   ///
-  BitVector ReservedRegisters;
+  BitVector AllocatablePhysicalRegisters;
 
 private:   // Intermediate data structures
   const MRegisterInfo *RegInfo;


Index: llvm/include/llvm/CodeGen/MachineBasicBlock.h
diff -u llvm/include/llvm/CodeGen/MachineBasicBlock.h:1.56 
llvm/include/llvm/CodeGen/MachineBasicBlock.h:1.57
--- llvm/include/llvm/CodeGen/MachineBasicBlock.h:1.56  Sat Feb 17 05:07:41 2007
+++ llvm/include/llvm/CodeGen/MachineBasicBlock.h   Sun Feb 18 21:20:00 2007
@@ -138,18 +138,11 @@
   /// is an error to add the same register to the same set more than once.
   void addLiveIn(unsigned Reg)  { LiveIns.push_back(Reg); }
 
-  /// removeLiveIn - Remove the specified register from the live in set.
-  ///
-  void removeLiveIn(unsigned Reg);
-
   // Iteration support for live in sets.  These sets are kept in sorted
   // order by their register number.
-  typedef std::vectorunsigned::iterator   livein_iterator;
-  typedef std::vectorunsigned::const_iterator 

[llvm-commits] CVS: llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h

2007-02-17 Thread Evan Cheng


Changes in directory llvm/include/llvm/CodeGen:

LiveIntervalAnalysis.h updated: 1.68 - 1.69
---
Log message:

- Changes how function livein's are handled, they now have a start index of 0.
- When coalescing a copy MI, if its destination is dead, propagate the
  property to the source MI's destination if there are no intervening uses.
- Detect dead function live-in's and remove them.

---
Diffs of the changes:  (+16 -2)

 LiveIntervalAnalysis.h |   18 --
 1 files changed, 16 insertions(+), 2 deletions(-)


Index: llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h
diff -u llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.68 
llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.69
--- llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.68   Wed Feb 14 
23:57:14 2007
+++ llvm/include/llvm/CodeGen/LiveIntervalAnalysis.hSat Feb 17 05:15:40 2007
@@ -118,6 +118,11 @@
   return I-second;
 }
 
+bool hasInterval(unsigned reg) const {
+  Reg2IntervalMap::const_iterator I = r2iMap_.find(reg);
+  return I != r2iMap_.end();
+}
+
 /// getMBBStartIdx - Return the base index of the first instruction in the
 /// specified MachineBasicBlock.
 unsigned getMBBStartIdx(MachineBasicBlock *MBB) const {
@@ -189,6 +194,7 @@
 /// copies that cannot yet be coallesced into the TryAgain list.
 void CopyCoallesceInMBB(MachineBasicBlock *MBB,
 std::vectorCopyRec 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
@@ -233,6 +239,9 @@
LiveInterval interval,
unsigned SrcReg);
 
+/// handleLiveInRegister - Create interval for a livein register.
+void handleLiveInRegister(MachineBasicBlock* mbb, LiveInterval interval);
+
 /// Return true if the two specified registers belong to different
 /// register classes.  The registers may be either phys or virt regs.
 bool differingRegisterClasses(unsigned RegA, unsigned RegB) const;
@@ -241,11 +250,16 @@
 bool AdjustCopiesBackFrom(LiveInterval IntA, LiveInterval IntB,
   MachineInstr *CopyMI);
 
-bool overlapsAliases(const LiveInterval *lhs,
- const LiveInterval *rhs) const;
+/// hasRegisterUse - Returns true if there is any use of the specific
+/// reg between indexes Start and End.
+bool hasRegisterUse(unsigned Reg, unsigned Start, unsigned End);
 
 static LiveInterval createInterval(unsigned Reg);
 
+void removeInterval(unsigned Reg) {
+  r2iMap_.erase(Reg);
+}
+
 LiveInterval getOrCreateInterval(unsigned reg) {
   Reg2IntervalMap::iterator I = r2iMap_.find(reg);
   if (I == r2iMap_.end())



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h LiveVariables.h

2007-02-14 Thread Evan Cheng


Changes in directory llvm/include/llvm/CodeGen:

LiveIntervalAnalysis.h updated: 1.67 - 1.68
LiveVariables.h updated: 1.31 - 1.32
---
Log message:

Use BitVector instead of vectorbool which can be extremely slow.

---
Diffs of the changes:  (+5 -3)

 LiveIntervalAnalysis.h |3 ++-
 LiveVariables.h|5 +++--
 2 files changed, 5 insertions(+), 3 deletions(-)


Index: llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h
diff -u llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.67 
llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.68
--- llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.67   Wed Jan 31 
23:32:05 2007
+++ llvm/include/llvm/CodeGen/LiveIntervalAnalysis.hWed Feb 14 23:57:14 2007
@@ -22,6 +22,7 @@
 
 #include llvm/CodeGen/MachineFunctionPass.h
 #include llvm/CodeGen/LiveInterval.h
+#include llvm/ADT/BitVector.h
 #include llvm/ADT/IndexedMap.h
 
 namespace llvm {
@@ -54,7 +55,7 @@
 typedef IndexedMapunsigned Reg2RegMap;
 Reg2RegMap r2rMap_;
 
-std::vectorbool allocatableRegs_;
+BitVector allocatableRegs_;
 
   public:
 struct CopyRec {


Index: llvm/include/llvm/CodeGen/LiveVariables.h
diff -u llvm/include/llvm/CodeGen/LiveVariables.h:1.31 
llvm/include/llvm/CodeGen/LiveVariables.h:1.32
--- llvm/include/llvm/CodeGen/LiveVariables.h:1.31  Wed Nov 15 14:47:31 2006
+++ llvm/include/llvm/CodeGen/LiveVariables.h   Wed Feb 14 23:57:14 2007
@@ -30,6 +30,7 @@
 #define LLVM_CODEGEN_LIVEVARIABLES_H
 
 #include llvm/CodeGen/MachineFunctionPass.h
+#include llvm/ADT/BitVector.h
 #include map
 
 namespace llvm {
@@ -75,7 +76,7 @@
 /// through.  This is a bit set which uses the basic block number as an
 /// index.
 ///
-std::vectorbool AliveBlocks;
+BitVector AliveBlocks;
 
 /// Kills - List of MachineInstruction's which are the last use of this
 /// virtual register (kill it) in their basic block.
@@ -111,7 +112,7 @@
   /// are actually register allocatable by the target machine.  We can not 
track
   /// liveness for values that are not in this set.
   ///
-  std::vectorbool AllocatablePhysicalRegisters;
+  BitVector AllocatablePhysicalRegisters;
 
 private:   // Intermediate data structures
   const MRegisterInfo *RegInfo;



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h SSARegMap.h ScheduleDAG.h

2007-01-31 Thread Chris Lattner


Changes in directory llvm/include/llvm/CodeGen:

LiveIntervalAnalysis.h updated: 1.66 - 1.67
SSARegMap.h updated: 1.12 - 1.13
ScheduleDAG.h updated: 1.34 - 1.35
---
Log message:

rename DenseMap to IndexedMap.



---
Diffs of the changes:  (+6 -7)

 LiveIntervalAnalysis.h |4 ++--
 SSARegMap.h|4 ++--
 ScheduleDAG.h  |5 ++---
 3 files changed, 6 insertions(+), 7 deletions(-)


Index: llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h
diff -u llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.66 
llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.67
--- llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.66   Sat Dec 16 
23:15:12 2006
+++ llvm/include/llvm/CodeGen/LiveIntervalAnalysis.hWed Jan 31 23:32:05 2007
@@ -20,9 +20,9 @@
 #ifndef LLVM_CODEGEN_LIVEINTERVAL_ANALYSIS_H
 #define LLVM_CODEGEN_LIVEINTERVAL_ANALYSIS_H
 
-#include llvm/ADT/DenseMap.h
 #include llvm/CodeGen/MachineFunctionPass.h
 #include llvm/CodeGen/LiveInterval.h
+#include llvm/ADT/IndexedMap.h
 
 namespace llvm {
 
@@ -51,7 +51,7 @@
 typedef std::mapunsigned, LiveInterval Reg2IntervalMap;
 Reg2IntervalMap r2iMap_;
 
-typedef DenseMapunsigned Reg2RegMap;
+typedef IndexedMapunsigned Reg2RegMap;
 Reg2RegMap r2rMap_;
 
 std::vectorbool allocatableRegs_;


Index: llvm/include/llvm/CodeGen/SSARegMap.h
diff -u llvm/include/llvm/CodeGen/SSARegMap.h:1.12 
llvm/include/llvm/CodeGen/SSARegMap.h:1.13
--- llvm/include/llvm/CodeGen/SSARegMap.h:1.12  Wed Jan  5 10:27:34 2005
+++ llvm/include/llvm/CodeGen/SSARegMap.h   Wed Jan 31 23:32:05 2007
@@ -18,14 +18,14 @@
 #define LLVM_CODEGEN_SSAREGMAP_H
 
 #include llvm/Target/MRegisterInfo.h
-#include llvm/ADT/DenseMap.h
+#include llvm/ADT/IndexedMap.h
 
 namespace llvm {
 
 class TargetRegisterClass;
 
 class SSARegMap {
-  DenseMapconst TargetRegisterClass*, VirtReg2IndexFunctor RegClassMap;
+  IndexedMapconst TargetRegisterClass*, VirtReg2IndexFunctor RegClassMap;
   unsigned NextRegNum;
 
  public:


Index: llvm/include/llvm/CodeGen/ScheduleDAG.h
diff -u llvm/include/llvm/CodeGen/ScheduleDAG.h:1.34 
llvm/include/llvm/CodeGen/ScheduleDAG.h:1.35
--- llvm/include/llvm/CodeGen/ScheduleDAG.h:1.34Fri Jan 26 15:22:28 2007
+++ llvm/include/llvm/CodeGen/ScheduleDAG.h Wed Jan 31 23:32:05 2007
@@ -16,8 +16,7 @@
 #define LLVM_CODEGEN_SCHEDULEDAG_H
 
 #include llvm/CodeGen/SelectionDAG.h
-
-#include set
+#include llvm/ADT/SmallSet.h
 
 namespace llvm {
   struct InstrStage;
@@ -183,7 +182,7 @@
   // represent noop instructions.
 std::mapSDNode*, SUnit* SUnitMap;   // SDNode to SUnit mapping (n - 1).
 std::vectorSUnit SUnits;// The scheduling units.
-std::setSDNode* CommuteSet; // Nodes the should be commuted.
+SmallSetSDNode*, 16 CommuteSet; // Nodes the should be commuted.
 
 ScheduleDAG(SelectionDAG dag, MachineBasicBlock *bb,
 const TargetMachine tm)



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h

2006-11-15 Thread Bill Wendling


Changes in directory llvm/include/llvm/CodeGen:

LiveIntervalAnalysis.h updated: 1.64 - 1.65
---
Log message:

Added a new method CreateNewLiveInterval which, given a list of
LiveRanges, creates a new LiveInterval from them. The LiveRanges should
have existed already in another LiveInterval, but removed.


---
Diffs of the changes:  (+5 -0)

 LiveIntervalAnalysis.h |5 +
 1 files changed, 5 insertions(+)


Index: llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h
diff -u llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.64 
llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.65
--- llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.64   Thu Sep 14 
22:57:23 2006
+++ llvm/include/llvm/CodeGen/LiveIntervalAnalysis.hWed Nov 15 20:41:50 2006
@@ -148,6 +148,11 @@
  VirtRegMap vrm,
  int slot);
 
+/// CreateNewLiveInterval - Create a new live interval with the given live
+/// ranges. The new live interval will have an infinite spill weight.
+LiveInterval CreateNewLiveInterval(const LiveInterval *LI,
+const std::vectorLiveRange LRs);
+
 virtual void getAnalysisUsage(AnalysisUsage AU) const;
 virtual void releaseMemory();
 



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h MachineFunction.h

2006-09-14 Thread Chris Lattner


Changes in directory llvm/include/llvm/CodeGen:

LiveIntervalAnalysis.h updated: 1.61 - 1.62
MachineFunction.h updated: 1.60 - 1.61
---
Log message:

Remove dead methods, add getNumBlockIDs() method


---
Diffs of the changes:  (+25 -10)

 LiveIntervalAnalysis.h |   26 +++---
 MachineFunction.h  |9 ++---
 2 files changed, 25 insertions(+), 10 deletions(-)


Index: llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h
diff -u llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.61 
llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.62
--- llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.61   Sun Sep  3 
03:07:11 2006
+++ llvm/include/llvm/CodeGen/LiveIntervalAnalysis.hThu Sep 14 01:40:48 2006
@@ -38,6 +38,10 @@
 const TargetInstrInfo* tii_;
 LiveVariables* lv_;
 
+/// MBB2IdxMap - The index of the first instruction in the specified basic
+/// block.
+std::vectorunsigned MBB2IdxMap;
+
 typedef std::mapMachineInstr*, unsigned Mi2IndexMap;
 Mi2IndexMap mi2iMap_;
 
@@ -113,6 +117,17 @@
   return I-second;
 }
 
+/// getMBBStartIdx - Return the base index of the first instruction in the
+/// specified MachineBasicBlock.
+unsigned getMBBStartIdx(MachineBasicBlock *MBB) const {
+  return getMBBStartIdx(MBB-getNumber());
+}
+
+unsigned getMBBStartIdx(unsigned MBBNo) const {
+  assert(MBBNo  MBB2IdxMap.size()  Invalid MBB number!);
+  return MBB2IdxMap[MBBNo];
+}
+
 /// getInstructionIndex - returns the base index of instr
 unsigned getInstructionIndex(MachineInstr* instr) const {
   Mi2IndexMap::const_iterator it = mi2iMap_.find(instr);
@@ -128,7 +143,7 @@
  index does not correspond to an instruction);
   return i2miMap_[index];
 }
-
+
 std::vectorLiveInterval* addIntervalsForSpills(const LiveInterval i,
  VirtRegMap vrm,
  int slot);
@@ -155,12 +170,17 @@
   }
 }
   
-/// computeIntervals - compute live intervals
-void computeIntervals();
+/// computeIntervals - Compute live intervals.  This returns a vector of 
all
+/// the two-address instructions to the caller.
+void computeIntervals(std::vectorMachineInstr* TwoAddrInsts);
 
 /// joinIntervals - join compatible live intervals
 void joinIntervals();
 
+/// HandleTwoAddressInsts - Arrange for the specified list of 2-addr
+/// instructions to have their src/dst regs allocated to the same register.
+void HandleTwoAddressInsts(const std::vectorMachineInstr* TwoAddrInsts);
+
 /// CopyCoallesceInMBB - Coallsece copies in the specified MBB, putting
 /// copies that cannot yet be coallesced into the TryAgain list.
 void CopyCoallesceInMBB(MachineBasicBlock *MBB,


Index: llvm/include/llvm/CodeGen/MachineFunction.h
diff -u llvm/include/llvm/CodeGen/MachineFunction.h:1.60 
llvm/include/llvm/CodeGen/MachineFunction.h:1.61
--- llvm/include/llvm/CodeGen/MachineFunction.h:1.60Thu Aug 17 17:00:07 2006
+++ llvm/include/llvm/CodeGen/MachineFunction.h Thu Sep 14 01:40:48 2006
@@ -223,13 +223,8 @@
 return MBBNumbering[N];
   }
 
-  /// getLastBlock - Returns the MachineBasicBlock with the greatest number
-  MachineBasicBlock *getLastBlock() {
-return MBBNumbering.back();
-  }
-  const MachineBasicBlock *getLastBlock() const {
-return MBBNumbering.back();
-  }
+  /// getNumBlockIDs - Return the number of MBB ID's allocated.
+  unsigned getNumBlockIDs() const { return MBBNumbering.size(); }
   
   /// print - Print out the MachineFunction in a format suitable for debugging
   /// to the specified stream.



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h

2006-09-14 Thread Chris Lattner


Changes in directory llvm/include/llvm/CodeGen:

LiveIntervalAnalysis.h updated: 1.62 - 1.63
---
Log message:

revert accidentally committed file


---
Diffs of the changes:  (+3 -23)

 LiveIntervalAnalysis.h |   26 +++---
 1 files changed, 3 insertions(+), 23 deletions(-)


Index: llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h
diff -u llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.62 
llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.63
--- llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.62   Thu Sep 14 
01:40:48 2006
+++ llvm/include/llvm/CodeGen/LiveIntervalAnalysis.hThu Sep 14 01:42:17 2006
@@ -38,10 +38,6 @@
 const TargetInstrInfo* tii_;
 LiveVariables* lv_;
 
-/// MBB2IdxMap - The index of the first instruction in the specified basic
-/// block.
-std::vectorunsigned MBB2IdxMap;
-
 typedef std::mapMachineInstr*, unsigned Mi2IndexMap;
 Mi2IndexMap mi2iMap_;
 
@@ -117,17 +113,6 @@
   return I-second;
 }
 
-/// getMBBStartIdx - Return the base index of the first instruction in the
-/// specified MachineBasicBlock.
-unsigned getMBBStartIdx(MachineBasicBlock *MBB) const {
-  return getMBBStartIdx(MBB-getNumber());
-}
-
-unsigned getMBBStartIdx(unsigned MBBNo) const {
-  assert(MBBNo  MBB2IdxMap.size()  Invalid MBB number!);
-  return MBB2IdxMap[MBBNo];
-}
-
 /// getInstructionIndex - returns the base index of instr
 unsigned getInstructionIndex(MachineInstr* instr) const {
   Mi2IndexMap::const_iterator it = mi2iMap_.find(instr);
@@ -143,7 +128,7 @@
  index does not correspond to an instruction);
   return i2miMap_[index];
 }
-
+
 std::vectorLiveInterval* addIntervalsForSpills(const LiveInterval i,
  VirtRegMap vrm,
  int slot);
@@ -170,17 +155,12 @@
   }
 }
   
-/// computeIntervals - Compute live intervals.  This returns a vector of 
all
-/// the two-address instructions to the caller.
-void computeIntervals(std::vectorMachineInstr* TwoAddrInsts);
+/// computeIntervals - compute live intervals
+void computeIntervals();
 
 /// joinIntervals - join compatible live intervals
 void joinIntervals();
 
-/// HandleTwoAddressInsts - Arrange for the specified list of 2-addr
-/// instructions to have their src/dst regs allocated to the same register.
-void HandleTwoAddressInsts(const std::vectorMachineInstr* TwoAddrInsts);
-
 /// CopyCoallesceInMBB - Coallsece copies in the specified MBB, putting
 /// copies that cannot yet be coallesced into the TryAgain list.
 void CopyCoallesceInMBB(MachineBasicBlock *MBB,



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h

2006-09-14 Thread Chris Lattner


Changes in directory llvm/include/llvm/CodeGen:

LiveIntervalAnalysis.h updated: 1.63 - 1.64
---
Log message:

Keep track of the start of MBB's in a separate map from instructions.  This
is faster and is needed for future improvements.


---
Diffs of the changes:  (+17 -2)

 LiveIntervalAnalysis.h |   19 +--
 1 files changed, 17 insertions(+), 2 deletions(-)


Index: llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h
diff -u llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.63 
llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.64
--- llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.63   Thu Sep 14 
01:42:17 2006
+++ llvm/include/llvm/CodeGen/LiveIntervalAnalysis.hThu Sep 14 22:57:23 2006
@@ -38,6 +38,10 @@
 const TargetInstrInfo* tii_;
 LiveVariables* lv_;
 
+/// MBB2IdxMap - The index of the first instruction in the specified basic
+/// block.
+std::vectorunsigned MBB2IdxMap;
+
 typedef std::mapMachineInstr*, unsigned Mi2IndexMap;
 Mi2IndexMap mi2iMap_;
 
@@ -113,6 +117,17 @@
   return I-second;
 }
 
+/// getMBBStartIdx - Return the base index of the first instruction in the
+/// specified MachineBasicBlock.
+unsigned getMBBStartIdx(MachineBasicBlock *MBB) const {
+  return getMBBStartIdx(MBB-getNumber());
+}
+
+unsigned getMBBStartIdx(unsigned MBBNo) const {
+  assert(MBBNo  MBB2IdxMap.size()  Invalid MBB number!);
+  return MBB2IdxMap[MBBNo];
+}
+
 /// getInstructionIndex - returns the base index of instr
 unsigned getInstructionIndex(MachineInstr* instr) const {
   Mi2IndexMap::const_iterator it = mi2iMap_.find(instr);
@@ -128,7 +143,7 @@
  index does not correspond to an instruction);
   return i2miMap_[index];
 }
-
+
 std::vectorLiveInterval* addIntervalsForSpills(const LiveInterval i,
  VirtRegMap vrm,
  int slot);
@@ -155,7 +170,7 @@
   }
 }
   
-/// computeIntervals - compute live intervals
+/// computeIntervals - Compute live intervals.
 void computeIntervals();
 
 /// joinIntervals - join compatible live intervals



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h

2006-09-03 Thread Chris Lattner


Changes in directory llvm/include/llvm/CodeGen:

LiveIntervalAnalysis.h updated: 1.60 - 1.61
---
Log message:

Avoid beating on the mi2i map when we know the answer already.


---
Diffs of the changes:  (+6 -4)

 LiveIntervalAnalysis.h |   10 ++
 1 files changed, 6 insertions(+), 4 deletions(-)


Index: llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h
diff -u llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.60 
llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.61
--- llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.60   Sat Sep  2 
17:27:29 2006
+++ llvm/include/llvm/CodeGen/LiveIntervalAnalysis.hSun Sep  3 03:07:11 2006
@@ -190,20 +190,22 @@
 /// handleRegisterDef - update intervals for a register def
 /// (calls handlePhysicalRegisterDef and
 /// handleVirtualRegisterDef)
-void handleRegisterDef(MachineBasicBlock* mbb,
-   MachineBasicBlock::iterator mi,
+void handleRegisterDef(MachineBasicBlock *MBB,
+   MachineBasicBlock::iterator MI, unsigned MIIdx,
unsigned reg);
 
 /// handleVirtualRegisterDef - update intervals for a virtual
 /// register def
-void handleVirtualRegisterDef(MachineBasicBlock* mbb,
-  MachineBasicBlock::iterator mi,
+void handleVirtualRegisterDef(MachineBasicBlock *MBB,
+  MachineBasicBlock::iterator MI,
+  unsigned MIIdx,
   LiveInterval interval);
 
 /// handlePhysicalRegisterDef - update intervals for a physical register
 /// def.
 void handlePhysicalRegisterDef(MachineBasicBlock* mbb,
MachineBasicBlock::iterator mi,
+   unsigned MIIdx,
LiveInterval interval,
unsigned SrcReg);
 



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h

2006-09-02 Thread Chris Lattner


Changes in directory llvm/include/llvm/CodeGen:

LiveIntervalAnalysis.h updated: 1.59 - 1.60
---
Log message:

Fix a typo pointed out by Gabor


---
Diffs of the changes:  (+1 -1)

 LiveIntervalAnalysis.h |2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)


Index: llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h
diff -u llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.59 
llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.60
--- llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.59   Sat Sep  2 
00:32:53 2006
+++ llvm/include/llvm/CodeGen/LiveIntervalAnalysis.hSat Sep  2 17:27:29 2006
@@ -180,7 +180,7 @@
 /// below to update aliases.
 bool JoinIntervals(LiveInterval LHS, LiveInterval RHS);
 
-/// SimpleJoin - Attempt to joint the specified interval into this one. The
+/// SimpleJoin - Attempt to join the specified interval into this one. The
 /// caller of this method must guarantee that the RHS only contains a 
single
 /// value number and that the RHS is not defined by a copy from this
 /// interval.  This returns false if the intervals are not joinable, or it



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h

2006-09-01 Thread Chris Lattner


Changes in directory llvm/include/llvm/CodeGen:

LiveIntervalAnalysis.h updated: 1.57 - 1.58
---
Log message:

new method


---
Diffs of the changes:  (+7 -0)

 LiveIntervalAnalysis.h |7 +++
 1 files changed, 7 insertions(+)


Index: llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h
diff -u llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.57 
llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.58
--- llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.57   Thu Aug 31 
23:02:42 2006
+++ llvm/include/llvm/CodeGen/LiveIntervalAnalysis.hSat Sep  2 00:26:01 2006
@@ -168,6 +168,13 @@
 /// below to update aliases.
 bool JoinIntervals(LiveInterval LHS, LiveInterval RHS);
 
+/// SimpleJoin - Attempt to joint the specified interval into this one. The
+/// caller of this method must guarantee that the RHS only contains a 
single
+/// value number and that the RHS is not defined by a copy from this
+/// interval.  This returns false if the intervals are not joinable, or it
+/// joins them and returns true.
+bool SimpleJoin(LiveInterval LHS, LiveInterval RHS);
+
 /// handleRegisterDef - update intervals for a register def
 /// (calls handlePhysicalRegisterDef and
 /// handleVirtualRegisterDef)



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h

2006-09-01 Thread Chris Lattner


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.hSat Sep  2 00:32:53 2006
@@ -53,6 +53,17 @@
 std::vectorbool 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::vectorCopyRec 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



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h

2006-05-12 Thread Evan Cheng


Changes in directory llvm/include/llvm/CodeGen:

LiveIntervalAnalysis.h updated: 1.52 - 1.53
---
Log message:

Backing out fix for PR770: http://llvm.cs.uiuc.edu/PR770 . Need to re-apply it 
after live range splitting is possible

---
Diffs of the changes:  (+4 -5)

 LiveIntervalAnalysis.h |9 -
 1 files changed, 4 insertions(+), 5 deletions(-)


Index: llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h
diff -u llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.52 
llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.53
--- llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.52   Tue May  9 
01:37:48 2006
+++ llvm/include/llvm/CodeGen/LiveIntervalAnalysis.hFri May 12 01:06:34 2006
@@ -167,11 +167,10 @@
unsigned SrcReg, unsigned DestReg,
bool isLiveIn = false);
 
-/// Return true if the two specified registers belong to the same or
-/// compatible register classes.  The registers may be either phys or
-/// virt regs.
-bool compatibleRegisterClasses(unsigned RegA, unsigned RegB,
-   bool Swap) const;
+/// Return true if the two specified registers belong to different
+/// register classes.  The registers may be either phys or virt regs.
+bool differingRegisterClasses(unsigned RegA, unsigned RegB) const;
+
 
 bool AdjustIfAllOverlappingRangesAreCopiesFrom(LiveInterval IntA,
LiveInterval IntB,



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h

2006-05-09 Thread Evan Cheng


Changes in directory llvm/include/llvm/CodeGen:

LiveIntervalAnalysis.h updated: 1.51 - 1.52
---
Log message:

PR 770: http://llvm.cs.uiuc.edu/PR770  - permit coallescing of registers in 
subset register classes.


---
Diffs of the changes:  (+5 -3)

 LiveIntervalAnalysis.h |8 +---
 1 files changed, 5 insertions(+), 3 deletions(-)


Index: llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h
diff -u llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.51 
llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.52
--- llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.51   Wed Feb 22 
10:23:43 2006
+++ llvm/include/llvm/CodeGen/LiveIntervalAnalysis.hTue May  9 01:37:48 2006
@@ -167,9 +167,11 @@
unsigned SrcReg, unsigned DestReg,
bool isLiveIn = false);
 
-/// Return true if the two specified registers belong to different
-/// register classes.  The registers may be either phys or virt regs.
-bool differingRegisterClasses(unsigned RegA, unsigned RegB) const;
+/// Return true if the two specified registers belong to the same or
+/// compatible register classes.  The registers may be either phys or
+/// virt regs.
+bool compatibleRegisterClasses(unsigned RegA, unsigned RegB,
+   bool Swap) const;
 
 bool AdjustIfAllOverlappingRangesAreCopiesFrom(LiveInterval IntA,
LiveInterval IntB,



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h

2006-01-29 Thread Chris Lattner


Changes in directory llvm/include/llvm/CodeGen:

LiveIntervalAnalysis.h updated: 1.49 - 1.50
---
Log message:

revert an accidental commit


---
Diffs of the changes:  (+1 -5)

 LiveIntervalAnalysis.h |6 +-
 1 files changed, 1 insertion(+), 5 deletions(-)


Index: llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h
diff -u llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.49 
llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.50
--- llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.49   Sun Jan 29 
00:24:40 2006
+++ llvm/include/llvm/CodeGen/LiveIntervalAnalysis.hSun Jan 29 01:59:37 2006
@@ -148,9 +148,7 @@
 /// handleVirtualRegisterDef)
 void handleRegisterDef(MachineBasicBlock* mbb,
MachineBasicBlock::iterator mi,
-   unsigned reg,
-   std::mapstd::pairunsigned,unsigned, 
-unsigned PhysRegValueMap);
+   unsigned reg);
 
 /// handleVirtualRegisterDef - update intervals for a virtual
 /// register def
@@ -167,8 +165,6 @@
MachineBasicBlock::iterator mi,
LiveInterval interval,
unsigned SrcReg, unsigned DestReg,
-   std::mapstd::pairunsigned,unsigned, 
-unsigned *PhysRegValueMap,
bool isLiveIn = false);
 
 /// Return true if the two specified registers belong to different



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits