[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