Move AArch64SelectionDAGInfo down to the subtarget.
authorEric Christopher <echristo@gmail.com>
Tue, 10 Jun 2014 18:21:53 +0000 (18:21 +0000)
committerEric Christopher <echristo@gmail.com>
Tue, 10 Jun 2014 18:21:53 +0000 (18:21 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@210557 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/AArch64/AArch64Subtarget.cpp
lib/Target/AArch64/AArch64Subtarget.h
lib/Target/AArch64/AArch64TargetMachine.cpp
lib/Target/AArch64/AArch64TargetMachine.h

index e68f5276b57fcc95e59a1d812f167b28e930b129..8be1f66d05723760079d90b5ec5939d36ac2e3b7 100644 (file)
@@ -44,7 +44,7 @@ AArch64Subtarget::AArch64Subtarget(const std::string &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")),
-      FrameLowering() {
+      FrameLowering(), TSInfo(&DL) {
   // Determine default and user-specified characteristics
 
   if (CPUString.empty())
index 5de701b725f88f07ef5cb163ea8c08ab9dca73f4..cfb126ebf1395a608003250090047aff5250a2fe 100644 (file)
@@ -16,6 +16,7 @@
 
 #include "AArch64FrameLowering.h"
 #include "AArch64RegisterInfo.h"
+#include "AArch64SelectionDAGInfo.h"
 #include "llvm/IR/DataLayout.h"
 #include "llvm/Target/TargetSubtargetInfo.h"
 #include <string>
@@ -53,6 +54,7 @@ protected:
 
   const DataLayout DL;
   AArch64FrameLowering FrameLowering;
+  AArch64SelectionDAGInfo TSInfo;
 
 public:
   /// This constructor initializes the data members to match that
@@ -60,6 +62,7 @@ public:
   AArch64Subtarget(const std::string &TT, const std::string &CPU,
                  const std::string &FS, bool LittleEndian);
 
+  const AArch64SelectionDAGInfo *getSelectionDAGInfo() const { return &TSInfo; }
   const AArch64FrameLowering *getFrameLowering() const {
     return &FrameLowering;
   }
index c10098d1837c5c0245707783d28de8661ef86993..7f00df491096c23e1e25b09b72da66d6b8997297 100644 (file)
@@ -78,7 +78,7 @@ AArch64TargetMachine::AArch64TargetMachine(const Target &T, StringRef TT,
                                            bool LittleEndian)
     : LLVMTargetMachine(T, TT, CPU, FS, Options, RM, CM, OL),
       Subtarget(TT, CPU, FS, LittleEndian),
-      InstrInfo(Subtarget), TLInfo(*this), TSInfo(getDataLayout()) {
+      InstrInfo(Subtarget), TLInfo(*this) {
   initAsmInfo();
 }
 
index e3616e1bb9307f4786ba3837337a0e9b57cf9333..417354010d37392cf49dec43a6517e4b886aeb60 100644 (file)
@@ -32,7 +32,6 @@ protected:
 private:
   AArch64InstrInfo InstrInfo;
   AArch64TargetLowering TLInfo;
-  AArch64SelectionDAGInfo TSInfo;
 
 public:
   AArch64TargetMachine(const Target &T, StringRef TT, StringRef CPU,
@@ -57,7 +56,7 @@ public:
     return &InstrInfo.getRegisterInfo();
   }
   const AArch64SelectionDAGInfo *getSelectionDAGInfo() const override {
-    return &TSInfo;
+    return getSubtargetImpl()->getSelectionDAGInfo();
   }
 
   // Pass Pipeline Configuration