Changes in directory llvm/lib/Target/PowerPC:
PPCSubtarget.cpp updated: 1.14 -> 1.15 PPCSubtarget.h updated: 1.11 -> 1.12 PPCTargetMachine.cpp updated: 1.75 -> 1.76 PPCTargetMachine.h updated: 1.14 -> 1.15 --- Log message: Allow itineraries to be passed through the Target Machine. --- Diffs of the changes: (+21 -5) PPCSubtarget.cpp | 1 + PPCSubtarget.h | 9 +++++++++ PPCTargetMachine.cpp | 3 ++- PPCTargetMachine.h | 13 +++++++++---- 4 files changed, 21 insertions(+), 5 deletions(-) Index: llvm/lib/Target/PowerPC/PPCSubtarget.cpp diff -u llvm/lib/Target/PowerPC/PPCSubtarget.cpp:1.14 llvm/lib/Target/PowerPC/PPCSubtarget.cpp:1.15 --- llvm/lib/Target/PowerPC/PPCSubtarget.cpp:1.14 Wed Oct 26 12:30:34 2005 +++ llvm/lib/Target/PowerPC/PPCSubtarget.cpp Tue Nov 1 14:07:00 2005 @@ -71,6 +71,7 @@ PPCSubtarget::PPCSubtarget(const Module &M, const std::string &FS) : StackAlignment(16) + , InstrItins() , IsGigaProcessor(false) , Is64Bit(false) , Has64BitRegs(false) Index: llvm/lib/Target/PowerPC/PPCSubtarget.h diff -u llvm/lib/Target/PowerPC/PPCSubtarget.h:1.11 llvm/lib/Target/PowerPC/PPCSubtarget.h:1.12 --- llvm/lib/Target/PowerPC/PPCSubtarget.h:1.11 Wed Oct 26 13:07:50 2005 +++ llvm/lib/Target/PowerPC/PPCSubtarget.h Tue Nov 1 14:07:00 2005 @@ -14,6 +14,7 @@ #ifndef POWERPCSUBTARGET_H #define POWERPCSUBTARGET_H +#include "llvm/Target/TargetInstrItineraries.h" #include "llvm/Target/TargetSubtarget.h" #include <string> @@ -26,6 +27,9 @@ /// stackAlignment - The minimum alignment known to hold of the stack frame on /// entry to the function and which must be maintained by every function. unsigned StackAlignment; + + /// Selected instruction itineraries (one entry per itinerary class.) + InstrItineraryData InstrItins; /// Used by the ISel to turn in optimizations for POWER4-derived architectures bool IsGigaProcessor; @@ -49,6 +53,11 @@ /// stack frame on entry to the function and which must be maintained by every /// function for this subtarget. unsigned getStackAlignment() const { return StackAlignment; } + + /// getInstrItins - Return the instruction itineraies based on subtarget + /// selection. + const InstrItineraryData getInstrItineraryData() const { return InstrItins; } + bool hasFSQRT() const { return HasFSQRT; } bool has64BitRegs() const { return Has64BitRegs; } Index: llvm/lib/Target/PowerPC/PPCTargetMachine.cpp diff -u llvm/lib/Target/PowerPC/PPCTargetMachine.cpp:1.75 llvm/lib/Target/PowerPC/PPCTargetMachine.cpp:1.76 --- llvm/lib/Target/PowerPC/PPCTargetMachine.cpp:1.75 Mon Oct 17 19:28:58 2005 +++ llvm/lib/Target/PowerPC/PPCTargetMachine.cpp Tue Nov 1 14:07:00 2005 @@ -64,7 +64,8 @@ PPCTargetMachine::PPCTargetMachine(const Module &M, IntrinsicLowering *IL, const std::string &FS) : TargetMachine("PowerPC", IL, false, 4, 4, 4, 4, 4, 4, 2, 1, 1), - Subtarget(M, FS), FrameInfo(*this, false), JITInfo(*this) { + Subtarget(M, FS), FrameInfo(*this, false), JITInfo(*this), + InstrItins(Subtarget.getInstrItineraryData()) { if (TargetDefault == PPCTarget) { if (Subtarget.isAIX()) PPCTarget = TargetAIX; if (Subtarget.isDarwin()) PPCTarget = TargetDarwin; Index: llvm/lib/Target/PowerPC/PPCTargetMachine.h diff -u llvm/lib/Target/PowerPC/PPCTargetMachine.h:1.14 llvm/lib/Target/PowerPC/PPCTargetMachine.h:1.15 --- llvm/lib/Target/PowerPC/PPCTargetMachine.h:1.14 Sun Oct 16 00:39:50 2005 +++ llvm/lib/Target/PowerPC/PPCTargetMachine.h Tue Nov 1 14:07:00 2005 @@ -27,10 +27,11 @@ class IntrinsicLowering; class PPCTargetMachine : public TargetMachine { - PPCInstrInfo InstrInfo; - PPCSubtarget Subtarget; - PPCFrameInfo FrameInfo; - PPCJITInfo JITInfo; + PPCInstrInfo InstrInfo; + PPCSubtarget Subtarget; + PPCFrameInfo FrameInfo; + PPCJITInfo JITInfo; + InstrItineraryData InstrItins; public: PPCTargetMachine(const Module &M, IntrinsicLowering *IL, const std::string &FS); @@ -42,6 +43,10 @@ virtual const MRegisterInfo *getRegisterInfo() const { return &InstrInfo.getRegisterInfo(); } + virtual const InstrItineraryData getInstrItineraryData() const { + return InstrItins; + } + static unsigned getJITMatchQuality(); _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits