diff options
author | Eric Christopher <echristo@gmail.com> | 2015-02-02 17:52:27 +0000 |
---|---|---|
committer | Eric Christopher <echristo@gmail.com> | 2015-02-02 17:52:27 +0000 |
commit | 8341358adc05877750543fcf2dbbb7e1d60fe645 (patch) | |
tree | d6bad475e5ce5f6dd0af9bd8b08ae89800bb8f14 /llvm/lib/Target/XCore | |
parent | 1c504299232ff12d4da547f8e1a8454797cff5d1 (diff) | |
download | bcm5719-llvm-8341358adc05877750543fcf2dbbb7e1d60fe645.tar.gz bcm5719-llvm-8341358adc05877750543fcf2dbbb7e1d60fe645.zip |
Since TargetLowering is already subtarget dependent just pass
in the subtarget and stash it in the class so that lookups are
easier and safer.
llvm-svn: 227819
Diffstat (limited to 'llvm/lib/Target/XCore')
-rw-r--r-- | llvm/lib/Target/XCore/XCoreISelLowering.cpp | 15 | ||||
-rw-r--r-- | llvm/lib/Target/XCore/XCoreISelLowering.h | 4 | ||||
-rw-r--r-- | llvm/lib/Target/XCore/XCoreSubtarget.cpp | 2 |
3 files changed, 9 insertions, 12 deletions
diff --git a/llvm/lib/Target/XCore/XCoreISelLowering.cpp b/llvm/lib/Target/XCore/XCoreISelLowering.cpp index 3ab69c7af07..5ef25548465 100644 --- a/llvm/lib/Target/XCore/XCoreISelLowering.cpp +++ b/llvm/lib/Target/XCore/XCoreISelLowering.cpp @@ -68,9 +68,9 @@ getTargetNodeName(unsigned Opcode) const } } -XCoreTargetLowering::XCoreTargetLowering(const TargetMachine &TM) - : TargetLowering(TM), TM(TM), - Subtarget(TM.getSubtarget<XCoreSubtarget>()) { +XCoreTargetLowering::XCoreTargetLowering(const TargetMachine &TM, + const XCoreSubtarget &Subtarget) + : TargetLowering(TM), TM(TM), Subtarget(Subtarget) { // Set up the register classes. addRegisterClass(MVT::i32, &XCore::GRRegsRegClass); @@ -807,8 +807,7 @@ SDValue XCoreTargetLowering::LowerFRAMEADDR(SDValue Op, return SDValue(); MachineFunction &MF = DAG.getMachineFunction(); - const TargetRegisterInfo *RegInfo = - getTargetMachine().getSubtargetImpl()->getRegisterInfo(); + const TargetRegisterInfo *RegInfo = Subtarget.getRegisterInfo(); return DAG.getCopyFromReg(DAG.getEntryNode(), SDLoc(Op), RegInfo->getFrameRegister(MF), MVT::i32); } @@ -854,8 +853,7 @@ LowerEH_RETURN(SDValue Op, SelectionDAG &DAG) const { SDLoc dl(Op); // Absolute SP = (FP + FrameToArgs) + Offset - const TargetRegisterInfo *RegInfo = - getTargetMachine().getSubtargetImpl()->getRegisterInfo(); + const TargetRegisterInfo *RegInfo = Subtarget.getRegisterInfo(); SDValue Stack = DAG.getCopyFromReg(DAG.getEntryNode(), dl, RegInfo->getFrameRegister(MF), MVT::i32); SDValue FrameToArgs = DAG.getNode(XCoreISD::FRAME_TO_ARGS_OFFSET, dl, @@ -1550,8 +1548,7 @@ XCoreTargetLowering::LowerReturn(SDValue Chain, MachineBasicBlock * XCoreTargetLowering::EmitInstrWithCustomInserter(MachineInstr *MI, MachineBasicBlock *BB) const { - const TargetInstrInfo &TII = - *getTargetMachine().getSubtargetImpl()->getInstrInfo(); + const TargetInstrInfo &TII = *Subtarget.getInstrInfo(); DebugLoc dl = MI->getDebugLoc(); assert((MI->getOpcode() == XCore::SELECT_CC) && "Unexpected instr type to insert"); diff --git a/llvm/lib/Target/XCore/XCoreISelLowering.h b/llvm/lib/Target/XCore/XCoreISelLowering.h index 13154c640fd..918d282f707 100644 --- a/llvm/lib/Target/XCore/XCoreISelLowering.h +++ b/llvm/lib/Target/XCore/XCoreISelLowering.h @@ -93,8 +93,8 @@ namespace llvm { class XCoreTargetLowering : public TargetLowering { public: - - explicit XCoreTargetLowering(const TargetMachine &TM); + explicit XCoreTargetLowering(const TargetMachine &TM, + const XCoreSubtarget &Subtarget); using TargetLowering::isZExtFree; bool isZExtFree(SDValue Val, EVT VT2) const override; diff --git a/llvm/lib/Target/XCore/XCoreSubtarget.cpp b/llvm/lib/Target/XCore/XCoreSubtarget.cpp index e6f86733389..79960207a45 100644 --- a/llvm/lib/Target/XCore/XCoreSubtarget.cpp +++ b/llvm/lib/Target/XCore/XCoreSubtarget.cpp @@ -28,4 +28,4 @@ void XCoreSubtarget::anchor() { } XCoreSubtarget::XCoreSubtarget(const std::string &TT, const std::string &CPU, const std::string &FS, const TargetMachine &TM) : XCoreGenSubtargetInfo(TT, CPU, FS), InstrInfo(), FrameLowering(*this), - TLInfo(TM), TSInfo(*TM.getDataLayout()) {} + TLInfo(TM, *this), TSInfo(*TM.getDataLayout()) {} |