[llvm-commits] CVS: llvm/lib/Target/IA64/IA64.h IA64AsmPrinter.cpp IA64Bundling.cpp IA64ISelDAGToDAG.cpp IA64TargetMachine.cpp IA64TargetMachine.h

Evan Cheng evan.cheng at apple.com
Mon Mar 13 15:20:51 PST 2006



Changes in directory llvm/lib/Target/IA64:

IA64.h updated: 1.4 -> 1.5
IA64AsmPrinter.cpp updated: 1.24 -> 1.25
IA64Bundling.cpp updated: 1.2 -> 1.3
IA64ISelDAGToDAG.cpp updated: 1.37 -> 1.38
IA64TargetMachine.cpp updated: 1.11 -> 1.12
IA64TargetMachine.h updated: 1.5 -> 1.6
---
Log message:

Added getTargetLowering() to TargetMachine. Refactored targets to support this.


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

 IA64.h                |    8 ++++----
 IA64AsmPrinter.cpp    |    3 ++-
 IA64Bundling.cpp      |    6 +++---
 IA64ISelDAGToDAG.cpp  |    7 ++++---
 IA64TargetMachine.cpp |    3 ++-
 IA64TargetMachine.h   |   11 +++++++----
 6 files changed, 22 insertions(+), 16 deletions(-)


Index: llvm/lib/Target/IA64/IA64.h
diff -u llvm/lib/Target/IA64/IA64.h:1.4 llvm/lib/Target/IA64/IA64.h:1.5
--- llvm/lib/Target/IA64/IA64.h:1.4	Tue Jan 24 20:23:38 2006
+++ llvm/lib/Target/IA64/IA64.h	Mon Mar 13 17:20:37 2006
@@ -18,26 +18,26 @@
 
 namespace llvm {
 
-class TargetMachine;
+class IA64TargetMachine;
 class FunctionPass;
 class IntrinsicLowering;
 
 /// createIA64DAGToDAGInstructionSelector - This pass converts an LLVM
 /// function into IA64 machine code in a sane, DAG->DAG transform.
 ///
-FunctionPass *createIA64DAGToDAGInstructionSelector(TargetMachine &TM);
+FunctionPass *createIA64DAGToDAGInstructionSelector(IA64TargetMachine &TM);
 
 /// createIA64BundlingPass - This pass adds stop bits and bundles
 /// instructions.
 ///
-FunctionPass *createIA64BundlingPass(TargetMachine &TM);
+FunctionPass *createIA64BundlingPass(IA64TargetMachine &TM);
 
 /// createIA64CodePrinterPass - Returns a pass that prints the IA64
 /// assembly code for a MachineFunction to the given output stream,
 /// using the given target machine description.  This should work
 /// regardless of whether the function is in SSA form.
 ///
-FunctionPass *createIA64CodePrinterPass(std::ostream &o,TargetMachine &tm);
+FunctionPass *createIA64CodePrinterPass(std::ostream &o, IA64TargetMachine &tm);
 
 } // End llvm namespace
 


Index: llvm/lib/Target/IA64/IA64AsmPrinter.cpp
diff -u llvm/lib/Target/IA64/IA64AsmPrinter.cpp:1.24 llvm/lib/Target/IA64/IA64AsmPrinter.cpp:1.25
--- llvm/lib/Target/IA64/IA64AsmPrinter.cpp:1.24	Thu Mar  9 00:14:35 2006
+++ llvm/lib/Target/IA64/IA64AsmPrinter.cpp	Mon Mar 13 17:20:37 2006
@@ -374,7 +374,8 @@
 /// assembly code for a MachineFunction to the given output stream, using
 /// the given target machine description.
 ///
