summaryrefslogtreecommitdiff
path: root/lib/Target/ARM
diff options
context:
space:
mode:
authorEric Christopher <echristo@gmail.com>2014-06-13 00:20:39 +0000
committerEric Christopher <echristo@gmail.com>2014-06-13 00:20:39 +0000
commitf7a2d5e387de25af9711f04f253bc0e63fd988dd (patch)
tree7e4d8fc9ee8e7402d50694cc87db427ceb6ced17 /lib/Target/ARM
parent1ee246100e7145c7fd27b417f128840037aa1f54 (diff)
downloadllvm-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.cpp3
-rw-r--r--lib/Target/ARM/ARMSubtarget.h3
-rw-r--r--lib/Target/ARM/ARMTargetMachine.cpp2
-rw-r--r--lib/Target/ARM/ARMTargetMachine.h6
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