Add a non-const subtarget returning function to the target machine

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
This commit is contained in:
Eric Christopher
2014-08-01 21:18:01 +00:00
parent cf8b959e8d
commit f9799dbe51
6 changed files with 17 additions and 5 deletions

View File

@ -100,6 +100,7 @@ public:
virtual const TargetSubtargetInfo *getSubtargetImpl() const { virtual const TargetSubtargetInfo *getSubtargetImpl() const {
return nullptr; return nullptr;
} }
virtual TargetSubtargetInfo *getSubtargetImpl() { return nullptr; }
mutable TargetOptions Options; mutable TargetOptions Options;

View File

@ -33,6 +33,7 @@ public:
bool isLittle); bool isLittle);
const ARMSubtarget *getSubtargetImpl() const override { return &Subtarget; } const ARMSubtarget *getSubtargetImpl() const override { return &Subtarget; }
ARMSubtarget *getSubtargetImpl() override { return &Subtarget; }
const ARMBaseRegisterInfo *getRegisterInfo() const override { const ARMBaseRegisterInfo *getRegisterInfo() const override {
return getSubtargetImpl()->getRegisterInfo(); return getSubtargetImpl()->getRegisterInfo();
} }
@ -54,7 +55,7 @@ public:
const DataLayout *getDataLayout() const override { const DataLayout *getDataLayout() const override {
return getSubtargetImpl()->getDataLayout(); return getSubtargetImpl()->getDataLayout();
} }
ARMJITInfo *getJITInfo() override { return Subtarget.getJITInfo(); } ARMJITInfo *getJITInfo() override { return getSubtargetImpl()->getJITInfo(); }
/// \brief Register ARM analysis passes with a pass manager. /// \brief Register ARM analysis passes with a pass manager.
void addAnalysisPasses(PassManagerBase &PM) override; void addAnalysisPasses(PassManagerBase &PM) override;

View File

@ -50,13 +50,18 @@ public:
return Subtarget; return Subtarget;
return &DefaultSubtarget; return &DefaultSubtarget;
} }
MipsSubtarget *getSubtargetImpl() override {
if (Subtarget)
return Subtarget;
return &DefaultSubtarget;
}
const InstrItineraryData *getInstrItineraryData() const override { const InstrItineraryData *getInstrItineraryData() const override {
return Subtarget->inMips16Mode() return Subtarget->inMips16Mode()
? nullptr ? nullptr
: &getSubtargetImpl()->getInstrItineraryData(); : &getSubtargetImpl()->getInstrItineraryData();
} }
MipsJITInfo *getJITInfo() override { MipsJITInfo *getJITInfo() override {
return Subtarget->getJITInfo(); return getSubtargetImpl()->getJITInfo();
} }
const MipsRegisterInfo *getRegisterInfo() const override { const MipsRegisterInfo *getRegisterInfo() const override {
return getSubtargetImpl()->getRegisterInfo(); return getSubtargetImpl()->getRegisterInfo();

View File

@ -38,7 +38,7 @@ public:
const PPCFrameLowering *getFrameLowering() const override { const PPCFrameLowering *getFrameLowering() const override {
return getSubtargetImpl()->getFrameLowering(); return getSubtargetImpl()->getFrameLowering();
} }
PPCJITInfo *getJITInfo() override { return Subtarget.getJITInfo(); } PPCJITInfo *getJITInfo() override { return getSubtargetImpl()->getJITInfo(); }
const PPCTargetLowering *getTargetLowering() const override { const PPCTargetLowering *getTargetLowering() const override {
return getSubtargetImpl()->getTargetLowering(); return getSubtargetImpl()->getTargetLowering();
} }
@ -53,6 +53,7 @@ public:
return getSubtargetImpl()->getDataLayout(); return getSubtargetImpl()->getDataLayout();
} }
const PPCSubtarget *getSubtargetImpl() const override { return &Subtarget; } const PPCSubtarget *getSubtargetImpl() const override { return &Subtarget; }
PPCSubtarget *getSubtargetImpl() override { return &Subtarget; }
const InstrItineraryData *getInstrItineraryData() const override { const InstrItineraryData *getInstrItineraryData() const override {
return &getSubtargetImpl()->getInstrItineraryData(); return &getSubtargetImpl()->getInstrItineraryData();
} }

View File

@ -35,6 +35,7 @@ public:
return getSubtargetImpl()->getFrameLowering(); return getSubtargetImpl()->getFrameLowering();
} }
const SparcSubtarget *getSubtargetImpl() const override { return &Subtarget; } const SparcSubtarget *getSubtargetImpl() const override { return &Subtarget; }
SparcSubtarget *getSubtargetImpl() override { return &Subtarget; }
const SparcRegisterInfo *getRegisterInfo() const override { const SparcRegisterInfo *getRegisterInfo() const override {
return getSubtargetImpl()->getRegisterInfo(); return getSubtargetImpl()->getRegisterInfo();
} }
@ -44,7 +45,9 @@ public:
const SparcSelectionDAGInfo *getSelectionDAGInfo() const override { const SparcSelectionDAGInfo *getSelectionDAGInfo() const override {
return getSubtargetImpl()->getSelectionDAGInfo(); return getSubtargetImpl()->getSelectionDAGInfo();
} }
SparcJITInfo *getJITInfo() override { return Subtarget.getJITInfo(); } SparcJITInfo *getJITInfo() override {
return getSubtargetImpl()->getJITInfo();
}
const DataLayout *getDataLayout() const override { const DataLayout *getDataLayout() const override {
return getSubtargetImpl()->getDataLayout(); return getSubtargetImpl()->getDataLayout();
} }

View File

@ -41,8 +41,9 @@ public:
const TargetFrameLowering *getFrameLowering() const override { const TargetFrameLowering *getFrameLowering() const override {
return getSubtargetImpl()->getFrameLowering(); return getSubtargetImpl()->getFrameLowering();
} }
X86JITInfo *getJITInfo() override { return Subtarget.getJITInfo(); } X86JITInfo *getJITInfo() override { return getSubtargetImpl()->getJITInfo(); }
const X86Subtarget *getSubtargetImpl() const override { return &Subtarget; } const X86Subtarget *getSubtargetImpl() const override { return &Subtarget; }
X86Subtarget *getSubtargetImpl() override { return &Subtarget; }
const X86TargetLowering *getTargetLowering() const override { const X86TargetLowering *getTargetLowering() const override {
return getSubtargetImpl()->getTargetLowering(); return getSubtargetImpl()->getTargetLowering();
} }