-FunctionPass *llvm::createIA64CodePrinterPass(std::ostream &o,TargetMachine &tm){
+FunctionPass *llvm::createIA64CodePrinterPass(std::ostream &o,
+                                              IA64TargetMachine &tm) {
   return new IA64AsmPrinter(o, tm);
 }
 


Index: llvm/lib/Target/IA64/IA64Bundling.cpp
diff -u llvm/lib/Target/IA64/IA64Bundling.cpp:1.2 llvm/lib/Target/IA64/IA64Bundling.cpp:1.3
--- llvm/lib/Target/IA64/IA64Bundling.cpp:1.2	Thu Jan 26 03:08:31 2006
+++ llvm/lib/Target/IA64/IA64Bundling.cpp	Mon Mar 13 17:20:37 2006
@@ -37,9 +37,9 @@
     /// Target machine description which we query for reg. names, data
     /// layout, etc.
     ///
-    TargetMachine &TM;
+    IA64TargetMachine &TM;
 
-    IA64BundlingPass(TargetMachine &tm) : TM(tm) { }
+    IA64BundlingPass(IA64TargetMachine &tm) : TM(tm) { }
 
     virtual const char *getPassName() const {
       return "IA64 (Itanium) Bundling Pass";
@@ -64,7 +64,7 @@
 /// createIA64BundlingPass - Returns a pass that adds STOP (;;) instructions
 /// and arranges the result into bundles.
 ///
-FunctionPass *llvm::createIA64BundlingPass(TargetMachine &tm) {
+FunctionPass *llvm::createIA64BundlingPass(IA64TargetMachine &tm) {
   return new IA64BundlingPass(tm);
 }
 


Index: llvm/lib/Target/IA64/IA64ISelDAGToDAG.cpp
diff -u llvm/lib/Target/IA64/IA64ISelDAGToDAG.cpp:1.37 llvm/lib/Target/IA64/IA64ISelDAGToDAG.cpp:1.38
--- llvm/lib/Target/IA64/IA64ISelDAGToDAG.cpp:1.37	Sat Feb 11 01:33:17 2006
+++ llvm/lib/Target/IA64/IA64ISelDAGToDAG.cpp	Mon Mar 13 17:20:37 2006
@@ -42,8 +42,8 @@
     IA64TargetLowering IA64Lowering;
     unsigned GlobalBaseReg;
   public:
-    IA64DAGToDAGISel(TargetMachine &TM)
-      : SelectionDAGISel(IA64Lowering), IA64Lowering(TM) {}
+    IA64DAGToDAGISel(IA64TargetMachine &TM)
+      : SelectionDAGISel(IA64Lowering), IA64Lowering(*TM.getTargetLowering()) {}
     
     virtual bool runOnFunction(Function &Fn) {
       // Make sure we re-emit a set of the global base reg if necessary
@@ -621,7 +621,8 @@
 /// createIA64DAGToDAGInstructionSelector - This pass converts a legalized DAG
 /// into an IA64-specific DAG, ready for instruction scheduling.
 ///
-FunctionPass *llvm::createIA64DAGToDAGInstructionSelector(TargetMachine &TM) {
+FunctionPass
+*llvm::createIA64DAGToDAGInstructionSelector(IA64TargetMachine &TM) {
   return new IA64DAGToDAGISel(TM);
 }
 


Index: llvm/lib/Target/IA64/IA64TargetMachine.cpp
diff -u llvm/lib/Target/IA64/IA64TargetMachine.cpp:1.11 llvm/lib/Target/IA64/IA64TargetMachine.cpp:1.12
--- llvm/lib/Target/IA64/IA64TargetMachine.cpp:1.11	Tue Jan 24 20:23:38 2006
+++ llvm/lib/Target/IA64/IA64TargetMachine.cpp	Mon Mar 13 17:20:37 2006
@@ -79,7 +79,8 @@
 IA64TargetMachine::IA64TargetMachine(const Module &M, IntrinsicLowering *IL,
                                      const std::string &FS)
   : TargetMachine("IA64", IL, true),
-    FrameInfo(TargetFrameInfo::StackGrowsDown, 16, 0) { // FIXME? check this stuff
+    FrameInfo(TargetFrameInfo::StackGrowsDown, 16, 0),
+    TLInfo(*this) { // FIXME? check this stuff
 }
 
 // addPassesToEmitFile - We currently use all of the same passes as the JIT


Index: llvm/lib/Target/IA64/IA64TargetMachine.h
diff -u llvm/lib/Target/IA64/IA64TargetMachine.h:1.5 llvm/lib/Target/IA64/IA64TargetMachine.h:1.6
--- llvm/lib/Target/IA64/IA64TargetMachine.h:1.5	Mon Nov  7 20:11:51 2005
+++ llvm/lib/Target/IA64/IA64TargetMachine.h	Mon Mar 13 17:20:37 2006
@@ -18,20 +18,23 @@
 #include "llvm/Target/TargetFrameInfo.h"
 #include "llvm/PassManager.h"
 #include "IA64InstrInfo.h"
+#include "IA64ISelLowering.h"
 
 namespace llvm {
 class IntrinsicLowering;
 
 class IA64TargetMachine : public TargetMachine {
-  IA64InstrInfo    InstrInfo;
-  TargetFrameInfo FrameInfo;
+  IA64InstrInfo      InstrInfo;
+  TargetFrameInfo    FrameInfo;
   //IA64JITInfo      JITInfo;
+  IA64TargetLowering TLInfo;
 public:
   IA64TargetMachine(const Module &M, IntrinsicLowering *IL,
                     const std::string &FS);
 
-  virtual const IA64InstrInfo     *getInstrInfo() const { return &InstrInfo; }
-  virtual const TargetFrameInfo  *getFrameInfo() const { return &FrameInfo; }
+  virtual const IA64InstrInfo      *getInstrInfo() const { return &InstrInfo; }
+  virtual const TargetFrameInfo    *getFrameInfo() const { return &FrameInfo; }
+  virtual       IA64TargetLowering *getTargetLowering()  { return &TLInfo; }
   virtual const MRegisterInfo    *getRegisterInfo() const {
     return &InstrInfo.getRegisterInfo();
   }






More information about the llvm-commits mailing list