diff options
author | Eric Christopher <echristo@gmail.com> | 2014-06-27 00:27:40 +0000 |
---|---|---|
committer | Eric Christopher <echristo@gmail.com> | 2014-06-27 00:27:40 +0000 |
commit | 061b8c389cfd602d8e94995773820ca3bf727bfc (patch) | |
tree | e1079524ae182845337e644b8f2e0a95f209d90d /lib/Target/Hexagon/HexagonTargetMachine.h | |
parent | 460f2ac45f03f026d051046de1377e3bf187b5a3 (diff) | |
download | llvm-061b8c389cfd602d8e94995773820ca3bf727bfc.tar.gz llvm-061b8c389cfd602d8e94995773820ca3bf727bfc.tar.bz2 llvm-061b8c389cfd602d8e94995773820ca3bf727bfc.tar.xz |
Move all of the hexagon subtarget dependent variables from the target
machine to the subtarget.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211824 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/Hexagon/HexagonTargetMachine.h')
-rw-r--r-- | lib/Target/Hexagon/HexagonTargetMachine.h | 29 |
1 files changed, 8 insertions, 21 deletions
diff --git a/lib/Target/Hexagon/HexagonTargetMachine.h b/lib/Target/Hexagon/HexagonTargetMachine.h index fa7b6d486f..d88178e052 100644 --- a/lib/Target/Hexagon/HexagonTargetMachine.h +++ b/lib/Target/Hexagon/HexagonTargetMachine.h @@ -14,12 +14,8 @@ #ifndef HexagonTARGETMACHINE_H #define HexagonTARGETMACHINE_H -#include "HexagonFrameLowering.h" -#include "HexagonISelLowering.h" #include "HexagonInstrInfo.h" -#include "HexagonSelectionDAGInfo.h" #include "HexagonSubtarget.h" -#include "llvm/IR/DataLayout.h" #include "llvm/Target/TargetMachine.h" namespace llvm { @@ -27,12 +23,7 @@ namespace llvm { class Module; class HexagonTargetMachine : public LLVMTargetMachine { - const DataLayout DL; // Calculates type size & alignment. HexagonSubtarget Subtarget; - HexagonInstrInfo InstrInfo; - HexagonTargetLowering TLInfo; - HexagonSelectionDAGInfo TSInfo; - HexagonFrameLowering FrameLowering; public: HexagonTargetMachine(const Target &T, StringRef TT,StringRef CPU, @@ -41,33 +32,29 @@ public: CodeGenOpt::Level OL); const HexagonInstrInfo *getInstrInfo() const override { - return &InstrInfo; + return getSubtargetImpl()->getInstrInfo(); } const HexagonSubtarget *getSubtargetImpl() const override { return &Subtarget; } const HexagonRegisterInfo *getRegisterInfo() const override { - return &InstrInfo.getRegisterInfo(); + return getSubtargetImpl()->getRegisterInfo(); } - const InstrItineraryData* getInstrItineraryData() const override { return &getSubtargetImpl()->getInstrItineraryData(); } - - const HexagonTargetLowering* getTargetLowering() const override { - return &TLInfo; + return getSubtargetImpl()->getTargetLowering(); } - const HexagonFrameLowering* getFrameLowering() const override { - return &FrameLowering; + return getSubtargetImpl()->getFrameLowering(); } - const HexagonSelectionDAGInfo* getSelectionDAGInfo() const override { - return &TSInfo; + return getSubtargetImpl()->getSelectionDAGInfo(); + } + const DataLayout *getDataLayout() const override { + return getSubtargetImpl()->getDataLayout(); } - - const DataLayout *getDataLayout() const override { return &DL; } static unsigned getModuleMatchQuality(const Module &M); TargetPassConfig *createPassConfig(PassManagerBase &PM) override; |