diff options
author | Eric Christopher <echristo@gmail.com> | 2014-06-26 19:30:02 +0000 |
---|---|---|
committer | Eric Christopher <echristo@gmail.com> | 2014-06-26 19:30:02 +0000 |
commit | 80b24ef42900acb0488d6b5e07e8691e829b8ca5 (patch) | |
tree | faaf4680afb088e59c11c94a42fa66b24102add5 /llvm/lib/Target/ARM/ARMSubtarget.h | |
parent | 45fb7b6397e1bb9c97efa89943592a9b8a91d97b (diff) | |
download | bcm5719-llvm-80b24ef42900acb0488d6b5e07e8691e829b8ca5.tar.gz bcm5719-llvm-80b24ef42900acb0488d6b5e07e8691e829b8ca5.zip |
Move all of the ARM subtarget features down onto the subtarget
rather than the target machine.
llvm-svn: 211799
Diffstat (limited to 'llvm/lib/Target/ARM/ARMSubtarget.h')
-rw-r--r-- | llvm/lib/Target/ARM/ARMSubtarget.h | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/llvm/lib/Target/ARM/ARMSubtarget.h b/llvm/lib/Target/ARM/ARMSubtarget.h index c13ef865389..644d260b0db 100644 --- a/llvm/lib/Target/ARM/ARMSubtarget.h +++ b/llvm/lib/Target/ARM/ARMSubtarget.h @@ -14,8 +14,17 @@ #ifndef ARMSUBTARGET_H #define ARMSUBTARGET_H + +#include "ARMFrameLowering.h" +#include "ARMISelLowering.h" +#include "ARMInstrInfo.h" #include "ARMJITInfo.h" #include "ARMSelectionDAGInfo.h" +#include "ARMSubtarget.h" +#include "Thumb1FrameLowering.h" +#include "Thumb1InstrInfo.h" +#include "Thumb2InstrInfo.h" +#include "ARMJITInfo.h" #include "MCTargetDesc/ARMMCTargetDesc.h" #include "llvm/ADT/Triple.h" #include "llvm/IR/DataLayout.h" @@ -236,7 +245,7 @@ protected: /// of the specified triple. /// ARMSubtarget(const std::string &TT, const std::string &CPU, - const std::string &FS, bool IsLittle, + const std::string &FS, TargetMachine &TM, bool IsLittle, const TargetOptions &Options); /// getMaxInlineSizeThreshold - Returns the maximum memset / memcpy size @@ -258,11 +267,22 @@ protected: const DataLayout *getDataLayout() const { return &DL; } const ARMSelectionDAGInfo *getSelectionDAGInfo() const { return &TSInfo; } ARMJITInfo *getJITInfo() { return &JITInfo; } + const ARMBaseInstrInfo *getInstrInfo() const { return InstrInfo.get(); } + const ARMTargetLowering *getTargetLowering() const { return &TLInfo; } + const ARMFrameLowering *getFrameLowering() const { return FrameLowering.get(); } + const ARMBaseRegisterInfo *getRegisterInfo() const { + return &InstrInfo->getRegisterInfo(); + } private: const DataLayout DL; ARMSelectionDAGInfo TSInfo; ARMJITInfo JITInfo; + // Either Thumb1InstrInfo or Thumb2InstrInfo. + std::unique_ptr<ARMBaseInstrInfo> InstrInfo; + ARMTargetLowering TLInfo; + // Either Thumb1FrameLowering or ARMFrameLowering. + std::unique_ptr<ARMFrameLowering> FrameLowering; void initializeEnvironment(); void resetSubtargetFeatures(StringRef CPU, StringRef FS); |