LLVM API Documentation
#include <XCoreISelLowering.h>
Public Member Functions | |
| XCoreTargetLowering (XCoreTargetMachine &TM) | |
| virtual SDValue | LowerOperation (SDValue Op, SelectionDAG &DAG) |
| LowerOperation - Provide custom lowering hooks for some operations. | |
| virtual void | ReplaceNodeResults (SDNode *N, SmallVectorImpl< SDValue > &Results, SelectionDAG &DAG) |
| virtual const char * | getTargetNodeName (unsigned Opcode) const |
| getTargetNodeName - This method returns the name of a target specific | |
| virtual MachineBasicBlock * | EmitInstrWithCustomInserter (MachineInstr *MI, MachineBasicBlock *MBB) |
| virtual bool | isLegalAddressingMode (const AddrMode &AM, const Type *Ty) const |
Definition at line 62 of file XCoreISelLowering.h.
| XCoreTargetLowering::XCoreTargetLowering | ( | XCoreTargetMachine & | TM | ) | [explicit] |
Definition at line 55 of file XCoreISelLowering.cpp.
References llvm::ISD::ADD, llvm::ISD::ADDC, llvm::ISD::ADDE, llvm::TargetLowering::addRegisterClass(), llvm::ISD::BR_CC, llvm::ISD::BR_JT, llvm::TargetLowering::computeRegisterProperties(), llvm::ISD::ConstantPool, llvm::ISD::CTPOP, llvm::TargetLowering::Custom, llvm::ISD::DBG_STOPPOINT, llvm::ISD::DEBUG_LOC, llvm::ISD::DYNAMIC_STACKALLOC, llvm::TargetLowering::Expand, llvm::TargetLowering::Extend, llvm::ISD::EXTLOAD, llvm::ISD::GlobalAddress, llvm::ISD::GlobalTLSAddress, llvm::MVT::i1, llvm::MVT::i16, llvm::MVT::i32, llvm::MVT::i64, llvm::MVT::i8, llvm::XCoreSubtarget::isXS1A(), llvm::ISD::JumpTable, llvm::TargetLowering::Legal, llvm::ISD::MULHS, llvm::ISD::MULHU, llvm::MVT::Other, llvm::TargetLowering::Promote, llvm::ISD::RET, llvm::ISD::ROTL, llvm::ISD::ROTR, llvm::TargetLowering::SchedulingForRegPressure, llvm::ISD::SELECT_CC, llvm::TargetLowering::setBooleanContents(), llvm::TargetLowering::setIntDivIsCheap(), llvm::TargetLowering::setLoadExtAction(), llvm::TargetLowering::setOperationAction(), llvm::TargetLowering::setSchedulingPreference(), llvm::TargetLowering::setShiftAmountFlavor(), llvm::TargetLowering::setShiftAmountType(), llvm::TargetLowering::setStackPointerRegisterToSaveRestore(), llvm::ISD::SEXTLOAD, llvm::ISD::SHL_PARTS, llvm::ISD::SMUL_LOHI, llvm::ISD::SRA_PARTS, llvm::ISD::SRL_PARTS, llvm::ISD::STACKRESTORE, llvm::ISD::STACKSAVE, llvm::ISD::SUB, llvm::ISD::SUBC, llvm::ISD::SUBE, llvm::ISD::TRAP, llvm::ISD::VAARG, llvm::ISD::VACOPY, llvm::ISD::VAEND, llvm::ISD::VASTART, llvm::TargetLowering::ZeroOrOneBooleanContent, and llvm::ISD::ZEXTLOAD.
| SDValue XCoreTargetLowering::LowerOperation | ( | SDValue | Op, | |
| SelectionDAG & | DAG | |||
| ) | [virtual] |
LowerOperation - Provide custom lowering hooks for some operations.
Reimplemented from llvm::TargetLowering.
Definition at line 151 of file XCoreISelLowering.cpp.
References llvm::ISD::ADD, llvm::ISD::CALL, llvm::ISD::ConstantPool, llvm::ISD::FORMAL_ARGUMENTS, llvm::ISD::FRAMEADDR, llvm::SDValue::getNode(), llvm::SDValue::getOpcode(), llvm::ISD::GlobalAddress, llvm::ISD::GlobalTLSAddress, llvm::ISD::JumpTable, llvm::ISD::RET, llvm::ISD::SELECT_CC, llvm::ISD::SUB, llvm::ISD::VAARG, and llvm::ISD::VASTART.
| void XCoreTargetLowering::ReplaceNodeResults | ( | SDNode * | N, | |
| SmallVectorImpl< SDValue > & | Results, | |||
| SelectionDAG & | DAG | |||
| ) | [virtual] |
ReplaceNodeResults - Replace the results of node with an illegal result type with new values built out of custom code.
ReplaceNodeResults - Replace the results of node with an illegal result type with new values built out of custom code.
Reimplemented from llvm::TargetLowering.
Definition at line 176 of file XCoreISelLowering.cpp.
References llvm::ISD::ADD, llvm::SDNode::getOpcode(), llvm::SmallVectorImpl< T >::push_back(), and llvm::ISD::SUB.
| const char * XCoreTargetLowering::getTargetNodeName | ( | unsigned | Opcode | ) | const [virtual] |
getTargetNodeName - This method returns the name of a target specific
Reimplemented from llvm::TargetLowering.
Definition at line 41 of file XCoreISelLowering.cpp.
References llvm::XCoreISD::BL, llvm::XCoreISD::CPRelativeWrapper, llvm::XCoreISD::DPRelativeWrapper, llvm::XCoreISD::PCRelativeWrapper, llvm::XCoreISD::RETSP, and llvm::XCoreISD::STWSP.
| MachineBasicBlock * XCoreTargetLowering::EmitInstrWithCustomInserter | ( | MachineInstr * | MI, | |
| MachineBasicBlock * | MBB | |||
| ) | [virtual] |
Reimplemented from llvm::TargetLowering.
Definition at line 764 of file XCoreISelLowering.cpp.
References llvm::MachineInstrBuilder::addReg(), llvm::MachineBasicBlock::addSuccessor(), llvm::BuildMI(), llvm::MachineFunction::CreateMachineBasicBlock(), llvm::MachineFunction::DeleteMachineInstr(), F, llvm::TargetInstrInfo::get(), llvm::MachineBasicBlock::getBasicBlock(), llvm::TargetMachine::getInstrInfo(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineBasicBlock::getParent(), llvm::MachineOperand::getReg(), llvm::TargetLowering::getTargetMachine(), llvm::MachineFunction::insert(), PHI, llvm::ISD::SELECT_CC, TII, and llvm::MachineBasicBlock::transferSuccessors().
| bool XCoreTargetLowering::isLegalAddressingMode | ( | const AddrMode & | AM, | |
| const Type * | Ty | |||
| ) | const [virtual] |
isLegalAddressingMode - Return true if the addressing mode represented by AM is legal for this target, for a load/store of the specified type.
Reimplemented from llvm::TargetLowering.
Definition at line 841 of file XCoreISelLowering.cpp.
References llvm::TargetLowering::AddrMode::BaseGV, llvm::TargetLowering::AddrMode::BaseOffs, llvm::MVT::getSimpleVT(), llvm::TargetLowering::getValueType(), llvm::TargetLowering::AddrMode::HasBaseReg, llvm::MVT::i1, llvm::MVT::i16, llvm::MVT::i32, llvm::MVT::i8, isImmUs(), isImmUs2(), isImmUs4(), and llvm::TargetLowering::AddrMode::Scale.