summaryrefslogtreecommitdiff
path: root/lib/Target/ARM/ARMTargetMachine.h
diff options
context:
space:
mode:
authorEric Christopher <echristo@gmail.com>2014-06-13 00:20:35 +0000
committerEric Christopher <echristo@gmail.com>2014-06-13 00:20:35 +0000
commit1ee246100e7145c7fd27b417f128840037aa1f54 (patch)
tree553704a7f1879589de957ba7b6d59c137f1200eb /lib/Target/ARM/ARMTargetMachine.h
parent740a75968a1ffc246c8f54a83cdaffe4d0cb3494 (diff)
downloadllvm-1ee246100e7145c7fd27b417f128840037aa1f54.tar.gz
llvm-1ee246100e7145c7fd27b417f128840037aa1f54.tar.bz2
llvm-1ee246100e7145c7fd27b417f128840037aa1f54.tar.xz
Move to a private function to initialize subtarget dependencies
so we can use initializer lists for the ARMSubtarget and then use this to initialize a moved DataLayout on the subtarget from the TargetMachine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@210861 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM/ARMTargetMachine.h')
-rw-r--r--lib/Target/ARM/ARMTargetMachine.h10
1 files changed, 6 insertions, 4 deletions
diff --git a/lib/Target/ARM/ARMTargetMachine.h b/lib/Target/ARM/ARMTargetMachine.h
index 664c992ea1..2f746dd6b2 100644
--- a/lib/Target/ARM/ARMTargetMachine.h
+++ b/lib/Target/ARM/ARMTargetMachine.h
@@ -68,7 +68,6 @@ public:
class ARMTargetMachine : public ARMBaseTargetMachine {
virtual void anchor();
ARMInstrInfo InstrInfo;
- const DataLayout DL; // Calculates type size & alignment
ARMTargetLowering TLInfo;
ARMSelectionDAGInfo TSInfo;
ARMFrameLowering FrameLowering;
@@ -95,7 +94,9 @@ class ARMTargetMachine : public ARMBaseTargetMachine {
return &FrameLowering;
}
const ARMInstrInfo *getInstrInfo() const override { return &InstrInfo; }
- const DataLayout *getDataLayout() const override { return &DL; }
+ const DataLayout *getDataLayout() const override {
+ return getSubtargetImpl()->getDataLayout();
+ }
};
/// ARMLETargetMachine - ARM little endian target machine.
@@ -128,7 +129,6 @@ class ThumbTargetMachine : public ARMBaseTargetMachine {
virtual void anchor();
// Either Thumb1InstrInfo or Thumb2InstrInfo.
std::unique_ptr<ARMBaseInstrInfo> InstrInfo;
- const DataLayout DL; // Calculates type size & alignment
ARMTargetLowering TLInfo;
ARMSelectionDAGInfo TSInfo;
// Either Thumb1FrameLowering or ARMFrameLowering.
@@ -162,7 +162,9 @@ public:
const ARMFrameLowering *getFrameLowering() const override {
return FrameLowering.get();
}
- const DataLayout *getDataLayout() const override { return &DL; }
+ const DataLayout *getDataLayout() const override {
+ return getSubtargetImpl()->getDataLayout();
+ }
};
/// ThumbLETargetMachine - Thumb little endian target machine.