LLVM API Documentation
#include <AlphaISelLowering.h>
Inheritance diagram for llvm::AlphaTargetLowering:
Public Member Functions | |
AlphaTargetLowering (TargetMachine &TM) | |
virtual SDOperand | LowerOperation (SDOperand Op, SelectionDAG &DAG) |
virtual SDOperand | CustomPromoteOperation (SDOperand Op, SelectionDAG &DAG) |
const char * | getTargetNodeName (unsigned Opcode) const |
virtual std::vector< SDOperand > | LowerArguments (Function &F, SelectionDAG &DAG) |
virtual std::pair< SDOperand, SDOperand > | LowerCallTo (SDOperand Chain, const Type *RetTy, bool isVarArg, unsigned CC, bool isTailCall, SDOperand Callee, ArgListTy &Args, SelectionDAG &DAG) |
void | restoreGP (MachineBasicBlock *BB) |
void | restoreRA (MachineBasicBlock *BB) |
unsigned | getVRegGP () |
unsigned | getVRegRA () |
bool | hasITOF () |
Definition at line 50 of file AlphaISelLowering.h.
AlphaTargetLowering::AlphaTargetLowering | ( | TargetMachine & | TM | ) |
Definition at line 185 of file AlphaISelLowering.cpp.
References llvm::TargetLowering::addLegalFPImmediate(), llvm::TargetLowering::addRegisterClass(), llvm::ISD::BR_CC, llvm::ISD::BSWAP, llvm::TargetLowering::computeRegisterProperties(), llvm::ISD::ConstantFP, llvm::ISD::ConstantPool, llvm::ISD::CTLZ, llvm::ISD::CTPOP, llvm::ISD::CTTZ, llvm::TargetLowering::Custom, llvm::ISD::DEBUG_LABEL, llvm::ISD::DEBUG_LOC, llvm::ISD::DYNAMIC_STACKALLOC, llvm::TargetLowering::Expand, llvm::ISD::ExternalSymbol, llvm::ISD::EXTLOAD, llvm::MVT::f32, llvm::MVT::f64, llvm::ISD::FCOPYSIGN, llvm::ISD::FCOS, llvm::ISD::FP_TO_SINT, llvm::ISD::FP_TO_UINT, llvm::ISD::FREM, llvm::ISD::FSIN, llvm::ISD::FSQRT, llvm::TargetMachine::getSubtarget(), llvm::ISD::GlobalAddress, llvm::MVT::i1, llvm::MVT::i16, llvm::MVT::i32, llvm::MVT::i64, llvm::MVT::i8, llvm::ISD::LOCATION, llvm::ISD::MEMCPY, llvm::ISD::MEMMOVE, llvm::ISD::MEMSET, llvm::MVT::Other, llvm::TargetLowering::Promote, llvm::ISD::ROTL, llvm::ISD::ROTR, llvm::ISD::SDIV, llvm::ISD::SELECT_CC, llvm::ISD::SETCC, llvm::TargetLowering::setOperationAction(), llvm::TargetLowering::setSetCCResultContents(), llvm::TargetLowering::setSetCCResultType(), llvm::TargetLowering::setShiftAmountType(), llvm::TargetLowering::setStackPointerRegisterToSaveRestore(), llvm::ISD::SEXTLOAD, llvm::ISD::SINT_TO_FP, llvm::ISD::SREM, llvm::ISD::STACKRESTORE, llvm::ISD::STACKSAVE, TM, llvm::ISD::TRUNCSTORE, llvm::ISD::UDIV, llvm::ISD::UINT_TO_FP, llvm::ISD::UREM, llvm::ISD::VAARG, llvm::ISD::VACOPY, llvm::ISD::VAEND, llvm::ISD::VASTART, llvm::TargetLowering::ZeroOrOneSetCCResult, and llvm::ISD::ZEXTLOAD.
SDOperand AlphaTargetLowering::CustomPromoteOperation | ( | SDOperand | Op, | |
SelectionDAG & | DAG | |||
) | [virtual] |
CustomPromoteOperation - This callback is invoked for operations that are unsupported by the target, are registered to use 'custom' lowering, and whose type needs to be promoted.
Reimplemented from llvm::TargetLowering.
Definition at line 698 of file AlphaISelLowering.cpp.
References DAG, llvm::MVT::i32, LowerOperation(), Op, and llvm::ISD::VAARG.
const char * AlphaTargetLowering::getTargetNodeName | ( | unsigned | Opcode | ) | const [virtual] |
getTargetNodeName() - This method returns the name of a target specific DAG node.
Reimplemented from llvm::TargetLowering.
Definition at line 287 of file AlphaISelLowering.cpp.
References llvm::AlphaISD::CALL, llvm::AlphaISD::CVTQS_, llvm::AlphaISD::CVTQT_, llvm::AlphaISD::CVTTQ_, llvm::AlphaISD::DivCall, llvm::AlphaISD::FTOIT_, llvm::AlphaISD::GlobalBaseReg, llvm::AlphaISD::GPRelHi, llvm::AlphaISD::GPRelLo, llvm::AlphaISD::ITOFT_, and llvm::AlphaISD::RelLit.
unsigned llvm::AlphaTargetLowering::getVRegGP | ( | ) | [inline] |
Definition at line 81 of file AlphaISelLowering.h.
unsigned llvm::AlphaTargetLowering::getVRegRA | ( | ) | [inline] |
Definition at line 82 of file AlphaISelLowering.h.
bool llvm::AlphaTargetLowering::hasITOF | ( | ) | [inline] |
Definition at line 83 of file AlphaISelLowering.h.
std::vector< SDOperand > AlphaTargetLowering::LowerArguments | ( | Function & | F, | |
SelectionDAG & | DAG | |||
) | [virtual] |
LowerArguments - This hook must be implemented to indicate how we should lower the arguments for the specified function, into the specified DAG.
Reimplemented from llvm::TargetLowering.
Definition at line 323 of file AlphaISelLowering.cpp.
References abort(), AddLiveIn(), llvm::MachineFunction::addLiveOut(), llvm::ISD::AssertSext, llvm::ISD::AssertZext, BB, llvm::MachineFrameInfo::CreateFixedObject(), DAG, E, F, llvm::MVT::f32, llvm::MVT::f64, llvm::MachineFunction::front(), llvm::SelectionDAG::getCopyFromReg(), llvm::SelectionDAG::getEntryNode(), llvm::SelectionDAG::getFrameIndex(), llvm::MachineFunction::getFrameInfo(), llvm::SelectionDAG::getLoad(), llvm::SelectionDAG::getMachineFunction(), llvm::SelectionDAG::getNode(), llvm::TargetLowering::getRegClassFor(), llvm::SelectionDAG::getRoot(), llvm::SelectionDAG::getSrcValue(), llvm::SelectionDAG::getValueType(), llvm::TargetLowering::getValueType(), I, llvm::MVT::i1, llvm::MVT::i16, llvm::MVT::i32, llvm::MVT::i64, llvm::MVT::i8, llvm::MRegisterInfo::isPhysicalRegister(), llvm::MVT::isVoid, MF, llvm::MVT::Other, llvm::SelectionDAG::setRoot(), llvm::ISD::STORE, llvm::ISD::TokenFactor, and llvm::ISD::TRUNCATE.
std::pair< SDOperand, SDOperand > AlphaTargetLowering::LowerCallTo | ( | SDOperand | Chain, | |
const Type * | RetTy, | |||
bool | isVarArg, | |||
unsigned | CC, | |||
bool | isTailCall, | |||
SDOperand | Callee, | |||
ArgListTy & | Args, | |||
SelectionDAG & | DAG | |||
) | [virtual] |
LowerCallTo - This hook lowers an abstract call to a function into an actual call.
Definition at line 436 of file AlphaISelLowering.cpp.
References llvm::ISD::AssertSext, llvm::ISD::AssertZext, llvm::AlphaISD::CALL, llvm::ISD::CALLSEQ_END, DAG, llvm::MVT::f32, llvm::MVT::f64, first, llvm::SelectionDAG::getCALLSEQ_START(), llvm::SelectionDAG::getConstant(), llvm::SelectionDAG::getNode(), llvm::TargetLowering::getPointerTy(), llvm::SDOperand::getValue(), llvm::SelectionDAG::getValueType(), llvm::TargetLowering::getValueType(), llvm::MVT::i1, llvm::MVT::i16, llvm::MVT::i32, llvm::MVT::i64, llvm::MVT::i8, llvm::Type::isSigned(), llvm::MVT::isVoid, NumBytes, llvm::MVT::Other, RetTy, RetVals, second, llvm::ISD::SIGN_EXTEND, llvm::ISD::TRUNCATE, and llvm::ISD::ZERO_EXTEND.
SDOperand AlphaTargetLowering::LowerOperation | ( | SDOperand | Op, | |
SelectionDAG & | DAG | |||
) | [virtual] |
LowerOperation - Provide custom lowering hooks for some operations.
Reimplemented from llvm::TargetLowering.
Definition at line 517 of file AlphaISelLowering.cpp.
References llvm::ISD::ADD, Base, BuildSDIVSequence(), BuildUDIVSequence(), llvm::CallingConv::C, llvm::ISD::Constant, llvm::ISD::ConstantPool, CP, llvm::MachineFrameInfo::CreateStackObject(), llvm::AlphaISD::CVTQS_, llvm::AlphaISD::CVTQT_, llvm::AlphaISD::CVTTQ_, DAG, llvm::AlphaISD::DivCall, llvm::ISD::ExternalSymbol, llvm::MVT::f32, llvm::MVT::f64, llvm::ISD::FP_EXTEND, llvm::ISD::FP_TO_SINT, llvm::FR, llvm::AlphaISD::FTOIT_, llvm::SelectionDAG::getConstant(), llvm::SelectionDAG::getEntryNode(), llvm::SelectionDAG::getExternalSymbol(), llvm::SelectionDAG::getExtLoad(), llvm::SelectionDAG::getFrameIndex(), llvm::MachineFunction::getFrameInfo(), llvm::GlobalAddressSDNode::getGlobal(), llvm::SelectionDAG::getLoad(), llvm::SelectionDAG::getMachineFunction(), llvm::SelectionDAG::getNode(), llvm::GlobalAddressSDNode::getOffset(), llvm::TargetLowering::getPointerTy(), llvm::SelectionDAG::getSetCC(), llvm::SelectionDAG::getSrcValue(), llvm::SelectionDAG::getTargetConstantPool(), llvm::SelectionDAG::getTargetExternalSymbol(), llvm::SelectionDAG::getTargetGlobalAddress(), llvm::SelectionDAG::getValueType(), llvm::Value::getValueType(), llvm::ISD::GlobalAddress, llvm::AlphaISD::GlobalBaseReg, llvm::AlphaISD::GPRelHi, llvm::AlphaISD::GPRelLo, GV, llvm::PPCISD::Hi, llvm::MVT::i32, llvm::MVT::i64, llvm::MVT::isFloatingPoint(), llvm::MVT::isInteger(), llvm::AlphaISD::ITOFT_, llvm::PPCISD::Lo, llvm::ISD::MUL, NP, Offset, Op, llvm::MVT::Other, llvm::AlphaISD::RelLit, llvm::ISD::SDIV, llvm::ISD::SELECT, llvm::ISD::SETLT, llvm::ISD::SEXTLOAD, llvm::ISD::SINT_TO_FP, llvm::ISD::SREM, llvm::ISD::STORE, llvm::ISD::SUB, llvm::ISD::TRUNCSTORE, llvm::ISD::UDIV, llvm::ISD::UREM, llvm::ISD::VAARG, llvm::ISD::VACOPY, Val, llvm::Use::Val, and llvm::ISD::VASTART.
Referenced by CustomPromoteOperation().
void AlphaTargetLowering::restoreGP | ( | MachineBasicBlock * | BB | ) |
Definition at line 500 of file AlphaISelLowering.cpp.
References llvm::MachineInstrBuilder::addReg(), BB, and llvm::BuildMI().
void AlphaTargetLowering::restoreRA | ( | MachineBasicBlock * | BB | ) |
Definition at line 504 of file AlphaISelLowering.cpp.
References llvm::MachineInstrBuilder::addReg(), BB, and llvm::BuildMI().