diff options
author | Eric Christopher <echristo@gmail.com> | 2014-06-10 17:44:12 +0000 |
---|---|---|
committer | Eric Christopher <echristo@gmail.com> | 2014-06-10 17:44:12 +0000 |
commit | c4f93703913ee803d65825153c0cc77c575cc296 (patch) | |
tree | 087e7902d6a3b0ec6e35fa229c2280606a5b0bc3 /lib/Target | |
parent | 8128a7965f2d24554a4c76db579b2625f9be135b (diff) | |
download | llvm-c4f93703913ee803d65825153c0cc77c575cc296.tar.gz llvm-c4f93703913ee803d65825153c0cc77c575cc296.tar.bz2 llvm-c4f93703913ee803d65825153c0cc77c575cc296.tar.xz |
Move AArch64FrameLowering into the subtarget.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@210549 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target')
-rw-r--r-- | lib/Target/AArch64/AArch64Subtarget.cpp | 2 | ||||
-rw-r--r-- | lib/Target/AArch64/AArch64Subtarget.h | 9 | ||||
-rw-r--r-- | lib/Target/AArch64/AArch64TargetMachine.cpp | 2 | ||||
-rw-r--r-- | lib/Target/AArch64/AArch64TargetMachine.h | 3 |
4 files changed, 11 insertions, 5 deletions
diff --git a/lib/Target/AArch64/AArch64Subtarget.cpp b/lib/Target/AArch64/AArch64Subtarget.cpp index cd69994620..714a388cec 100644 --- a/lib/Target/AArch64/AArch64Subtarget.cpp +++ b/lib/Target/AArch64/AArch64Subtarget.cpp @@ -36,7 +36,7 @@ AArch64Subtarget::AArch64Subtarget(const std::string &TT, : AArch64GenSubtargetInfo(TT, CPU, FS), ARMProcFamily(Others), HasFPARMv8(false), HasNEON(false), HasCrypto(false), HasCRC(false), HasZeroCycleRegMove(false), HasZeroCycleZeroing(false), CPUString(CPU), - TargetTriple(TT), IsLittleEndian(LittleEndian) { + TargetTriple(TT), IsLittleEndian(LittleEndian), FrameLowering() { // Determine default and user-specified characteristics if (CPUString.empty()) diff --git a/lib/Target/AArch64/AArch64Subtarget.h b/lib/Target/AArch64/AArch64Subtarget.h index 590ea0580e..771bc7b3e7 100644 --- a/lib/Target/AArch64/AArch64Subtarget.h +++ b/lib/Target/AArch64/AArch64Subtarget.h @@ -14,8 +14,9 @@ #ifndef AArch64SUBTARGET_H #define AArch64SUBTARGET_H -#include "llvm/Target/TargetSubtargetInfo.h" +#include "AArch64FrameLowering.h" #include "AArch64RegisterInfo.h" +#include "llvm/Target/TargetSubtargetInfo.h" #include <string> #define GET_SUBTARGETINFO_HEADER @@ -52,12 +53,18 @@ protected: /// IsLittleEndian - Is the target little endian? bool IsLittleEndian; + AArch64FrameLowering FrameLowering; + public: /// This constructor initializes the data members to match that /// of the specified triple. AArch64Subtarget(const std::string &TT, const std::string &CPU, const std::string &FS, bool LittleEndian); + const AArch64FrameLowering *getFrameLowering() const { + return &FrameLowering; + } + bool enableMachineScheduler() const override { return true; } bool hasZeroCycleRegMove() const { return HasZeroCycleRegMove; } diff --git a/lib/Target/AArch64/AArch64TargetMachine.cpp b/lib/Target/AArch64/AArch64TargetMachine.cpp index 86e0fb63b6..652793eb10 100644 --- a/lib/Target/AArch64/AArch64TargetMachine.cpp +++ b/lib/Target/AArch64/AArch64TargetMachine.cpp @@ -85,7 +85,7 @@ AArch64TargetMachine::AArch64TargetMachine(const Target &T, StringRef TT, ? "e-m:o-i64:64-i128:128-n32:64-S128" : (LittleEndian ? "e-m:e-i64:64-i128:128-n32:64-S128" : "E-m:e-i64:64-i128:128-n32:64-S128")), - InstrInfo(Subtarget), TLInfo(*this), FrameLowering(), TSInfo(*this) { + InstrInfo(Subtarget), TLInfo(*this), TSInfo(*this) { initAsmInfo(); } diff --git a/lib/Target/AArch64/AArch64TargetMachine.h b/lib/Target/AArch64/AArch64TargetMachine.h index 079b19b23b..d8c9694dd4 100644 --- a/lib/Target/AArch64/AArch64TargetMachine.h +++ b/lib/Target/AArch64/AArch64TargetMachine.h @@ -33,7 +33,6 @@ private: const DataLayout DL; AArch64InstrInfo InstrInfo; AArch64TargetLowering TLInfo; - AArch64FrameLowering FrameLowering; AArch64SelectionDAGInfo TSInfo; public: @@ -50,7 +49,7 @@ public: } const DataLayout *getDataLayout() const override { return &DL; } const AArch64FrameLowering *getFrameLowering() const override { - return &FrameLowering; + return getSubtargetImpl()->getFrameLowering(); } const AArch64InstrInfo *getInstrInfo() const override { return &InstrInfo; } const AArch64RegisterInfo *getRegisterInfo() const override { |