LLVM API Documentation
#include <SelectionDAG.h>
Collaboration diagram for llvm::SelectionDAG:
The representation used by the SelectionDAG is a target-independent representation, which has some similarities to the GCC RTL representation, but is significantly more simple, powerful, and is a graph form instead of a linear form.
Definition at line 42 of file SelectionDAG.h.
typedef ilist<SDNode>::const_iterator llvm::SelectionDAG::allnodes_const_iterator |
Definition at line 73 of file SelectionDAG.h.
typedef ilist<SDNode>::iterator llvm::SelectionDAG::allnodes_iterator |
Definition at line 76 of file SelectionDAG.h.
llvm::SelectionDAG::SelectionDAG | ( | TargetLowering & | tli, | |
MachineFunction & | mf, | |||
MachineDebugInfo * | di | |||
) | [inline] |
Definition at line 57 of file SelectionDAG.h.
References llvm::ISD::EntryToken, getNode(), and llvm::MVT::Other.
SelectionDAG::~SelectionDAG | ( | ) |
Definition at line 618 of file SelectionDAG.cpp.
References llvm::SDNode::NumOperands, and llvm::SDNode::OperandList.
allnodes_iterator llvm::SelectionDAG::allnodes_begin | ( | ) | [inline] |
Definition at line 77 of file SelectionDAG.h.
allnodes_const_iterator llvm::SelectionDAG::allnodes_begin | ( | ) | const [inline] |
allnodes_iterator llvm::SelectionDAG::allnodes_end | ( | ) | [inline] |
Definition at line 78 of file SelectionDAG.h.
allnodes_const_iterator llvm::SelectionDAG::allnodes_end | ( | ) | const [inline] |
void SelectionDAG::Combine | ( | bool | AfterLegalize | ) |
Combine - This iterates over the nodes in the SelectionDAG, folding certain types of nodes together, or eliminating superfluous nodes. When the AfterLegalize argument is set to 'true', Combine takes care not to generate any nodes that will be illegal on the target.
run - This is the main entry point to this class.
Definition at line 3545 of file DAGCombiner.cpp.
void SelectionDAG::DeleteNode | ( | SDNode * | N | ) |
DeleteNode - Remove the specified node from the system. This node must have no referrers.
Definition at line 302 of file SelectionDAG.cpp.
References llvm::SDNode::use_empty().
void SelectionDAG::dump | ( | ) | const |
Definition at line 2948 of file SelectionDAG.cpp.
References allnodes_begin(), allnodes_end(), DumpNodes(), E, getRoot(), and Val.
SDOperand SelectionDAG::getBasicBlock | ( | MachineBasicBlock * | MBB | ) |
Definition at line 756 of file SelectionDAG.cpp.
References MBB.
Referenced by llvm::SelectionDAGLowering::visitBr(), llvm::SelectionDAGLowering::visitSwitch(), and llvm::SelectionDAGLowering::visitSwitchCase().
getCALLSEQ_START - Return a new CALLSEQ_START node, which always must have a flag result (to ensure it's not CSE'd).
Definition at line 202 of file SelectionDAG.h.
References llvm::ISD::CALLSEQ_START, llvm::MVT::Flag, getNode(), Op, and llvm::MVT::Other.
Referenced by llvm::PPCTargetLowering::LowerCallTo(), llvm::IA64TargetLowering::LowerCallTo(), and llvm::AlphaTargetLowering::LowerCallTo().
SDOperand SelectionDAG::getCondCode | ( | ISD::CondCode | Cond | ) |
SDOperand SelectionDAG::getConstant | ( | uint64_t | Val, | |
MVT::ValueType | VT | |||
) |
Definition at line 635 of file SelectionDAG.cpp.
References llvm::MVT::getSizeInBits(), llvm::MVT::i64, llvm::MVT::isInteger(), and llvm::MVT::isVector().
Referenced by BuildSDIVSequence(), BuildUDIVSequence(), CommuteVectorShuffle(), getMemBasePlusOffset(), getMemsetStringVal(), getMemsetValue(), getNode(), llvm::SelectionDAGLowering::getValue(), getVecLoad(), getZeroExtendInReg(), llvm::TargetLowering::LowerArguments(), llvm::PPCTargetLowering::LowerArguments(), llvm::PPCTargetLowering::LowerCallTo(), llvm::IA64TargetLowering::LowerCallTo(), llvm::AlphaTargetLowering::LowerCallTo(), llvm::X86TargetLowering::LowerFrameReturnAddress(), llvm::TargetLowering::LowerFrameReturnAddress(), llvm::X86TargetLowering::LowerOperation(), llvm::PPCTargetLowering::LowerOperation(), llvm::IA64TargetLowering::LowerOperation(), llvm::AlphaTargetLowering::LowerOperation(), llvm::SelectionDAGISel::SelectInlineAsmMemoryOperands(), llvm::TargetLowering::TargetLoweringOpt::ShrinkDemandedConstant(), llvm::TargetLowering::SimplifyDemandedBits(), llvm::SelectionDAGLowering::visitBinary(), llvm::SelectionDAGLowering::visitBr(), llvm::SelectionDAGLowering::visitCast(), llvm::SelectionDAGLowering::visitGetElementPtr(), llvm::SelectionDAGLowering::visitInlineAsm(), llvm::SelectionDAGLowering::visitIntrinsicCall(), llvm::SelectionDAGLowering::visitSwitchCase(), and llvm::SelectionDAGLowering::visitTargetIntrinsic().
SDOperand SelectionDAG::getConstantFP | ( | double | Val, | |
MVT::ValueType | VT | |||
) |
Definition at line 672 of file SelectionDAG.cpp.
References llvm::DoubleToBits(), llvm::MVT::f32, and llvm::MVT::isFloatingPoint().
Referenced by getNode(), llvm::SelectionDAGLowering::getValue(), and llvm::SelectionDAGLowering::visitCast().
SDOperand SelectionDAG::getConstantPool | ( | Constant * | C, | |
MVT::ValueType | VT, | |||
unsigned | Alignment = 0 , |
|||
int | offset = 0 | |||
) |
Definition at line 736 of file SelectionDAG.cpp.
References llvm::CallingConv::C.
Referenced by llvm::X86TargetLowering::LowerOperation().
SDOperand llvm::SelectionDAG::getCopyFromReg | ( | SDOperand | Chain, | |
unsigned | Reg, | |||
MVT::ValueType | VT, | |||
SDOperand | Flag | |||
) | [inline] |
Definition at line 181 of file SelectionDAG.h.
References llvm::ISD::CopyFromReg, llvm::MVT::Flag, getNode(), getRegister(), and llvm::MVT::Other.
SDOperand llvm::SelectionDAG::getCopyFromReg | ( | SDOperand | Chain, | |
unsigned | Reg, | |||
MVT::ValueType | VT | |||
) | [inline] |
Definition at line 168 of file SelectionDAG.h.
References llvm::ISD::CopyFromReg, getNode(), getRegister(), and llvm::MVT::Other.
Referenced by llvm::PPCTargetLowering::LowerArguments(), llvm::IA64TargetLowering::LowerArguments(), llvm::AlphaTargetLowering::LowerArguments(), llvm::IA64TargetLowering::LowerCallTo(), llvm::X86TargetLowering::LowerOperation(), llvm::IA64TargetLowering::LowerOperation(), llvm::SelectionDAGLowering::visitShr(), and llvm::SelectionDAGLowering::visitUnreachable().
SDOperand llvm::SelectionDAG::getCopyToReg | ( | SDOperand | Chain, | |
SDOperand | Reg, | |||
SDOperand | N, | |||
SDOperand | Flag | |||
) | [inline] |
Definition at line 155 of file SelectionDAG.h.
References llvm::ISD::CopyToReg, llvm::MVT::Flag, getNode(), llvm::MVT::Other, and Reg.
SDOperand llvm::SelectionDAG::getCopyToReg | ( | SDOperand | Chain, | |
unsigned | Reg, | |||
SDOperand | N, | |||
SDOperand | Flag | |||
) | [inline] |
Definition at line 141 of file SelectionDAG.h.
References llvm::ISD::CopyToReg, llvm::MVT::Flag, getNode(), getRegister(), llvm::SDOperand::getValueType(), and llvm::MVT::Other.
Definition at line 133 of file SelectionDAG.h.
References llvm::ISD::CopyToReg, getNode(), getRegister(), llvm::SDOperand::getValueType(), and llvm::MVT::Other.
Referenced by llvm::IA64TargetLowering::LowerCallTo(), llvm::X86TargetLowering::LowerOperation(), llvm::PPCTargetLowering::LowerOperation(), and llvm::IA64TargetLowering::LowerOperation().
const SDOperand& llvm::SelectionDAG::getEntryNode | ( | ) | const [inline] |
getEntryNode - Return the token chain corresponding to the entry of the function.
Definition at line 86 of file SelectionDAG.h.
Referenced by llvm::PPCTargetLowering::LowerArguments(), llvm::IA64TargetLowering::LowerArguments(), llvm::AlphaTargetLowering::LowerArguments(), llvm::X86TargetLowering::LowerFrameReturnAddress(), llvm::X86TargetLowering::LowerOperation(), llvm::PPCTargetLowering::LowerOperation(), llvm::AlphaTargetLowering::LowerOperation(), llvm::SelectionDAGLowering::visitShr(), and llvm::SelectionDAGLowering::visitUnreachable().
SDOperand SelectionDAG::getExternalSymbol | ( | const char * | Sym, | |
MVT::ValueType | VT | |||
) |
Definition at line 775 of file SelectionDAG.cpp.
Referenced by llvm::X86TargetLowering::LowerOperation(), llvm::AlphaTargetLowering::LowerOperation(), llvm::SelectionDAGLowering::visitCall(), llvm::SelectionDAGLowering::visitFree(), and llvm::SelectionDAGLowering::visitMalloc().
SDOperand SelectionDAG::getExtLoad | ( | unsigned | Opcode, | |
MVT::ValueType | VT, | |||
SDOperand | Chain, | |||
SDOperand | Ptr, | |||
SDOperand | SV, | |||
MVT::ValueType | EVT | |||
) |
Definition at line 1524 of file SelectionDAG.cpp.
References getNode(), getValueType(), and llvm::MVT::Other.
Referenced by llvm::AlphaTargetLowering::LowerOperation().
SDOperand SelectionDAG::getFrameIndex | ( | int | FI, | |
MVT::ValueType | VT | |||
) |
Definition at line 720 of file SelectionDAG.cpp.
Referenced by llvm::X86TargetLowering::getReturnAddressFrameIndex(), llvm::PPCTargetLowering::LowerArguments(), llvm::IA64TargetLowering::LowerArguments(), llvm::AlphaTargetLowering::LowerArguments(), llvm::X86TargetLowering::LowerOperation(), llvm::PPCTargetLowering::LowerOperation(), llvm::IA64TargetLowering::LowerOperation(), and llvm::AlphaTargetLowering::LowerOperation().
SDOperand SelectionDAG::getGlobalAddress | ( | const GlobalValue * | GV, | |
MVT::ValueType | VT, | |||
int | offset = 0 | |||
) |
Definition at line 702 of file SelectionDAG.cpp.
References GV.
Referenced by llvm::SelectionDAGLowering::getValue().
SDOperand SelectionDAG::getLoad | ( | MVT::ValueType | VT, | |
SDOperand | Chain, | |||
SDOperand | Ptr, | |||
SDOperand | SV | |||
) |
getLoad - Loads are not normal binary operators: their result type is not determined by their operands, and they produce a value AND a token chain.
Definition at line 1495 of file SelectionDAG.cpp.
References llvm::ISD::LOAD, and llvm::MVT::Other.
Referenced by llvm::SelectionDAGLowering::getLoadFrom(), getNode(), llvm::PPCTargetLowering::LowerArguments(), llvm::IA64TargetLowering::LowerArguments(), llvm::AlphaTargetLowering::LowerArguments(), llvm::PPCTargetLowering::LowerCallTo(), llvm::X86TargetLowering::LowerFrameReturnAddress(), llvm::X86TargetLowering::LowerOperation(), llvm::PPCTargetLowering::LowerOperation(), llvm::IA64TargetLowering::LowerOperation(), llvm::AlphaTargetLowering::LowerOperation(), and llvm::SelectionDAGLowering::visitMemIntrinsic().
MachineDebugInfo* llvm::SelectionDAG::getMachineDebugInfo | ( | ) | const [inline] |
Definition at line 66 of file SelectionDAG.h.
Referenced by llvm::SelectionDAGLowering::visitIntrinsicCall().
MachineFunction& llvm::SelectionDAG::getMachineFunction | ( | ) | const [inline] |
Definition at line 63 of file SelectionDAG.h.
Referenced by llvm::X86TargetLowering::getReturnAddressFrameIndex(), llvm::PPCTargetLowering::LowerArguments(), llvm::IA64TargetLowering::LowerArguments(), llvm::AlphaTargetLowering::LowerArguments(), llvm::IA64TargetLowering::LowerCallTo(), llvm::X86TargetLowering::LowerOperation(), llvm::PPCTargetLowering::LowerOperation(), llvm::AlphaTargetLowering::LowerOperation(), and viewGraph().
SDOperand SelectionDAG::getNode | ( | unsigned | Opcode, | |
std::vector< MVT::ValueType > & | ResultTys, | |||
std::vector< SDOperand > & | Ops | |||
) |
Definition at line 1630 of file SelectionDAG.cpp.
References llvm::ISD::AND, E, llvm::ISD::EXTLOAD, llvm::MVT::Flag, getLoad(), getNode(), llvm::SDOperand::getOperand(), llvm::MVT::getSizeInBits(), llvm::MVT::getVectorBaseType(), llvm::MVT::i1, llvm::MVT::isInteger(), llvm::MVT::isVector(), llvm::ISD::SEXTLOAD, llvm::ISD::SHL_PARTS, llvm::ISD::SIGN_EXTEND_INREG, llvm::ISD::SRA_PARTS, llvm::ISD::SRL_PARTS, and llvm::ISD::ZEXTLOAD.
SDOperand SelectionDAG::getNode | ( | unsigned | Opcode, | |
MVT::ValueType | VT, | |||
std::vector< SDOperand > & | Children | |||
) |
Definition at line 1564 of file SelectionDAG.cpp.
References llvm::ISD::BR_CC, E, llvm::MVT::Flag, getNode(), getValueType(), llvm::MVT::isInteger(), Op, llvm::ISD::SELECT_CC, llvm::SDNode::setValueTypes(), llvm::ISD::STORE, llvm::ISD::TRUNCATE, and llvm::ISD::TRUNCSTORE.
SDOperand SelectionDAG::getNode | ( | unsigned | Opcode, | |
MVT::ValueType | VT, | |||
SDOperand | N1, | |||
SDOperand | N2, | |||
SDOperand | N3 | |||
) |
Definition at line 1412 of file SelectionDAG.cpp.
References llvm::ISD::BR, llvm::ISD::BRCOND, llvm::ISD::BUILD_VECTOR, E, llvm::MVT::Flag, getNode(), llvm::SDOperand::getNumOperands(), llvm::SDOperand::getOpcode(), llvm::ConstantSDNode::getValue(), llvm::SDOperand::getValueType(), llvm::MVT::getVectorNumElements(), llvm::MVT::isVector(), llvm::MVT::Other, llvm::ISD::SELECT, llvm::ISD::SETCC, llvm::SDNode::setValueTypes(), llvm::SDOperand::Val, and llvm::ISD::VECTOR_SHUFFLE.
SDOperand SelectionDAG::getNode | ( | unsigned | Opcode, | |
MVT::ValueType | VT, | |||
SDOperand | N1, | |||
SDOperand | N2 | |||
) |
Definition at line 1206 of file SelectionDAG.cpp.
References llvm::ISD::ADD, llvm::ISD::AND, llvm::ISD::AssertSext, llvm::ISD::AssertZext, F, llvm::ISD::FADD, llvm::ISD::FCOPYSIGN, llvm::ISD::FDIV, llvm::MVT::Flag, llvm::ISD::FMUL, llvm::ISD::FP_ROUND_INREG, llvm::ISD::FREM, llvm::ISD::FSUB, getConstant(), getConstantFP(), getNode(), llvm::SDOperand::getOperand(), llvm::ConstantSDNode::getSignExtended(), llvm::MVT::getSizeInBits(), llvm::ConstantFPSDNode::getValue(), llvm::ConstantSDNode::getValue(), llvm::SDOperand::getValueType(), I, llvm::MVT::i1, isCommutativeBinOp(), llvm::MVT::isFloatingPoint(), llvm::MVT::isInteger(), llvm::ISD::MUL, llvm::ISD::MULHS, llvm::ISD::MULHU, llvm::ISD::OR, llvm::MVT::Other, llvm::ISD::ROTL, llvm::ISD::ROTR, llvm::ISD::SDIV, llvm::SDNode::setValueTypes(), llvm::ISD::SHL, llvm::ISD::SIGN_EXTEND_INREG, llvm::ISD::SRA, llvm::ISD::SREM, llvm::ISD::SUB, llvm::ISD::TokenFactor, llvm::ISD::UDIV, llvm::ISD::UREM, llvm::SDOperand::Val, and llvm::ISD::XOR.
SDOperand SelectionDAG::getNode | ( | unsigned | Opcode, | |
MVT::ValueType | VT, | |||
SDOperand | N | |||
) |
Definition at line 1026 of file SelectionDAG.cpp.
References llvm::ISD::ANY_EXTEND, llvm::ISD::BIT_CONVERT, llvm::BitsToDouble(), llvm::BitsToFloat(), llvm::ISD::BSWAP, llvm::ByteSwap_16(), llvm::ByteSwap_32(), llvm::ByteSwap_64(), llvm::CallingConv::C, llvm::CountLeadingZeros_32(), llvm::CountLeadingZeros_64(), llvm::CountPopulation_32(), llvm::CountPopulation_64(), llvm::CountTrailingZeros_32(), llvm::CountTrailingZeros_64(), llvm::ISD::CTLZ, llvm::ISD::CTPOP, llvm::ISD::CTTZ, llvm::DoubleToBits(), E, llvm::MVT::f32, llvm::MVT::f64, llvm::ISD::FABS, llvm::MVT::Flag, llvm::FloatToBits(), llvm::ISD::FNEG, llvm::ISD::FP_EXTEND, llvm::ISD::FP_ROUND, llvm::ISD::FP_TO_SINT, llvm::ISD::FP_TO_UINT, llvm::ISD::FSUB, getConstant(), getConstantFP(), getNode(), llvm::SDNode::getOperand(), llvm::MVT::getSizeInBits(), llvm::MVT::getVectorBaseType(), llvm::MVT::i1, llvm::MVT::i16, llvm::MVT::i32, llvm::MVT::i64, llvm::MVT::i8, llvm::MVT::isVector(), Operand, llvm::ISD::SCALAR_TO_VECTOR, llvm::SDNode::setValueTypes(), llvm::ISD::SIGN_EXTEND, llvm::ISD::SINT_TO_FP, llvm::ISD::TokenFactor, llvm::ISD::TRUNCATE, llvm::ISD::UINT_TO_FP, llvm::ISD::UNDEF, llvm::SDOperand::Val, Val, and llvm::ISD::ZERO_EXTEND.
SDOperand SelectionDAG::getNode | ( | unsigned | Opcode, | |
MVT::ValueType | VT | |||
) |
getNode - Gets or creates the specified node.
Definition at line 1017 of file SelectionDAG.cpp.
Referenced by BuildSDIVSequence(), BuildUDIVSequence(), CommuteVectorShuffle(), getCALLSEQ_START(), getCopyFromReg(), getCopyToReg(), getExtLoad(), getMemBasePlusOffset(), getMemsetValue(), getNode(), llvm::SelectionDAGLowering::getRoot(), getSelectCC(), getSetCC(), getTargetNode(), getVAArg(), llvm::SelectionDAGLowering::getValue(), getVecLoad(), getZeroExtendInReg(), llvm::TargetLowering::LowerArguments(), llvm::PPCTargetLowering::LowerArguments(), llvm::IA64TargetLowering::LowerArguments(), llvm::AlphaTargetLowering::LowerArguments(), llvm::PPCTargetLowering::LowerCallTo(), llvm::IA64TargetLowering::LowerCallTo(), llvm::AlphaTargetLowering::LowerCallTo(), llvm::X86TargetLowering::LowerFrameReturnAddress(), llvm::X86TargetLowering::LowerOperation(), llvm::PPCTargetLowering::LowerOperation(), llvm::IA64TargetLowering::LowerOperation(), llvm::AlphaTargetLowering::LowerOperation(), llvm::PPCTargetLowering::PerformDAGCombine(), SelectionDAG(), llvm::TargetLowering::TargetLoweringOpt::ShrinkDemandedConstant(), llvm::TargetLowering::SimplifyDemandedBits(), llvm::SelectionDAGLowering::visitAlloca(), llvm::SelectionDAGLowering::visitBinary(), llvm::SelectionDAGLowering::visitBr(), llvm::SelectionDAGLowering::visitCall(), llvm::SelectionDAGLowering::visitCast(), llvm::SelectionDAGLowering::visitExtractElement(), llvm::SelectionDAGLowering::visitGetElementPtr(), llvm::SelectionDAGLowering::visitInlineAsm(), llvm::SelectionDAGLowering::visitInsertElement(), llvm::SelectionDAGLowering::visitIntrinsicCall(), llvm::SelectionDAGLowering::visitMalloc(), llvm::SelectionDAGLowering::visitMemIntrinsic(), llvm::SelectionDAGLowering::visitSelect(), llvm::SelectionDAGLowering::visitShift(), llvm::SelectionDAGLowering::visitShr(), llvm::SelectionDAGLowering::visitShuffleVector(), llvm::SelectionDAGLowering::visitStore(), llvm::SelectionDAGLowering::visitSub(), llvm::SelectionDAGLowering::visitSwitch(), llvm::SelectionDAGLowering::visitSwitchCase(), llvm::SelectionDAGLowering::visitTargetIntrinsic(), llvm::SelectionDAGLowering::visitUserOp2(), llvm::SelectionDAGLowering::visitVACopy(), llvm::SelectionDAGLowering::visitVAEnd(), and llvm::SelectionDAGLowering::visitVAStart().
SDOperand SelectionDAG::getRegister | ( | unsigned | Reg, | |
MVT::ValueType | VT | |||
) |
Definition at line 803 of file SelectionDAG.cpp.
References Reg.
Referenced by getCopyFromReg(), getCopyToReg(), llvm::PPCTargetLowering::LowerCallTo(), llvm::IA64TargetLowering::LowerCallTo(), and llvm::PPCTargetLowering::LowerOperation().
const SDOperand& llvm::SelectionDAG::getRoot | ( | ) | const [inline] |
getRoot - Return the root tag of the SelectionDAG.
Definition at line 82 of file SelectionDAG.h.
Referenced by dump(), llvm::SelectionDAGLowering::getRoot(), llvm::PPCTargetLowering::LowerArguments(), llvm::IA64TargetLowering::LowerArguments(), llvm::AlphaTargetLowering::LowerArguments(), RemoveDeadNodes(), llvm::SelectionDAGLowering::visitLoad(), and llvm::SelectionDAGLowering::visitTargetIntrinsic().
SDOperand llvm::SelectionDAG::getSelectCC | ( | SDOperand | LHS, | |
SDOperand | RHS, | |||
SDOperand | True, | |||
SDOperand | False, | |||
ISD::CondCode | Cond | |||
) | [inline] |
getSelectCC - Helper function to make it easier to build SelectCC's if you just have an ISD::CondCode instead of an SDOperand.
Definition at line 241 of file SelectionDAG.h.
References False, getCondCode(), getNode(), llvm::ISD::SELECT_CC, and True.
Referenced by llvm::PPCTargetLowering::LowerOperation().
SDOperand llvm::SelectionDAG::getSetCC | ( | MVT::ValueType | VT, | |
SDOperand | LHS, | |||
SDOperand | RHS, | |||
ISD::CondCode | Cond | |||
) | [inline] |
getSetCC - Helper function to make it easier to build SetCC's if you just have an ISD::CondCode instead of an SDOperand.
Definition at line 233 of file SelectionDAG.h.
References getCondCode(), getNode(), and llvm::ISD::SETCC.
Referenced by llvm::IA64TargetLowering::LowerCallTo(), llvm::PPCTargetLowering::LowerOperation(), llvm::AlphaTargetLowering::LowerOperation(), llvm::SelectionDAGLowering::visitCast(), llvm::SelectionDAGLowering::visitIntrinsicCall(), llvm::SelectionDAGLowering::visitSetCC(), and llvm::SelectionDAGLowering::visitSwitchCase().
Definition at line 1539 of file SelectionDAG.cpp.
References V.
Referenced by llvm::PPCTargetLowering::LowerArguments(), llvm::IA64TargetLowering::LowerArguments(), llvm::AlphaTargetLowering::LowerArguments(), llvm::PPCTargetLowering::LowerCallTo(), llvm::IA64TargetLowering::LowerCallTo(), llvm::X86TargetLowering::LowerFrameReturnAddress(), llvm::X86TargetLowering::LowerOperation(), llvm::PPCTargetLowering::LowerOperation(), llvm::IA64TargetLowering::LowerOperation(), llvm::AlphaTargetLowering::LowerOperation(), llvm::SelectionDAGLowering::visitInlineAsm(), llvm::SelectionDAGLowering::visitLoad(), llvm::SelectionDAGLowering::visitMemIntrinsic(), llvm::SelectionDAGLowering::visitStore(), llvm::SelectionDAGLowering::visitVAArg(), llvm::SelectionDAGLowering::visitVACopy(), llvm::SelectionDAGLowering::visitVAEnd(), and llvm::SelectionDAGLowering::visitVAStart().
SDOperand SelectionDAG::getString | ( | const std::string & | Val | ) |
Definition at line 650 of file SelectionDAG.cpp.
Referenced by llvm::SelectionDAGLowering::visitIntrinsicCall().
const TargetMachine & SelectionDAG::getTarget | ( | ) | const |
Definition at line 230 of file SelectionDAG.cpp.
References llvm::TargetLowering::getTargetMachine().
Referenced by llvm::createBFS_DAGScheduler(), llvm::createBURRListDAGScheduler(), llvm::createSimpleDAGScheduler(), llvm::createTDListDAGScheduler(), and llvm::SelectionDAGLowering::GetRegistersForValue().
SDOperand SelectionDAG::getTargetConstant | ( | uint64_t | Val, | |
MVT::ValueType | VT | |||
) |
Definition at line 659 of file SelectionDAG.cpp.
References llvm::MVT::getSizeInBits(), llvm::MVT::i64, and llvm::MVT::isInteger().
Referenced by llvm::PPC::get_VSPLTI_elt().
SDOperand SelectionDAG::getTargetConstantFP | ( | double | Val, | |
MVT::ValueType | VT | |||
) |
Definition at line 687 of file SelectionDAG.cpp.
References llvm::DoubleToBits(), llvm::MVT::f32, and llvm::MVT::isFloatingPoint().
SDOperand SelectionDAG::getTargetConstantPool | ( | Constant * | C, | |
MVT::ValueType | VT, | |||
unsigned | Alignment = 0 , |
|||
int | offset = 0 | |||
) |
Definition at line 746 of file SelectionDAG.cpp.
References llvm::CallingConv::C.
Referenced by llvm::X86TargetLowering::LowerOperation(), llvm::PPCTargetLowering::LowerOperation(), and llvm::AlphaTargetLowering::LowerOperation().
SDOperand SelectionDAG::getTargetExternalSymbol | ( | const char * | Sym, | |
MVT::ValueType | VT | |||
) |
Definition at line 783 of file SelectionDAG.cpp.
Referenced by llvm::X86TargetLowering::LowerCallTo(), llvm::X86TargetLowering::LowerOperation(), llvm::AlphaTargetLowering::LowerOperation(), and llvm::SelectionDAGLowering::visitInlineAsm().
SDOperand SelectionDAG::getTargetFrameIndex | ( | int | FI, | |
MVT::ValueType | VT | |||
) |
Definition at line 728 of file SelectionDAG.cpp.
SDOperand SelectionDAG::getTargetGlobalAddress | ( | const GlobalValue * | GV, | |
MVT::ValueType | VT, | |||
int | offset = 0 | |||
) |
Definition at line 711 of file SelectionDAG.cpp.
References GV.
Referenced by llvm::X86TargetLowering::LowerCallTo(), llvm::PPCTargetLowering::LowerCallTo(), llvm::X86TargetLowering::LowerOperation(), llvm::PPCTargetLowering::LowerOperation(), and llvm::AlphaTargetLowering::LowerOperation().
TargetLowering& llvm::SelectionDAG::getTargetLoweringInfo | ( | ) | const [inline] |
SDNode * SelectionDAG::getTargetNode | ( | unsigned | Opcode, | |
MVT::ValueType | VT1, | |||
MVT::ValueType | VT2, | |||
std::vector< SDOperand > & | Ops | |||
) |
Definition at line 2387 of file SelectionDAG.cpp.
References llvm::ISD::BUILTIN_OP_END, getNode(), and llvm::SDOperand::Val.
SDNode * SelectionDAG::getTargetNode | ( | unsigned | Opcode, | |
MVT::ValueType | VT1, | |||
MVT::ValueType | VT2, | |||
MVT::ValueType | VT3, | |||
SDOperand | Op1, | |||
SDOperand | Op2, | |||
SDOperand | Op3, | |||
SDOperand | Op4, | |||
SDOperand | Op5, | |||
SDOperand | Op6, | |||
SDOperand | Op7 | |||
) |
Definition at line 2368 of file SelectionDAG.cpp.
References llvm::ISD::BUILTIN_OP_END, getNode(), and llvm::SDOperand::Val.
SDNode * SelectionDAG::getTargetNode | ( | unsigned | Opcode, | |
MVT::ValueType | VT1, | |||
MVT::ValueType | VT2, | |||
MVT::ValueType | VT3, | |||
SDOperand | Op1, | |||
SDOperand | Op2, | |||
SDOperand | Op3, | |||
SDOperand | Op4, | |||
SDOperand | Op5, | |||
SDOperand | Op6 | |||
) |
Definition at line 2350 of file SelectionDAG.cpp.
References llvm::ISD::BUILTIN_OP_END, getNode(), and llvm::SDOperand::Val.
SDNode * SelectionDAG::getTargetNode | ( | unsigned | Opcode, | |
MVT::ValueType | VT1, | |||
MVT::ValueType | VT2, | |||
MVT::ValueType | VT3, | |||
SDOperand | Op1, | |||
SDOperand | Op2, | |||
SDOperand | Op3, | |||
SDOperand | Op4, | |||
SDOperand | Op5 | |||
) |
Definition at line 2334 of file SelectionDAG.cpp.
References llvm::ISD::BUILTIN_OP_END, getNode(), and llvm::SDOperand::Val.
SDNode * SelectionDAG::getTargetNode | ( | unsigned | Opcode, | |
MVT::ValueType | VT1, | |||
MVT::ValueType | VT2, | |||
MVT::ValueType | VT3, | |||
SDOperand | Op1, | |||
SDOperand | Op2 | |||
) |
Definition at line 2322 of file SelectionDAG.cpp.
References llvm::ISD::BUILTIN_OP_END, getNode(), and llvm::SDOperand::Val.
SDNode * SelectionDAG::getTargetNode | ( | unsigned | Opcode, | |
MVT::ValueType | VT1, | |||
MVT::ValueType | VT2, | |||
SDOperand | Op1, | |||
SDOperand | Op2, | |||
SDOperand | Op3, | |||
SDOperand | Op4, | |||
SDOperand | Op5, | |||
SDOperand | Op6, | |||
SDOperand | Op7 | |||
) |
Definition at line 2305 of file SelectionDAG.cpp.
References llvm::ISD::BUILTIN_OP_END, getNode(), and llvm::SDOperand::Val.
SDNode * SelectionDAG::getTargetNode | ( | unsigned | Opcode, | |
MVT::ValueType | VT1, | |||
MVT::ValueType | VT2, | |||
SDOperand | Op1, | |||
SDOperand | Op2, | |||
SDOperand | Op3, | |||
SDOperand | Op4, | |||
SDOperand | Op5, | |||
SDOperand | Op6 | |||
) |
Definition at line 2289 of file SelectionDAG.cpp.
References llvm::ISD::BUILTIN_OP_END, getNode(), and llvm::SDOperand::Val.
SDNode * SelectionDAG::getTargetNode | ( | unsigned | Opcode, | |
MVT::ValueType | VT1, | |||
MVT::ValueType | VT2, | |||
SDOperand | Op1, | |||
SDOperand | Op2, | |||
SDOperand | Op3, | |||
SDOperand | Op4, | |||
SDOperand | Op5 | |||
) |
Definition at line 2275 of file SelectionDAG.cpp.
References llvm::ISD::BUILTIN_OP_END, getNode(), and llvm::SDOperand::Val.
SDNode * SelectionDAG::getTargetNode | ( | unsigned | Opcode, | |
MVT::ValueType | VT1, | |||
MVT::ValueType | VT2, | |||
SDOperand | Op1, | |||
SDOperand | Op2, | |||
SDOperand | Op3, | |||
SDOperand | Op4 | |||
) |
Definition at line 2262 of file SelectionDAG.cpp.
References llvm::ISD::BUILTIN_OP_END, getNode(), and llvm::SDOperand::Val.
SDNode * SelectionDAG::getTargetNode | ( | unsigned | Opcode, | |
MVT::ValueType | VT1, | |||
MVT::ValueType | VT2, | |||
SDOperand | Op1, | |||
SDOperand | Op2, | |||
SDOperand | Op3 | |||
) |
Definition at line 2250 of file SelectionDAG.cpp.
References llvm::ISD::BUILTIN_OP_END, getNode(), and llvm::SDOperand::Val.
SDNode * SelectionDAG::getTargetNode | ( | unsigned | Opcode, | |
MVT::ValueType | VT1, | |||
MVT::ValueType | VT2, | |||
SDOperand | Op1, | |||
SDOperand | Op2 | |||
) |
Definition at line 2240 of file SelectionDAG.cpp.
References llvm::ISD::BUILTIN_OP_END, getNode(), and llvm::SDOperand::Val.
SDNode * SelectionDAG::getTargetNode | ( | unsigned | Opcode, | |
MVT::ValueType | VT1, | |||
MVT::ValueType | VT2, | |||
SDOperand | Op1 | |||
) |
Definition at line 2231 of file SelectionDAG.cpp.
References llvm::ISD::BUILTIN_OP_END, getNode(), and llvm::SDOperand::Val.
SDNode * SelectionDAG::getTargetNode | ( | unsigned | Opcode, | |
MVT::ValueType | VT, | |||
std::vector< SDOperand > & | Ops | |||
) |
Definition at line 2227 of file SelectionDAG.cpp.
References llvm::ISD::BUILTIN_OP_END, getNode(), and llvm::SDOperand::Val.
SDNode * SelectionDAG::getTargetNode | ( | unsigned | Opcode, | |
MVT::ValueType | VT, | |||
SDOperand | Op1, | |||
SDOperand | Op2, | |||
SDOperand | Op3, | |||
SDOperand | Op4, | |||
SDOperand | Op5, | |||
SDOperand | Op6, | |||
SDOperand | Op7, | |||
SDOperand | Op8 | |||
) |
Definition at line 2211 of file SelectionDAG.cpp.
References llvm::ISD::BUILTIN_OP_END, getNode(), and llvm::SDOperand::Val.
SDNode * SelectionDAG::getTargetNode | ( | unsigned | Opcode, | |
MVT::ValueType | VT, | |||
SDOperand | Op1, | |||
SDOperand | Op2, | |||
SDOperand | Op3, | |||
SDOperand | Op4, | |||
SDOperand | Op5, | |||
SDOperand | Op6, | |||
SDOperand | Op7 | |||
) |
Definition at line 2196 of file SelectionDAG.cpp.
References llvm::ISD::BUILTIN_OP_END, getNode(), and llvm::SDOperand::Val.
SDNode * SelectionDAG::getTargetNode | ( | unsigned | Opcode, | |
MVT::ValueType | VT, | |||
SDOperand | Op1, | |||
SDOperand | Op2, | |||
SDOperand | Op3, | |||
SDOperand | Op4, | |||
SDOperand | Op5, | |||
SDOperand | Op6 | |||
) |
Definition at line 2183 of file SelectionDAG.cpp.
References llvm::ISD::BUILTIN_OP_END, getNode(), and llvm::SDOperand::Val.
SDNode * SelectionDAG::getTargetNode | ( | unsigned | Opcode, | |
MVT::ValueType | VT, | |||
SDOperand | Op1, | |||
SDOperand | Op2, | |||
SDOperand | Op3, | |||
SDOperand | Op4, | |||
SDOperand | Op5 | |||
) |
Definition at line 2178 of file SelectionDAG.cpp.
References llvm::ISD::BUILTIN_OP_END, getNode(), and llvm::SDOperand::Val.
SDNode * SelectionDAG::getTargetNode | ( | unsigned | Opcode, | |
MVT::ValueType | VT, | |||
SDOperand | Op1, | |||
SDOperand | Op2, | |||
SDOperand | Op3, | |||
SDOperand | Op4 | |||
) |
Definition at line 2173 of file SelectionDAG.cpp.
References llvm::ISD::BUILTIN_OP_END, getNode(), and llvm::SDOperand::Val.
SDNode * SelectionDAG::getTargetNode | ( | unsigned | Opcode, | |
MVT::ValueType | VT, | |||
SDOperand | Op1, | |||
SDOperand | Op2, | |||
SDOperand | Op3 | |||
) |
Definition at line 2169 of file SelectionDAG.cpp.
References llvm::ISD::BUILTIN_OP_END, getNode(), and llvm::SDOperand::Val.
SDNode * SelectionDAG::getTargetNode | ( | unsigned | Opcode, | |
MVT::ValueType | VT, | |||
SDOperand | Op1, | |||
SDOperand | Op2 | |||
) |
Definition at line 2165 of file SelectionDAG.cpp.
References llvm::ISD::BUILTIN_OP_END, getNode(), and llvm::SDOperand::Val.
SDNode * SelectionDAG::getTargetNode | ( | unsigned | Opcode, | |
MVT::ValueType | VT, | |||
SDOperand | Op1 | |||
) |
Definition at line 2161 of file SelectionDAG.cpp.
References llvm::ISD::BUILTIN_OP_END, getNode(), and llvm::SDOperand::Val.
SDNode * SelectionDAG::getTargetNode | ( | unsigned | Opcode, | |
MVT::ValueType | VT | |||
) |
getTargetNode - These are used for target selectors to create a new node with specified return type(s), target opcode, and operands.
Note that getTargetNode returns the resultant node. If there is already a node of the specified opcode and operands, it returns that node instead of the current one.
Definition at line 2158 of file SelectionDAG.cpp.
References llvm::ISD::BUILTIN_OP_END, getNode(), and llvm::SDOperand::Val.
SDOperand SelectionDAG::getVAArg | ( | MVT::ValueType | VT, | |
SDOperand | Chain, | |||
SDOperand | Ptr, | |||
SDOperand | SV | |||
) |
getVAArg - VAArg produces a result and token chain, and takes a pointer and a source value as input.
Definition at line 1550 of file SelectionDAG.cpp.
References getNode(), llvm::MVT::Other, and llvm::ISD::VAARG.
Referenced by llvm::SelectionDAGLowering::visitVAArg().
SDOperand SelectionDAG::getValueType | ( | MVT::ValueType | ) |
Definition at line 764 of file SelectionDAG.cpp.
Referenced by getExtLoad(), getNode(), llvm::SelectionDAGLowering::getValue(), getVecLoad(), llvm::TargetLowering::LowerArguments(), llvm::PPCTargetLowering::LowerArguments(), llvm::AlphaTargetLowering::LowerArguments(), llvm::PPCTargetLowering::LowerCallTo(), llvm::AlphaTargetLowering::LowerCallTo(), llvm::X86TargetLowering::LowerOperation(), llvm::AlphaTargetLowering::LowerOperation(), llvm::SelectionDAGLowering::visitBinary(), llvm::SelectionDAGLowering::visitCast(), and llvm::SelectionDAGLowering::visitTargetIntrinsic().
SDOperand SelectionDAG::getVecLoad | ( | unsigned | Count, | |
MVT::ValueType | VT, | |||
SDOperand | Chain, | |||
SDOperand | Ptr, | |||
SDOperand | SV | |||
) |
Definition at line 1508 of file SelectionDAG.cpp.
References getConstant(), getNode(), getValueType(), llvm::MVT::i32, llvm::MVT::Other, llvm::MVT::Vector, and llvm::ISD::VLOAD.
Referenced by llvm::SelectionDAGLowering::getLoadFrom().
SDOperand SelectionDAG::getZeroExtendInReg | ( | SDOperand | Op, | |
MVT::ValueType | SrcTy | |||
) |
getZeroExtendInReg - Return the expression required to zero extend the Op value assuming it was the smaller SrcTy value.
Definition at line 628 of file SelectionDAG.cpp.
References llvm::ISD::AND, getConstant(), getNode(), llvm::MVT::getSizeInBits(), Imm, and Op.
void SelectionDAG::InsertISelMapEntry | ( | std::map< SDOperand, SDOperand > & | Map, | |
SDNode * | Key, | |||
unsigned | KeyResNo, | |||
SDNode * | Element, | |||
unsigned | ElementResNo | |||
) | [static] |
InsertISelMapEntry - A helper function to insert a key / element pair into a SDOperand to SDOperand map. This is added to avoid the map insertion operator from being inlined.
Definition at line 2970 of file SelectionDAG.cpp.
void SelectionDAG::Legalize | ( | ) |
Legalize - This transforms the SelectionDAG into a SelectionDAG that is compatible with the target instruction selector, as indicated by the TargetLowering object.
Note that this is an involved process that may invalidate pointers into the graph.
run - This is the main entry point to this class.
Definition at line 4875 of file LegalizeDAG.cpp.
References viewGraph().
void SelectionDAG::RemoveDeadNodes | ( | SDNode * | N = 0 |
) |
RemoveDeadNodes - This method deletes all unreachable nodes in the SelectionDAG, including nodes (like loads) that have uses of their token chain but no other uses and no side effect. If a node is passed in as an argument, it is used as the seed for node deletion.
Definition at line 242 of file SelectionDAG.cpp.
References allnodes_begin(), allnodes_end(), E, getRoot(), llvm::HandleSDNode::getValue(), I, MadeChange, setRoot(), and llvm::SDNode::use_empty().
void SelectionDAG::ReplaceAllUsesOfValueWith | ( | SDOperand | From, | |
SDOperand | To, | |||
std::vector< SDNode * > & | Deleted | |||
) |
ReplaceAllUsesOfValueWith - Replace any uses of From with To, leaving uses of other values produced by From.Val alone. The Deleted vector is handled the same was as for ReplaceAllUsesWith, but it is required for this method.
Definition at line 2521 of file SelectionDAG.cpp.
References llvm::SDNode::addUser(), E, llvm::SDNode::getNumValues(), NumDeleted, Op, llvm::SDNode::removeUser(), ReplaceAllUsesWith(), llvm::SDNode::use_begin(), llvm::SDNode::use_end(), Users, and llvm::SDOperand::Val.
void SelectionDAG::ReplaceAllUsesWith | ( | SDNode * | From, | |
const std::vector< SDOperand > & | To, | |||
std::vector< SDNode * > * | Deleted = 0 | |||
) |
ReplaceAllUsesWith - Modify anything using 'From' to use 'To' instead. This can cause recursive merging of nodes in the DAG.
This version can replace From with any result values. To must match the number and types of values returned by From.
Definition at line 2480 of file SelectionDAG.cpp.
References llvm::SDNode::addUser(), E, llvm::SDNode::getNumValues(), llvm::SDNode::removeUser(), ReplaceAllUsesWith(), U, llvm::SDNode::use_begin(), llvm::SDNode::use_empty(), and llvm::SDOperand::Val.
void SelectionDAG::ReplaceAllUsesWith | ( | SDNode * | From, | |
SDNode * | To, | |||
std::vector< SDNode * > * | Deleted = 0 | |||
) |
ReplaceAllUsesWith - Modify anything using 'From' to use 'To' instead. This can cause recursive merging of nodes in the DAG.
This version assumes From/To have matching types and numbers of result values.
Definition at line 2439 of file SelectionDAG.cpp.
References llvm::SDNode::addUser(), E, llvm::SDNode::getNumValues(), llvm::SDNode::removeUser(), ReplaceAllUsesWith(), U, llvm::SDNode::use_begin(), and llvm::SDNode::use_empty().
void SelectionDAG::ReplaceAllUsesWith | ( | SDOperand | From, | |
SDOperand | Op, | |||
std::vector< SDNode * > * | Deleted = 0 | |||
) |
ReplaceAllUsesWith - Modify anything using 'From' to use 'To' instead. This can cause recursive merging of nodes in the DAG. Use the first version if 'From' is known to have a single result, use the second if you have two nodes with identical results, use the third otherwise.
These methods all take an optional vector, which (if not null) is populated with any nodes that are deleted from the SelectionDAG, due to new equivalences that are discovered.
Definition at line 2400 of file SelectionDAG.cpp.
References E, llvm::SDNode::getNumValues(), llvm::SDNode::removeUser(), U, llvm::SDNode::use_begin(), llvm::SDNode::use_empty(), and llvm::SDOperand::Val.
Referenced by ReplaceAllUsesOfValueWith(), and ReplaceAllUsesWith().
SDOperand SelectionDAG::SelectNodeTo | ( | SDNode * | N, | |
unsigned | TargetOpc, | |||
MVT::ValueType | VT1, | |||
MVT::ValueType | VT2, | |||
SDOperand | Op1, | |||
SDOperand | Op2, | |||
SDOperand | Op3, | |||
SDOperand | Op4, | |||
SDOperand | Op5 | |||
) |
Definition at line 2128 of file SelectionDAG.cpp.
References llvm::ISD::BUILTIN_OP_END, llvm::SDNode::MorphNodeTo(), and llvm::SDNode::setOperands().
SDOperand SelectionDAG::SelectNodeTo | ( | SDNode * | N, | |
unsigned | TargetOpc, | |||
MVT::ValueType | VT1, | |||
MVT::ValueType | VT2, | |||
SDOperand | Op1, | |||
SDOperand | Op2, | |||
SDOperand | Op3, | |||
SDOperand | Op4 | |||
) |
Definition at line 2105 of file SelectionDAG.cpp.
References llvm::ISD::BUILTIN_OP_END, llvm::SDNode::MorphNodeTo(), and llvm::SDNode::setOperands().
SDOperand SelectionDAG::SelectNodeTo | ( | SDNode * | N, | |
unsigned | TargetOpc, | |||
MVT::ValueType | VT1, | |||
MVT::ValueType | VT2, | |||
SDOperand | Op1, | |||
SDOperand | Op2, | |||
SDOperand | Op3 | |||
) |
Definition at line 2083 of file SelectionDAG.cpp.
References llvm::ISD::BUILTIN_OP_END, llvm::SDNode::MorphNodeTo(), and llvm::SDNode::setOperands().
SDOperand SelectionDAG::SelectNodeTo | ( | SDNode * | N, | |
unsigned | TargetOpc, | |||
MVT::ValueType | VT1, | |||
MVT::ValueType | VT2, | |||
SDOperand | Op1, | |||
SDOperand | Op2 | |||
) |
Definition at line 2062 of file SelectionDAG.cpp.
References llvm::ISD::BUILTIN_OP_END, llvm::SDNode::MorphNodeTo(), and llvm::SDNode::setOperands().
SDOperand SelectionDAG::SelectNodeTo | ( | SDNode * | N, | |
unsigned | TargetOpc, | |||
MVT::ValueType | VT, | |||
SDOperand | Op1, | |||
SDOperand | Op2, | |||
SDOperand | Op3, | |||
SDOperand | Op4, | |||
SDOperand | Op5, | |||
SDOperand | Op6, | |||
SDOperand | Op7, | |||
SDOperand | Op8 | |||
) |
Definition at line 2039 of file SelectionDAG.cpp.
References llvm::ISD::BUILTIN_OP_END, llvm::SDNode::MorphNodeTo(), llvm::SDNode::setOperands(), and llvm::SDNode::setValueTypes().
SDOperand SelectionDAG::SelectNodeTo | ( | SDNode * | N, | |
unsigned | TargetOpc, | |||
MVT::ValueType | VT, | |||
SDOperand | Op1, | |||
SDOperand | Op2, | |||
SDOperand | Op3, | |||
SDOperand | Op4, | |||
SDOperand | Op5, | |||
SDOperand | Op6, | |||
SDOperand | Op7 | |||
) |
Definition at line 2017 of file SelectionDAG.cpp.
References llvm::ISD::BUILTIN_OP_END, llvm::SDNode::MorphNodeTo(), llvm::SDNode::setOperands(), and llvm::SDNode::setValueTypes().
SDOperand SelectionDAG::SelectNodeTo | ( | SDNode * | N, | |
unsigned | TargetOpc, | |||
MVT::ValueType | VT, | |||
SDOperand | Op1, | |||
SDOperand | Op2, | |||
SDOperand | Op3, | |||
SDOperand | Op4, | |||
SDOperand | Op5, | |||
SDOperand | Op6 | |||
) |
Definition at line 1996 of file SelectionDAG.cpp.
References llvm::ISD::BUILTIN_OP_END, llvm::SDNode::MorphNodeTo(), llvm::SDNode::setOperands(), and llvm::SDNode::setValueTypes().
SDOperand SelectionDAG::SelectNodeTo | ( | SDNode * | N, | |
unsigned | TargetOpc, | |||
MVT::ValueType | VT, | |||
SDOperand | Op1, | |||
SDOperand | Op2, | |||
SDOperand | Op3, | |||
SDOperand | Op4, | |||
SDOperand | Op5 | |||
) |
Definition at line 1975 of file SelectionDAG.cpp.
References llvm::ISD::BUILTIN_OP_END, llvm::SDNode::MorphNodeTo(), llvm::SDNode::setOperands(), and llvm::SDNode::setValueTypes().
SDOperand SelectionDAG::SelectNodeTo | ( | SDNode * | N, | |
unsigned | TargetOpc, | |||
MVT::ValueType | VT, | |||
SDOperand | Op1, | |||
SDOperand | Op2, | |||
SDOperand | Op3, | |||
SDOperand | Op4 | |||
) |
Definition at line 1954 of file SelectionDAG.cpp.
References llvm::ISD::BUILTIN_OP_END, llvm::SDNode::MorphNodeTo(), llvm::SDNode::setOperands(), and llvm::SDNode::setValueTypes().
SDOperand SelectionDAG::SelectNodeTo | ( | SDNode * | N, | |
unsigned | TargetOpc, | |||
MVT::ValueType | VT, | |||
SDOperand | Op1, | |||
SDOperand | Op2, | |||
SDOperand | Op3 | |||
) |
Definition at line 1935 of file SelectionDAG.cpp.
References llvm::ISD::BUILTIN_OP_END, llvm::SDNode::MorphNodeTo(), llvm::SDNode::setOperands(), and llvm::SDNode::setValueTypes().
SDOperand SelectionDAG::SelectNodeTo | ( | SDNode * | N, | |
unsigned | TargetOpc, | |||
MVT::ValueType | VT, | |||
SDOperand | Op1, | |||
SDOperand | Op2 | |||
) |
Definition at line 1918 of file SelectionDAG.cpp.
References llvm::ISD::BUILTIN_OP_END, llvm::SDNode::MorphNodeTo(), llvm::SDNode::setOperands(), and llvm::SDNode::setValueTypes().
SDOperand SelectionDAG::SelectNodeTo | ( | SDNode * | N, | |
unsigned | TargetOpc, | |||
MVT::ValueType | VT, | |||
SDOperand | Op1 | |||
) |
Definition at line 1902 of file SelectionDAG.cpp.
References llvm::ISD::BUILTIN_OP_END, llvm::SDNode::MorphNodeTo(), llvm::SDNode::setOperands(), and llvm::SDNode::setValueTypes().
SDOperand SelectionDAG::SelectNodeTo | ( | SDNode * | N, | |
unsigned | TargetOpc, | |||
MVT::ValueType | VT | |||
) |
SelectNodeTo - These are used for target selectors to *mutate* the specified node to have the specified return type, Target opcode, and operands. Note that target opcodes are stored as ISD::BUILTIN_OP_END+TargetOpcode in the node opcode field. The 0th value of the resultant node is returned.
Definition at line 1887 of file SelectionDAG.cpp.
References llvm::ISD::BUILTIN_OP_END, llvm::SDNode::MorphNodeTo(), and llvm::SDNode::setValueTypes().
setRoot - Set the current root tag of the SelectionDAG.
Definition at line 90 of file SelectionDAG.h.
Referenced by llvm::SelectionDAGLowering::getLoadFrom(), llvm::SelectionDAGLowering::getRoot(), llvm::PPCTargetLowering::LowerArguments(), llvm::IA64TargetLowering::LowerArguments(), llvm::AlphaTargetLowering::LowerArguments(), RemoveDeadNodes(), llvm::SelectionDAGLowering::visitAlloca(), llvm::SelectionDAGLowering::visitBr(), llvm::SelectionDAGLowering::visitCall(), llvm::SelectionDAGLowering::visitFrameReturnAddress(), llvm::SelectionDAGLowering::visitFree(), llvm::SelectionDAGLowering::visitInlineAsm(), llvm::SelectionDAGLowering::visitIntrinsicCall(), llvm::SelectionDAGLowering::visitMalloc(), llvm::SelectionDAGLowering::visitMemIntrinsic(), llvm::SelectionDAGLowering::visitStore(), llvm::SelectionDAGLowering::visitSwitch(), llvm::SelectionDAGLowering::visitSwitchCase(), llvm::SelectionDAGLowering::visitTargetIntrinsic(), llvm::SelectionDAGLowering::visitVAArg(), llvm::SelectionDAGLowering::visitVACopy(), llvm::SelectionDAGLowering::visitVAEnd(), and llvm::SelectionDAGLowering::visitVAStart().
Definition at line 1835 of file SelectionDAG.cpp.
References llvm::SDNode::getNumOperands(), llvm::SDNode::getOperand(), llvm::SDOperand::ResNo, and llvm::SDOperand::Val.
Definition at line 1766 of file SelectionDAG.cpp.
References llvm::SDNode::addUser(), llvm::SDNode::getNumOperands(), llvm::SDNode::getOperand(), llvm::SDNode::removeUser(), llvm::SDOperand::ResNo, and llvm::SDOperand::Val.
UpdateNodeOperands - *Mutate* the specified node in-place to have the specified operands. If the resultant node already exists in the DAG, this does not modify the specified node, instead it returns the node that already exists. If the resultant node does not exist in the DAG, the input node is returned. As a degenerate case, if you specify the same input operands as the node already has, the input node is returned.
Definition at line 1739 of file SelectionDAG.cpp.
References llvm::SDNode::getNumOperands(), llvm::SDNode::getOperand(), Op, llvm::SDOperand::ResNo, llvm::Use::Val, and llvm::SDOperand::Val.
Referenced by UpdateNodeOperands().
void SelectionDAG::viewGraph | ( | ) |
viewGraph - Pop up a ghostview window with the DAG rendered using 'dot'.
Definition at line 126 of file SelectionDAGPrinter.cpp.
References llvm::sys::Path::appendComponent(), llvm::sys::Path::eraseFromDisk(), F, Filename, getMachineFunction(), llvm::Intrinsic::getName(), llvm::sys::Path::GetTemporaryDirectory(), llvm::sys::Path::toString(), and llvm::WriteGraph().
Referenced by Legalize(), and llvm::SelectionDAGISel::ScheduleAndEmitDAG().