diff options
author | Evan Cheng <evan.cheng@apple.com> | 2007-03-13 01:20:42 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2007-03-13 01:20:42 +0000 |
commit | e8308df0b9b34089bb6040f6902ba121441bdf3e (patch) | |
tree | 73cc7a0dce695baf11272d574972fad4b86e868b | |
parent | c289faf01559584be1ead2574631d54940a4dd4f (diff) |
Implement getTargetLowering() or else LSR won't be using ARM specific hooks.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35077 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Target/ARM/ARMTargetMachine.cpp | 3 | ||||
-rw-r--r-- | lib/Target/ARM/ARMTargetMachine.h | 6 |
2 files changed, 8 insertions, 1 deletions
diff --git a/lib/Target/ARM/ARMTargetMachine.cpp b/lib/Target/ARM/ARMTargetMachine.cpp index 0b22c15ba3..3815875b22 100644 --- a/lib/Target/ARM/ARMTargetMachine.cpp +++ b/lib/Target/ARM/ARMTargetMachine.cpp @@ -62,7 +62,8 @@ ARMTargetMachine::ARMTargetMachine(const Module &M, const std::string &FS, "i16:16:32-i8:8:32-i1:8:32-a:0:32") : std::string("e-p:32:32-f64:64:64-i64:64:64"))), InstrInfo(Subtarget), - FrameInfo(Subtarget) {} + FrameInfo(Subtarget), + TLInfo(*this) {} unsigned ARMTargetMachine::getModuleMatchQuality(const Module &M) { std::string TT = M.getTargetTriple(); diff --git a/lib/Target/ARM/ARMTargetMachine.h b/lib/Target/ARM/ARMTargetMachine.h index 7f45fb6b6c..a50275c675 100644 --- a/lib/Target/ARM/ARMTargetMachine.h +++ b/lib/Target/ARM/ARMTargetMachine.h @@ -21,6 +21,7 @@ #include "ARMInstrInfo.h" #include "ARMFrameInfo.h" #include "ARMSubtarget.h" +#include "ARMISelLowering.h" namespace llvm { @@ -31,6 +32,8 @@ class ARMTargetMachine : public LLVMTargetMachine { const TargetData DataLayout; // Calculates type size & alignment ARMInstrInfo InstrInfo; ARMFrameInfo FrameInfo; + ARMTargetLowering TLInfo; + public: ARMTargetMachine(const Module &M, const std::string &FS, bool isThumb = false); @@ -41,6 +44,9 @@ public: } virtual const TargetData *getTargetData() const { return &DataLayout; } virtual const ARMSubtarget *getSubtargetImpl() const { return &Subtarget; } + virtual ARMTargetLowering *getTargetLowering() const { + return const_cast<ARMTargetLowering*>(&TLInfo); + } static unsigned getModuleMatchQuality(const Module &M); virtual const TargetAsmInfo *createTargetAsmInfo() const; |