virtual const TargetSubtargetInfo *getSubtargetImpl() const {
return nullptr;
}
+ virtual TargetSubtargetInfo *getSubtargetImpl() { return nullptr; }
mutable TargetOptions Options;
bool isLittle);
const ARMSubtarget *getSubtargetImpl() const override { return &Subtarget; }
+ ARMSubtarget *getSubtargetImpl() override { return &Subtarget; }
const ARMBaseRegisterInfo *getRegisterInfo() const override {
return getSubtargetImpl()->getRegisterInfo();
}
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;
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();
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();
}
return getSubtargetImpl()->getDataLayout();
}
const PPCSubtarget *getSubtargetImpl() const override { return &Subtarget; }
+ PPCSubtarget *getSubtargetImpl() override { return &Subtarget; }
const InstrItineraryData *getInstrItineraryData() const override {
return &getSubtargetImpl()->getInstrItineraryData();
}
return getSubtargetImpl()->getFrameLowering();
}
const SparcSubtarget *getSubtargetImpl() const override { return &Subtarget; }
+ SparcSubtarget *getSubtargetImpl() override { return &Subtarget; }
const SparcRegisterInfo *getRegisterInfo() const override {
return getSubtargetImpl()->getRegisterInfo();
}
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();
}
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();
}