summaryrefslogtreecommitdiff
path: root/lib/Target
diff options
context:
space:
mode:
authorEric Christopher <echristo@gmail.com>2014-06-10 17:44:12 +0000
committerEric Christopher <echristo@gmail.com>2014-06-10 17:44:12 +0000
commitc4f93703913ee803d65825153c0cc77c575cc296 (patch)
tree087e7902d6a3b0ec6e35fa229c2280606a5b0bc3 /lib/Target
parent8128a7965f2d24554a4c76db579b2625f9be135b (diff)
downloadllvm-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.cpp2
-rw-r--r--lib/Target/AArch64/AArch64Subtarget.h9
-rw-r--r--lib/Target/AArch64/AArch64TargetMachine.cpp2
-rw-r--r--lib/Target/AArch64/AArch64TargetMachine.h3
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 {