Remove the cached InstrItineraryData on the TargetMachine, it's unnecessary.
authorEric Christopher <echristo@gmail.com>
Wed, 2 Jul 2014 00:54:07 +0000 (00:54 +0000)
committerEric Christopher <echristo@gmail.com>
Wed, 2 Jul 2014 00:54:07 +0000 (00:54 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@212149 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/Mips/MipsTargetMachine.cpp
lib/Target/Mips/MipsTargetMachine.h

index 20d52141993e7a76c58259d71678e7d273b1c297..25234b902332051940398f2435eaa3f65a2941fc 100644 (file)
@@ -80,19 +80,16 @@ static std::string computeDataLayout(const MipsSubtarget &ST) {
 // offset from the stack/frame pointer, using StackGrowsUp enables
 // an easier handling.
 // Using CodeModel::Large enables different CALL behavior.
 // offset from the stack/frame pointer, using StackGrowsUp enables
 // an easier handling.
 // Using CodeModel::Large enables different CALL behavior.
-MipsTargetMachine::
-MipsTargetMachine(const Target &T, StringRef TT,
-                  StringRef CPU, StringRef FS, const TargetOptions &Options,
-                  Reloc::Model RM, CodeModel::Model CM,
-                  CodeGenOpt::Level OL,
-                  bool isLittle)
-  : LLVMTargetMachine(T, TT, CPU, FS, Options, RM, CM, OL),
-    Subtarget(TT, CPU, FS, isLittle, RM, this),
-    DL(computeDataLayout(Subtarget)),
-    InstrInfo(MipsInstrInfo::create(*this)),
-    FrameLowering(MipsFrameLowering::create(*this, Subtarget)),
-    TLInfo(MipsTargetLowering::create(*this)), TSInfo(DL),
-    InstrItins(Subtarget.getInstrItineraryData()), JITInfo() {
+MipsTargetMachine::MipsTargetMachine(const Target &T, StringRef TT,
+                                     StringRef CPU, StringRef FS,
+                                     const TargetOptions &Options,
+                                     Reloc::Model RM, CodeModel::Model CM,
+                                     CodeGenOpt::Level OL, bool isLittle)
+    : LLVMTargetMachine(T, TT, CPU, FS, Options, RM, CM, OL),
+      Subtarget(TT, CPU, FS, isLittle, RM, this),
+      DL(computeDataLayout(Subtarget)), InstrInfo(MipsInstrInfo::create(*this)),
+      FrameLowering(MipsFrameLowering::create(*this, Subtarget)),
+      TLInfo(MipsTargetLowering::create(*this)), TSInfo(DL), JITInfo() {
   initAsmInfo();
 }
 
   initAsmInfo();
 }
 
index a5aa39bc9f4d37d22631c549c0ccce776bc2b13b..fee8410d31677d0dc611247e572b8e2b547dbc0c 100644 (file)
@@ -43,7 +43,6 @@ class MipsTargetMachine : public LLVMTargetMachine {
   std::unique_ptr<const MipsFrameLowering> FrameLoweringSE;
   std::unique_ptr<const MipsTargetLowering> TLInfoSE;
   MipsSelectionDAGInfo TSInfo;
   std::unique_ptr<const MipsFrameLowering> FrameLoweringSE;
   std::unique_ptr<const MipsTargetLowering> TLInfoSE;
   MipsSelectionDAGInfo TSInfo;
-  const InstrItineraryData &InstrItins;
   MipsJITInfo JITInfo;
 
 public:
   MipsJITInfo JITInfo;
 
 public:
@@ -67,7 +66,9 @@ public:
   { return &DL;}
 
   const InstrItineraryData *getInstrItineraryData() const override {
   { return &DL;}
 
   const InstrItineraryData *getInstrItineraryData() const override {
-    return Subtarget.inMips16Mode() ? nullptr : &InstrItins;
+    return Subtarget.inMips16Mode()
+               ? nullptr
+               : &getSubtargetImpl()->getInstrItineraryData();
   }
 
   MipsJITInfo *getJITInfo() override { return &JITInfo; }
   }
 
   MipsJITInfo *getJITInfo() override { return &JITInfo; }