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