Add a non-const subtarget returning function to the target machine
authorEric Christopher <echristo@gmail.com>
Fri, 1 Aug 2014 21:18:01 +0000 (21:18 +0000)
committerEric Christopher <echristo@gmail.com>
Fri, 1 Aug 2014 21:18:01 +0000 (21:18 +0000)
so that we can use it to get the old-style JIT out of the subtarget.

This code should be removed when the old-style JIT is removed
(imminently).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@214560 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Target/TargetMachine.h
lib/Target/ARM/ARMTargetMachine.h
lib/Target/Mips/MipsTargetMachine.h
lib/Target/PowerPC/PPCTargetMachine.h
lib/Target/Sparc/SparcTargetMachine.h
lib/Target/X86/X86TargetMachine.h

index b263c571d9e66a850741839263eba77a98adbd49..d48f746805b25576bb26f12d5c7fb07267b77fc8 100644 (file)
@@ -100,6 +100,7 @@ public:
   virtual const TargetSubtargetInfo *getSubtargetImpl() const {
     return nullptr;
   }
+  virtual TargetSubtargetInfo *getSubtargetImpl() { return nullptr; }
 
   mutable TargetOptions Options;
 
index b72b1df4af836ad8d383cbb81f6b69b478edf56f..9a89f8bfe54fcb8f1a558327f0581fcb8953325c 100644 (file)
@@ -33,6 +33,7 @@ public:
                        bool isLittle);
 
   const ARMSubtarget *getSubtargetImpl() const override { return &Subtarget; }
+  ARMSubtarget *getSubtargetImpl() override { return &Subtarget; }
   const ARMBaseRegisterInfo *getRegisterInfo() const override {
     return getSubtargetImpl()->getRegisterInfo();
   }
@@ -54,7 +55,7 @@ public:
   const DataLayout *getDataLayout() const override {
     return getSubtargetImpl()->getDataLayout();
   }
-  ARMJITInfo *getJITInfo() override { return Subtarget.getJITInfo(); }
+  ARMJITInfo *getJITInfo() override { return getSubtargetImpl()->getJITInfo(); }
 
   /// \brief Register ARM analysis passes with a pass manager.
   void addAnalysisPasses(PassManagerBase &PM) override;
index bcf411f9cd6f906b905a5a89ba26314dc49288ff..1651457dd7c78c3a996d2e09513f5ac3df387590 100644 (file)
@@ -50,13 +50,18 @@ public:
       return Subtarget;
     return &DefaultSubtarget;
   }
+  MipsSubtarget *getSubtargetImpl() override {
+    if (Subtarget)
+      return Subtarget;
+    return &DefaultSubtarget;
+  }
   const InstrItineraryData *getInstrItineraryData() const override {
     return Subtarget->inMips16Mode()
                ? nullptr
                : &getSubtargetImpl()->getInstrItineraryData();
   }
   MipsJITInfo *getJITInfo() override {
-    return Subtarget->getJITInfo();
+    return getSubtargetImpl()->getJITInfo();
   }
   const MipsRegisterInfo *getRegisterInfo()  const override {
     return getSubtargetImpl()->getRegisterInfo();
index 4c7029ca7a363cefd14c9c15f003dfe37676d51e..e11b4681dbd5dcff4f0bec007ee760b10475eab8 100644 (file)
@@ -38,7 +38,7 @@ public:
   const PPCFrameLowering *getFrameLowering() const override {
     return getSubtargetImpl()->getFrameLowering();
   }
-  PPCJITInfo *getJITInfo() override { return Subtarget.getJITInfo(); }
+  PPCJITInfo *getJITInfo() override { return getSubtargetImpl()->getJITInfo(); }
   const PPCTargetLowering *getTargetLowering() const override {
     return getSubtargetImpl()->getTargetLowering();
   }
@@ -53,6 +53,7 @@ public:
     return getSubtargetImpl()->getDataLayout();
   }
   const PPCSubtarget  *getSubtargetImpl() const override { return &Subtarget; }
+  PPCSubtarget  *getSubtargetImpl() override { return &Subtarget; }
   const InstrItineraryData *getInstrItineraryData() const override {
     return &getSubtargetImpl()->getInstrItineraryData();
   }
index 03b513746dfedccfe97348a78748a35aad9a1cc6..d5fb272a12894a55161b6218d650bb0a6cfd0b18 100644 (file)
@@ -35,6 +35,7 @@ public:
     return getSubtargetImpl()->getFrameLowering();
   }
   const SparcSubtarget *getSubtargetImpl() const override { return &Subtarget; }
+  SparcSubtarget *getSubtargetImpl() override { return &Subtarget; }
   const SparcRegisterInfo *getRegisterInfo() const override {
     return getSubtargetImpl()->getRegisterInfo();
   }
@@ -44,7 +45,9 @@ public:
   const SparcSelectionDAGInfo *getSelectionDAGInfo() const override {
     return getSubtargetImpl()->getSelectionDAGInfo();
   }
-  SparcJITInfo *getJITInfo() override { return Subtarget.getJITInfo(); }
+  SparcJITInfo *getJITInfo() override {
+    return getSubtargetImpl()->getJITInfo();
+  }
   const DataLayout *getDataLayout() const override {
     return getSubtargetImpl()->getDataLayout();
   }
index 41d51570b9ab4fa6ea0953bc46b553ae8b44f59d..9fccbe2b0724bd67e25e2377396bfc19c1b53abf 100644 (file)
@@ -41,8 +41,9 @@ public:
   const TargetFrameLowering *getFrameLowering() const override {
     return getSubtargetImpl()->getFrameLowering();
   }
-  X86JITInfo *getJITInfo() override { return Subtarget.getJITInfo(); }
+  X86JITInfo *getJITInfo() override { return getSubtargetImpl()->getJITInfo(); }
   const X86Subtarget *getSubtargetImpl() const override { return &Subtarget; }
+  X86Subtarget *getSubtargetImpl() override { return &Subtarget; }
   const X86TargetLowering *getTargetLowering() const override {
     return getSubtargetImpl()->getTargetLowering();
   }