From: Eric Christopher Date: Tue, 10 Jun 2014 17:44:12 +0000 (+0000) Subject: Move AArch64FrameLowering into the subtarget. X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=29aab7b355a06d47bdcfc9c788bdf8a69a37e1f1;p=platform%2Fupstream%2Fllvm.git Move AArch64FrameLowering into the subtarget. llvm-svn: 210549 --- diff --git a/llvm/lib/Target/AArch64/AArch64Subtarget.cpp b/llvm/lib/Target/AArch64/AArch64Subtarget.cpp index cd69994..714a388 100644 --- a/llvm/lib/Target/AArch64/AArch64Subtarget.cpp +++ b/llvm/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/llvm/lib/Target/AArch64/AArch64Subtarget.h b/llvm/lib/Target/AArch64/AArch64Subtarget.h index 590ea05..771bc7b 100644 --- a/llvm/lib/Target/AArch64/AArch64Subtarget.h +++ b/llvm/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 #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/llvm/lib/Target/AArch64/AArch64TargetMachine.cpp b/llvm/lib/Target/AArch64/AArch64TargetMachine.cpp index 86e0fb6..652793e 100644 --- a/llvm/lib/Target/AArch64/AArch64TargetMachine.cpp +++ b/llvm/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/llvm/lib/Target/AArch64/AArch64TargetMachine.h b/llvm/lib/Target/AArch64/AArch64TargetMachine.h index 079b19b..d8c9694 100644 --- a/llvm/lib/Target/AArch64/AArch64TargetMachine.h +++ b/llvm/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 {