diff options
author | Eric Christopher <echristo@gmail.com> | 2014-06-13 00:20:39 +0000 |
---|---|---|
committer | Eric Christopher <echristo@gmail.com> | 2014-06-13 00:20:39 +0000 |
commit | f7a2d5e387de25af9711f04f253bc0e63fd988dd (patch) | |
tree | 7e4d8fc9ee8e7402d50694cc87db427ceb6ced17 /lib/Target/ARM | |
parent | 1ee246100e7145c7fd27b417f128840037aa1f54 (diff) | |
download | llvm-f7a2d5e387de25af9711f04f253bc0e63fd988dd.tar.gz llvm-f7a2d5e387de25af9711f04f253bc0e63fd988dd.tar.bz2 llvm-f7a2d5e387de25af9711f04f253bc0e63fd988dd.tar.xz |
Move ARMSelectionDAGInfo from the TargetMachine to the subtarget.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@210862 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM')
-rw-r--r-- | lib/Target/ARM/ARMSubtarget.cpp | 3 | ||||
-rw-r--r-- | lib/Target/ARM/ARMSubtarget.h | 3 | ||||
-rw-r--r-- | lib/Target/ARM/ARMTargetMachine.cpp | 2 | ||||
-rw-r--r-- | lib/Target/ARM/ARMTargetMachine.h | 6 |
4 files changed, 7 insertions, 7 deletions
diff --git a/lib/Target/ARM/ARMSubtarget.cpp b/lib/Target/ARM/ARMSubtarget.cpp index 72fce3b301..fc842512ef 100644 --- a/lib/Target/ARM/ARMSubtarget.cpp +++ b/lib/Target/ARM/ARMSubtarget.cpp @@ -147,7 +147,8 @@ ARMSubtarget::ARMSubtarget(const std::string &TT, const std::string &CPU, : ARMGenSubtargetInfo(TT, CPU, FS), ARMProcFamily(Others), ARMProcClass(None), stackAlignment(4), CPUString(CPU), IsLittle(IsLittle), TargetTriple(TT), Options(Options), TargetABI(ARM_ABI_UNKNOWN), - DL(computeDataLayout(initializeSubtargetDependencies(CPU, FS))) {} + DL(computeDataLayout(initializeSubtargetDependencies(CPU, FS))), + TSInfo(DL) {} void ARMSubtarget::initializeEnvironment() { HasV4TOps = false; diff --git a/lib/Target/ARM/ARMSubtarget.h b/lib/Target/ARM/ARMSubtarget.h index 820d9f12fd..7da80ec0d4 100644 --- a/lib/Target/ARM/ARMSubtarget.h +++ b/lib/Target/ARM/ARMSubtarget.h @@ -14,6 +14,7 @@ #ifndef ARMSUBTARGET_H #define ARMSUBTARGET_H +#include "ARMSelectionDAGInfo.h" #include "MCTargetDesc/ARMMCTargetDesc.h" #include "llvm/ADT/Triple.h" #include "llvm/IR/DataLayout.h" @@ -254,9 +255,11 @@ protected: ARMSubtarget &initializeSubtargetDependencies(StringRef CPU, StringRef FS); const DataLayout *getDataLayout() const { return &DL; } + const ARMSelectionDAGInfo *getSelectionDAGInfo() const { return &TSInfo; } private: const DataLayout DL; + ARMSelectionDAGInfo TSInfo; void initializeEnvironment(); void resetSubtargetFeatures(StringRef CPU, StringRef FS); diff --git a/lib/Target/ARM/ARMTargetMachine.cpp b/lib/Target/ARM/ARMTargetMachine.cpp index 5c77769fb8..dabe2d6997 100644 --- a/lib/Target/ARM/ARMTargetMachine.cpp +++ b/lib/Target/ARM/ARMTargetMachine.cpp @@ -82,7 +82,6 @@ ARMTargetMachine::ARMTargetMachine(const Target &T, StringRef TT, : ARMBaseTargetMachine(T, TT, CPU, FS, Options, RM, CM, OL, isLittle), InstrInfo(Subtarget), TLInfo(*this), - TSInfo(*getDataLayout()), FrameLowering(Subtarget) { initAsmInfo(); if (!Subtarget.hasARMOps()) @@ -121,7 +120,6 @@ ThumbTargetMachine::ThumbTargetMachine(const Target &T, StringRef TT, ? ((ARMBaseInstrInfo*)new Thumb2InstrInfo(Subtarget)) : ((ARMBaseInstrInfo*)new Thumb1InstrInfo(Subtarget))), TLInfo(*this), - TSInfo(*getDataLayout()), FrameLowering(Subtarget.hasThumb2() ? new ARMFrameLowering(Subtarget) : (ARMFrameLowering*)new Thumb1FrameLowering(Subtarget)) { diff --git a/lib/Target/ARM/ARMTargetMachine.h b/lib/Target/ARM/ARMTargetMachine.h index 2f746dd6b2..2188a8836e 100644 --- a/lib/Target/ARM/ARMTargetMachine.h +++ b/lib/Target/ARM/ARMTargetMachine.h @@ -69,7 +69,6 @@ class ARMTargetMachine : public ARMBaseTargetMachine { virtual void anchor(); ARMInstrInfo InstrInfo; ARMTargetLowering TLInfo; - ARMSelectionDAGInfo TSInfo; ARMFrameLowering FrameLowering; public: ARMTargetMachine(const Target &T, StringRef TT, @@ -88,7 +87,7 @@ class ARMTargetMachine : public ARMBaseTargetMachine { } const ARMSelectionDAGInfo *getSelectionDAGInfo() const override { - return &TSInfo; + return getSubtargetImpl()->getSelectionDAGInfo(); } const ARMFrameLowering *getFrameLowering() const override { return &FrameLowering; @@ -130,7 +129,6 @@ class ThumbTargetMachine : public ARMBaseTargetMachine { // Either Thumb1InstrInfo or Thumb2InstrInfo. std::unique_ptr<ARMBaseInstrInfo> InstrInfo; ARMTargetLowering TLInfo; - ARMSelectionDAGInfo TSInfo; // Either Thumb1FrameLowering or ARMFrameLowering. std::unique_ptr<ARMFrameLowering> FrameLowering; public: @@ -151,7 +149,7 @@ public: } const ARMSelectionDAGInfo *getSelectionDAGInfo() const override { - return &TSInfo; + return getSubtargetImpl()->getSelectionDAGInfo(); } /// returns either Thumb1InstrInfo or Thumb2InstrInfo |