[llvm-commits] CVS: llvm/lib/Target/X86/X86RegisterInfo.h X86RegisterInfo.cpp

Evan Cheng evan.cheng at apple.com
Tue Mar 20 01:09:55 PDT 2007



Changes in directory llvm/lib/Target/X86:

X86RegisterInfo.h updated: 1.50 -> 1.51
X86RegisterInfo.cpp updated: 1.207 -> 1.208
---
Log message:

Added MRegisterInfo hook to re-materialize an instruction.

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

 X86RegisterInfo.cpp |   10 ++++++++++
 X86RegisterInfo.h   |    3 +++
 2 files changed, 13 insertions(+)


Index: llvm/lib/Target/X86/X86RegisterInfo.h
diff -u llvm/lib/Target/X86/X86RegisterInfo.h:1.50 llvm/lib/Target/X86/X86RegisterInfo.h:1.51
--- llvm/lib/Target/X86/X86RegisterInfo.h:1.50	Tue Feb 27 18:20:26 2007
+++ llvm/lib/Target/X86/X86RegisterInfo.h	Tue Mar 20 03:09:38 2007
@@ -58,6 +58,9 @@
                     MachineBasicBlock::iterator MI,
                     unsigned DestReg, unsigned SrcReg,
                     const TargetRegisterClass *RC) const;
+ 
+  void reMaterialize(MachineBasicBlock &MBB, MachineBasicBlock::iterator MI,
+                     unsigned DestReg, const MachineInstr *Orig) const;
 
   /// foldMemoryOperand - If this target supports it, fold a load or store of
   /// the specified stack slot into the specified machine instruction for the


Index: llvm/lib/Target/X86/X86RegisterInfo.cpp
diff -u llvm/lib/Target/X86/X86RegisterInfo.cpp:1.207 llvm/lib/Target/X86/X86RegisterInfo.cpp:1.208
--- llvm/lib/Target/X86/X86RegisterInfo.cpp:1.207	Thu Mar  8 16:09:11 2007
+++ llvm/lib/Target/X86/X86RegisterInfo.cpp	Tue Mar 20 03:09:38 2007
@@ -167,6 +167,16 @@
   BuildMI(MBB, MI, TII.get(Opc), DestReg).addReg(SrcReg);
 }
 
+
+void X86RegisterInfo::reMaterialize(MachineBasicBlock &MBB,
+                                    MachineBasicBlock::iterator I,
+                                    unsigned DestReg,
+                                    const MachineInstr *Orig) const {
+  MachineInstr *MI = Orig->clone();
+  MI->getOperand(0).setReg(DestReg);
+  MBB.insert(I, MI);
+}
+
 static MachineInstr *FuseTwoAddrInst(unsigned Opcode, unsigned FrameIndex,
                                      MachineInstr *MI,
                                      const TargetInstrInfo &TII) {






More information about the llvm-commits mailing list