Move the data layout and selection dag info from the mips target machine
[oota-llvm.git] / lib / Target / Mips / MipsTargetMachine.h
index 79e7e1d3c7280fe5470021c9c6438bb6ba96c665..21950c71916ac4b69695533c210c1d8f64d8b4ab 100644 (file)
 #include "MipsFrameLowering.h"
 #include "MipsISelLowering.h"
 #include "MipsInstrInfo.h"
-#include "MipsSelectionDAGInfo.h"
 #include "MipsSubtarget.h"
 #include "llvm/CodeGen/Passes.h"
 #include "llvm/CodeGen/SelectionDAGISel.h"
-#include "llvm/IR/DataLayout.h"
 #include "llvm/Target/TargetFrameLowering.h"
 #include "llvm/Target/TargetMachine.h"
 
@@ -31,7 +29,6 @@ class MipsRegisterInfo;
 
 class MipsTargetMachine : public LLVMTargetMachine {
   MipsSubtarget       Subtarget;
-  const DataLayout    DL; // Calculates type size & alignment
   std::unique_ptr<const MipsInstrInfo> InstrInfo;
   std::unique_ptr<const MipsFrameLowering> FrameLowering;
   std::unique_ptr<const MipsTargetLowering> TLInfo;
@@ -41,7 +38,6 @@ class MipsTargetMachine : public LLVMTargetMachine {
   std::unique_ptr<const MipsInstrInfo> InstrInfoSE;
   std::unique_ptr<const MipsFrameLowering> FrameLoweringSE;
   std::unique_ptr<const MipsTargetLowering> TLInfoSE;
-  MipsSelectionDAGInfo TSInfo;
 
 public:
   MipsTargetMachine(const Target &T, StringRef TT,
@@ -60,8 +56,6 @@ public:
   { return FrameLowering.get(); }
   const MipsSubtarget *getSubtargetImpl() const override
   { return &Subtarget; }
-  const DataLayout *getDataLayout()    const override
-  { return &DL;}
 
   const InstrItineraryData *getInstrItineraryData() const override {
     return Subtarget.inMips16Mode()
@@ -81,8 +75,11 @@ public:
     return TLInfo.get();
   }
 
+  const DataLayout *getDataLayout() const override {
+    return getSubtargetImpl()->getDataLayout();
+  }
   const MipsSelectionDAGInfo* getSelectionDAGInfo() const override {
-    return &TSInfo;
+    return getSubtargetImpl()->getSelectionDAGInfo();
   }
 
   // Pass Pipeline Configuration