LLVM API Documentation
#include <SelectionDAGNodes.h>


Classes | |
| class | use_iterator |
Public Types | |
| typedef SDUse * | op_iterator |
| typedef const EVT * | value_iterator |
Public Member Functions | |
| unsigned | getOpcode () const |
| bool | isTargetOpcode () const |
| bool | isTargetMemoryOpcode () const |
| bool | isMachineOpcode () const |
| unsigned | getMachineOpcode () const |
| bool | getHasDebugValue () const |
| getHasDebugValue - get this bit. | |
| void | setHasDebugValue (bool b) |
| setHasDebugValue - set this bit. | |
| bool | use_empty () const |
| bool | hasOneUse () const |
| size_t | use_size () const |
| int | getNodeId () const |
| void | setNodeId (int Id) |
| setNodeId - Set unique node id. | |
| unsigned | getIROrder () const |
| void | setIROrder (unsigned Order) |
| const DebugLoc | getDebugLoc () const |
| getDebugLoc - Return the source location info. | |
| void | setDebugLoc (const DebugLoc dl) |
| use_iterator | use_begin () const |
| bool | hasNUsesOfValue (unsigned NUses, unsigned Value) const |
| bool | hasAnyUseOfValue (unsigned Value) const |
| bool | isOnlyUserOf (SDNode *N) const |
| bool | isOperandOf (SDNode *N) const |
| bool | isPredecessorOf (const SDNode *N) const |
| bool | hasPredecessor (const SDNode *N) const |
| bool | hasPredecessorHelper (const SDNode *N, SmallPtrSet< const SDNode *, 32 > &Visited, SmallVector< const SDNode *, 16 > &Worklist) const |
| unsigned | getNumOperands () const |
| uint64_t | getConstantOperandVal (unsigned Num) const |
| const SDValue & | getOperand (unsigned Num) const |
| op_iterator | op_begin () const |
| op_iterator | op_end () const |
| SDVTList | getVTList () const |
| SDNode * | getGluedNode () const |
| const SDNode * | getGluedMachineNode () const |
| SDNode * | getGluedUser () const |
| unsigned | getNumValues () const |
| EVT | getValueType (unsigned ResNo) const |
| MVT | getSimpleValueType (unsigned ResNo) const |
| unsigned | getValueSizeInBits (unsigned ResNo) const |
| value_iterator | value_begin () const |
| value_iterator | value_end () const |
| std::string | getOperationName (const SelectionDAG *G=0) const |
| void | print_types (raw_ostream &OS, const SelectionDAG *G) const |
| void | print_details (raw_ostream &OS, const SelectionDAG *G) const |
| void | print (raw_ostream &OS, const SelectionDAG *G=0) const |
| void | printr (raw_ostream &OS, const SelectionDAG *G=0) const |
| void | printrFull (raw_ostream &O, const SelectionDAG *G=0) const |
| void | printrWithDepth (raw_ostream &O, const SelectionDAG *G=0, unsigned depth=100) const |
| void | dump () const |
| dump - Dump this node, for debugging. | |
| void | dumpr () const |
| dumpr - Dump (recursively) this node and its use-def subgraph. | |
| void | dump (const SelectionDAG *G) const |
| void | dumpr (const SelectionDAG *G) const |
| void | dumprFull (const SelectionDAG *G=0) const |
| void | dumprWithDepth (const SelectionDAG *G=0, unsigned depth=100) const |
| void | Profile (FoldingSetNodeID &ID) const |
| void | addUse (SDUse &U) |
Static Public Member Functions | |
| static use_iterator | use_end () |
| static const char * | getIndexedModeName (ISD::MemIndexedMode AM) |
Protected Member Functions | |
| SDNode (unsigned Opc, unsigned Order, const DebugLoc dl, SDVTList VTs, const SDValue *Ops, unsigned NumOps) | |
| SDNode (unsigned Opc, unsigned Order, const DebugLoc dl, SDVTList VTs) | |
| void | InitOperands (SDUse *Ops, const SDValue &Op0) |
| InitOperands - Initialize the operands list of this with 1 operand. | |
| void | InitOperands (SDUse *Ops, const SDValue &Op0, const SDValue &Op1) |
| InitOperands - Initialize the operands list of this with 2 operands. | |
| void | InitOperands (SDUse *Ops, const SDValue &Op0, const SDValue &Op1, const SDValue &Op2) |
| InitOperands - Initialize the operands list of this with 3 operands. | |
| void | InitOperands (SDUse *Ops, const SDValue &Op0, const SDValue &Op1, const SDValue &Op2, const SDValue &Op3) |
| InitOperands - Initialize the operands list of this with 4 operands. | |
| void | InitOperands (SDUse *Ops, const SDValue *Vals, unsigned N) |
| InitOperands - Initialize the operands list of this with N operands. | |
| void | DropOperands () |
Static Protected Member Functions | |
| static SDVTList | getSDVTList (EVT VT) |
Protected Attributes | |
| uint16_t | SubclassData: 14 |
Friends | |
| class | SelectionDAG |
| struct | ilist_traits< SDNode > |
SDNode - Represents one node in the SelectionDAG.
Definition at line 306 of file SelectionDAGNodes.h.
| typedef SDUse* llvm::SDNode::op_iterator |
Definition at line 557 of file SelectionDAGNodes.h.
| typedef const EVT* llvm::SDNode::value_iterator |
Definition at line 624 of file SelectionDAGNodes.h.
| llvm::SDNode::SDNode | ( | unsigned | Opc, |
| unsigned | Order, | ||
| const DebugLoc | dl, | ||
| SDVTList | VTs, | ||
| const SDValue * | Ops, | ||
| unsigned | NumOps | ||
| ) | [inline, protected] |
Definition at line 699 of file SelectionDAGNodes.h.
References llvm::checkForCycles().
| llvm::SDNode::SDNode | ( | unsigned | Opc, |
| unsigned | Order, | ||
| const DebugLoc | dl, | ||
| SDVTList | VTs | ||
| ) | [inline, protected] |
This constructor adds no operands itself; operands can be set later with InitOperands.
Definition at line 716 of file SelectionDAGNodes.h.
| void llvm::SDNode::addUse | ( | SDUse & | U | ) | [inline] |
addUse - This method should only be used by the SDUse class.
Definition at line 691 of file SelectionDAGNodes.h.
| void SDNode::DropOperands | ( | ) | [protected] |
DropOperands - Release the operands and set this node to have zero operands.
Definition at line 5032 of file SelectionDAG.cpp.
References I, op_begin(), and op_end().
Referenced by llvm::HandleSDNode::~HandleSDNode().
| void SDNode::dump | ( | ) | const |
dump - Dump this node, for debugging.
Definition at line 329 of file SelectionDAGDumper.cpp.
Referenced by llvm::SDValue::dump(), llvm::ScheduleDAGSDNodes::dumpNode(), DumpNodes(), llvm::AMDGPUTargetLowering::LowerOperation(), llvm::SITargetLowering::PerformDAGCombine(), llvm::DAGTypeLegalizer::run(), and llvm::SelectionDAGISel::SelectCodeCommon().
| void SDNode::dump | ( | const SelectionDAG * | G | ) | const |
dump - Dump this node, for debugging. The given SelectionDAG allows target-specific nodes to be printed in human-readable form.
Definition at line 330 of file SelectionDAGDumper.cpp.
References llvm::dbgs(), and print().
| void SDNode::dumpr | ( | ) | const |
dumpr - Dump (recursively) this node and its use-def subgraph.
Definition at line 583 of file SelectionDAGDumper.cpp.
References llvm::dbgs(), and DumpNodesr().
Referenced by llvm::SDValue::dumpr().
| void SDNode::dumpr | ( | const SelectionDAG * | G | ) | const |
dumpr - Dump (recursively) this node and its use-def subgraph. The given SelectionDAG allows target-specific nodes to be printed in human-readable form.
Definition at line 588 of file SelectionDAGDumper.cpp.
References llvm::dbgs(), and DumpNodesr().
| void SDNode::dumprFull | ( | const SelectionDAG * | G = 0 | ) | const |
dumprFull - printrFull to dbgs(). The given SelectionDAG allows target-specific nodes to be printed in human-readable form. Unlike dumpr, this will print the whole DAG, including children that appear multiple times.
Definition at line 629 of file SelectionDAGDumper.cpp.
References dumprWithDepth().
Referenced by llvm::SelectionDAG::AssignTopologicalOrder().
| void SDNode::dumprWithDepth | ( | const SelectionDAG * | G = 0, |
| unsigned | depth = 100 |
||
| ) | const |
dumprWithDepth - printrWithDepth to dbgs(). The given SelectionDAG allows target-specific nodes to be printed in human-readable form. Unlike dumpr, this will print children that appear multiple times wherever they are used.
Definition at line 625 of file SelectionDAGDumper.cpp.
References llvm::dbgs(), and printrWithDepth().
Referenced by dumprFull().
| uint64_t SDNode::getConstantOperandVal | ( | unsigned | Num | ) | const |
getConstantOperandVal - Helper method returns the integer value of a ConstantSDNode operand.
Definition at line 6095 of file SelectionDAG.cpp.
Referenced by llvm::SDValue::getConstantOperandVal(), PerformANDCombine(), PerformBrCondCombine(), PerformCMOVCombine(), PerformSETCCCombine(), and PerformSRACombine().
| const DebugLoc llvm::SDNode::getDebugLoc | ( | ) | const [inline] |
getDebugLoc - Return the source location info.
Definition at line 431 of file SelectionDAGNodes.h.
Referenced by llvm::SDValue::getDebugLoc(), and llvm::SDLoc::getDebugLoc().
| const SDNode* llvm::SDNode::getGluedMachineNode | ( | ) | const [inline] |
Definition at line 577 of file SelectionDAGNodes.h.
References getGluedNode(), isMachineOpcode(), and N.
| SDNode* llvm::SDNode::getGluedNode | ( | ) | const [inline] |
getGluedNode - If this node has a glue operand, return the node to which the glue operand points. Otherwise return NULL.
Definition at line 568 of file SelectionDAGNodes.h.
References llvm::SDValue::getNode(), getNumOperands(), getOperand(), getValueType(), and llvm::MVT::Glue.
Referenced by llvm::ScheduleDAGSDNodes::RegDefIter::Advance(), canClobberPhysRegDefs(), llvm::ScheduleDAGSDNodes::computeLatency(), llvm::ScheduleDAGSDNodes::dumpNode(), llvm::ScheduleDAGSDNodes::EmitSchedule(), getGluedMachineNode(), llvm::ScheduleDAGSDNodes::getGraphNodeLabel(), isOperandOf(), llvm::ResourcePriorityQueue::isResourceAvailable(), and llvm::ResourcePriorityQueue::reserveResources().
| SDNode* llvm::SDNode::getGluedUser | ( | ) | const [inline] |
getGluedUser - If this node has a glue value with a user, return the user (there is at most one). Otherwise return NULL.
Definition at line 593 of file SelectionDAGNodes.h.
References llvm::MVT::Glue, use_begin(), and use_end().
Referenced by AddCombineTo64bitMLAL(), and findGluedUser().
| bool llvm::SDNode::getHasDebugValue | ( | ) | const [inline] |
getHasDebugValue - get this bit.
Definition at line 395 of file SelectionDAGNodes.h.
Referenced by ProcessSDDbgValues(), and llvm::SelectionDAG::TransferDbgValues().
| const char * SDNode::getIndexedModeName | ( | ISD::MemIndexedMode | AM | ) | [static] |
Definition at line 319 of file SelectionDAGDumper.cpp.
References llvm::ISD::POST_DEC, llvm::ISD::POST_INC, llvm::ISD::PRE_DEC, and llvm::ISD::PRE_INC.
| unsigned llvm::SDNode::getIROrder | ( | ) | const [inline] |
getIROrder - Return the node ordering.
Definition at line 424 of file SelectionDAGNodes.h.
Referenced by llvm::SDLoc::getIROrder(), and ProcessSourceNode().
| unsigned llvm::SDNode::getMachineOpcode | ( | ) | const [inline] |
getMachineOpcode - This may only be called if isMachineOpcode returns true. It returns the MachineInstr opcode value that the node's opcode corresponds to.
Definition at line 389 of file SelectionDAGNodes.h.
References isMachineOpcode().
Referenced by llvm::ARMBaseInstrInfo::areLoadsFromSameBasePtr(), llvm::X86InstrInfo::areLoadsFromSameBasePtr(), canClobberPhysRegDefs(), canClobberReachingPhysRegUse(), CheckForPhysRegDependency(), llvm::ScheduleDAGSDNodes::computeLatency(), llvm::ScheduleDAGSDNodes::computeOperandLatency(), FindCallSeqStart(), GetCostForDef(), llvm::TargetInstrInfo::getInstrLatency(), llvm::SDValue::getMachineOpcode(), llvm::ARMBaseInstrInfo::getOperandLatency(), llvm::TargetInstrInfo::getOperandLatency(), getOperationName(), getPhysicalRegisterVT(), llvm::ARMTargetLowering::getSchedulingPreference(), IsChainDependent(), llvm::ResourcePriorityQueue::isResourceAvailable(), llvm::ScheduleDAGSDNodes::newSUnit(), llvm::SITargetLowering::PostISelFolding(), llvm::ResourcePriorityQueue::reserveResources(), llvm::ARMBaseInstrInfo::shouldScheduleLoadsNear(), llvm::X86InstrInfo::shouldScheduleLoadsNear(), and llvm::X86InstrInfo::unfoldMemoryOperand().
| int llvm::SDNode::getNodeId | ( | ) | const [inline] |
getNodeId - Return the unique node id.
Definition at line 417 of file SelectionDAGNodes.h.
Referenced by llvm::SelectionDAG::AssignTopologicalOrder(), findNonImmUse(), llvm::ScheduleDAGSDNodes::getCustomGraphFeatures(), insertDAGNode(), InsertDAGNode(), isLoadIncOrDecStore(), llvm::DAGTypeLegalizer::run(), and WalkChainUsers().
| unsigned llvm::SDNode::getNumOperands | ( | ) | const [inline] |
getNumOperands - Return the number of values used by this operation.
Definition at line 546 of file SelectionDAGNodes.h.
Referenced by AddCombineTo64bitMLAL(), AddGlue(), AddNodeIDNode(), llvm::ISD::allOperandsUndef(), llvm::SelectionDAG::AssignTopologicalOrder(), CloneNodeWithValues(), CombineBaseUpdate(), countOperands(), DumpNodes(), DumpNodesr(), llvm::SDNodeIterator::end(), FindCallSeqStart(), findNonImmUse(), llvm::SelectionDAG::FoldConstantArithmetic(), llvm::PPC::get_VSPLTI_elt(), getGluedNode(), getInputChainForNode(), getNodeRegMask(), llvm::SDValue::getNumOperands(), getTargetShuffleMask(), HandleMergeInputChains(), hasPredecessorHelper(), llvm::ISD::isBuildVectorAllOnes(), llvm::ISD::isBuildVectorAllZeros(), IsChainDependent(), llvm::BuildVectorSDNode::isConstantSplat(), isExtendedBUILD_VECTOR(), llvm::SDValue::isOperandOf(), llvm::ISD::isScalarToVector(), isSplatVector(), llvm::NVPTXTargetLowering::LowerCall(), llvm::HexagonTargetLowering::LowerINLINEASM(), MoveBelowOrigChain(), PerformBUILD_VECTORCombine(), PerformSTORECombine(), print(), printrWithDepthHelper(), llvm::ResourcePriorityQueue::rawRegPressureDelta(), ReplaceINTRINSIC_W_CHAIN(), ReplaceLoadVector(), llvm::DAGTypeLegalizer::run(), llvm::ResourcePriorityQueue::scheduledNode(), llvm::SelectionDAGISel::SelectCodeCommon(), llvm::X86InstrInfo::unfoldMemoryOperand(), llvm::SelectionDAG::UnrollVectorOp(), llvm::SelectionDAG::UpdateNodeOperands(), VerifyNodeCommon(), and WillBeConstantPoolLoad().
| unsigned llvm::SDNode::getNumValues | ( | ) | const [inline] |
getNumValues - Return the number of values defined/returned by this operator.
Definition at line 603 of file SelectionDAGNodes.h.
Referenced by AddCombineTo64bitMLAL(), AddGlue(), BURRSort(), canChangeToInt(), canClobberPhysRegDefs(), llvm::InstrEmitter::CountResults(), doNotCSE(), findGlueUse(), llvm::ARMTargetLowering::getSchedulingPreference(), llvm::SelectionDAGBuilder::getValueImpl(), hasAnyUseOfValue(), hasNUsesOfValue(), llvm::SelectionDAGISel::IsLegalToFold(), llvm::DAGTypeLegalizer::NoteDeletion(), PerformCMOVCombine(), print_types(), llvm::ResourcePriorityQueue::rawRegPressureDelta(), RemoveUnusedGlue(), llvm::SelectionDAG::ReplaceAllUsesOfValueWith(), llvm::SelectionDAG::ReplaceAllUsesWith(), llvm::DAGTypeLegalizer::run(), llvm::ResourcePriorityQueue::scheduledNode(), llvm::SelectionDAGISel::SelectCodeCommon(), llvm::TargetLowering::TargetLoweringOpt::ShrinkDemandedOp(), llvm::X86InstrInfo::unfoldMemoryOperand(), llvm::SelectionDAG::UnrollVectorOp(), and VerifyNodeCommon().
| unsigned llvm::SDNode::getOpcode | ( | ) | const [inline] |
getOpcode - Return the SelectionDAG opcode value for this node. For pre-isel nodes (those for which isMachineOpcode returns false), these are the opcode values in the ISD and <target>ISD namespaces. For post-isel opcodes, see getMachineOpcode.
Definition at line 369 of file SelectionDAGNodes.h.
Referenced by AddCombineTo64bitMLAL(), AddNodeIDCustom(), AddNodeIDNode(), canEnableCoalescing(), canFoldInAddressingMode(), CanFoldXORWithAllOnes(), CheckForPhysRegDependency(), CheckOpcode(), llvm::MemSDNode::classof(), llvm::AtomicSDNode::classof(), llvm::MemIntrinsicSDNode::classof(), llvm::ShuffleVectorSDNode::classof(), llvm::ConstantSDNode::classof(), llvm::ConstantFPSDNode::classof(), llvm::GlobalAddressSDNode::classof(), llvm::FrameIndexSDNode::classof(), llvm::JumpTableSDNode::classof(), llvm::ConstantPoolSDNode::classof(), llvm::TargetIndexSDNode::classof(), llvm::BasicBlockSDNode::classof(), llvm::BuildVectorSDNode::classof(), llvm::SrcValueSDNode::classof(), llvm::MDNodeSDNode::classof(), llvm::RegisterSDNode::classof(), llvm::RegisterMaskSDNode::classof(), llvm::BlockAddressSDNode::classof(), llvm::EHLabelSDNode::classof(), llvm::ExternalSymbolSDNode::classof(), llvm::CondCodeSDNode::classof(), llvm::CvtRndSatSDNode::classof(), llvm::VTSDNode::classof(), llvm::LSBaseSDNode::classof(), llvm::LoadSDNode::classof(), llvm::StoreSDNode::classof(), CloneNodeWithValues(), CombineBaseUpdate(), combineSelectAndUse(), CombineVLDDUP(), llvm::ScheduleDAGSDNodes::computeLatency(), llvm::ScheduleDAGSDNodes::computeOperandLatency(), doNotCSE(), EltsFromConsecutiveLoads(), Expand64BitShift(), ExpandVectorExtension(), ExtendUsesToFormExtLoad(), FindCallSeqStart(), getARMIndexedAddressParts(), llvm::MemSDNode::getBasePtr(), GetCostForDef(), getIndexedAddressParts(), llvm::SelectionDAG::getNode(), llvm::LSBaseSDNode::getOffset(), llvm::SDValue::getOpcode(), getOperationName(), llvm::ARMTargetLowering::getPostIndexedAddressParts(), getT2IndexedAddressParts(), getTargetShuffleMask(), HandleMergeInputChains(), hasOnlyLiveInOpers(), hasOnlyLiveOutUses(), isAddSubSExt(), isAddSubZExt(), llvm::ISD::isBuildVectorAllOnes(), llvm::ISD::isBuildVectorAllZeros(), IsChainDependent(), llvm::AtomicSDNode::isCompareAndSwap(), isConditionalZeroOrAllOnes(), isExtendedBUILD_VECTOR(), llvm::X86TargetLowering::isGAPlusOffset(), llvm::TargetLowering::isGAPlusOffset(), isInt32Immediate(), isInt64Immediate(), isIntS16Immediate(), isIntS32Immediate(), isOpcWithIntImmediate(), llvm::ScheduleDAGSDNodes::isPassiveNode(), isScalarLoadToVector(), llvm::ISD::isScalarToVector(), isSignExtended(), isSplatVector(), isX86LogicalCmp(), isZeroExtended(), LowerEXTRACT_VECTOR_ELT_SSE4(), llvm::HexagonTargetLowering::LowerINLINEASM(), LowerShift(), LowerVECTOR_SHUFFLEv8i8(), llvm::LSBaseSDNode::LSBaseSDNode(), OptimizeConditionalInDecrement(), llvm::MipsSETargetLowering::PerformDAGCombine(), llvm::R600TargetLowering::PerformDAGCombine(), llvm::SITargetLowering::PerformDAGCombine(), llvm::MipsTargetLowering::PerformDAGCombine(), llvm::AArch64TargetLowering::PerformDAGCombine(), llvm::ARMTargetLowering::PerformDAGCombine(), llvm::PPCTargetLowering::PerformDAGCombine(), llvm::X86TargetLowering::PerformDAGCombine(), performDivRemCombine(), PerformExtendCombine(), PerformEXTRACT_VECTOR_ELTCombine(), PerformFMinFMaxCombine(), PerformFORCombine(), performIntegerAbsCombine(), PerformOrCombine(), PerformSELECTCombine(), PerformShiftCombine(), PerformShuffleCombine(), PerformSTORECombine(), PerformVCVTCombine(), PerformVDIVCombine(), llvm::R600TargetLowering::ReplaceNodeResults(), llvm::XCoreTargetLowering::ReplaceNodeResults(), llvm::ARMTargetLowering::ReplaceNodeResults(), llvm::PPCTargetLowering::ReplaceNodeResults(), llvm::X86TargetLowering::ReplaceNodeResults(), resetVRegCycle(), llvm::SelectionDAGISel::SelectCodeCommon(), selectMADD(), selectMSUB(), shouldUseLA(), llvm::TargetLowering::SimplifyDemandedBits(), SkipExtensionForVMULL(), tryCombineToBFI(), tryCombineToEXTR(), llvm::SelectionDAG::UnrollVectorOp(), useDivRem(), useSinCos(), VerifyNodeCommon(), WalkChainUsers(), WidenMaskArithmetic(), and WillBeConstantPoolLoad().
Definition at line 552 of file SelectionDAGNodes.h.
Referenced by AddCombineTo64bitMLAL(), AddGlue(), llvm::ISD::allOperandsUndef(), llvm::ARMBaseInstrInfo::areLoadsFromSameBasePtr(), llvm::X86InstrInfo::areLoadsFromSameBasePtr(), llvm::TargetLowering::BuildSDIV(), llvm::TargetLowering::BuildUDIV(), canFoldInAddressingMode(), CanFoldXORWithAllOnes(), CheckForPhysRegDependency(), CloneNodeWithValues(), CMPEQCombine(), CombineBaseUpdate(), combineSelectAndUseCommutative(), CombineVLDDUP(), CommuteVectorShuffle(), Compact8x32ShuffleNode(), llvm::ScheduleDAGSDNodes::computeOperandLatency(), countOperands(), DumpNodes(), DumpNodesr(), Expand64BitShift(), ExpandBITCAST(), ExpandVectorExtension(), ExtendUsesToFormExtLoad(), FindCallSeqStart(), findNonImmUse(), llvm::SelectionDAG::FoldConstantArithmetic(), llvm::PPC::get_VSPLTI_elt(), getARMIndexedAddressParts(), llvm::MemSDNode::getBasePtr(), llvm::AtomicSDNode::getBasePtr(), llvm::LoadSDNode::getBasePtr(), llvm::StoreSDNode::getBasePtr(), getBuildPairElt(), llvm::MemSDNode::getChain(), GetCostForDef(), getCTPOP16BitCounts(), llvm::DOTGraphTraits< SelectionDAG * >::getEdgeAttributes(), llvm::DOTGraphTraits< SelectionDAG * >::getEdgeTarget(), llvm::X86::getExtractVEXTRACTF128Immediate(), getGluedNode(), getIndexedAddressParts(), getInputChainForNode(), llvm::X86::getInsertVINSERTF128Immediate(), llvm::SelectionDAG::getNode(), getNodeRegMask(), llvm::LSBaseSDNode::getOffset(), llvm::LoadSDNode::getOffset(), llvm::StoreSDNode::getOffset(), llvm::SDValue::getOperand(), llvm::ARMBaseInstrInfo::getOperandLatency(), getOperationName(), getShuffleScalarElt(), getT2IndexedAddressParts(), getTargetShuffleMask(), llvm::AtomicSDNode::getVal(), llvm::StoreSDNode::getValue(), HandleMergeInputChains(), hasNormalLoadOperand(), hasOnlyLiveInOpers(), hasOnlyLiveOutUses(), hasPredecessorHelper(), isAddSubSExt(), isAddSubZExt(), llvm::PPC::isAllNegativeZeroVector(), llvm::ISD::isBuildVectorAllOnes(), llvm::ISD::isBuildVectorAllZeros(), IsChainDependent(), isConditionalZeroOrAllOnes(), llvm::SelectionDAG::isConsecutiveLoad(), llvm::BuildVectorSDNode::isConstantSplat(), isExtendedBUILD_VECTOR(), llvm::X86TargetLowering::isGAPlusOffset(), llvm::TargetLowering::isGAPlusOffset(), isOpcWithIntImmediate(), llvm::SDValue::isOperandOf(), isScalarLoadToVector(), llvm::ISD::isScalarToVector(), isSplatVector(), isVectorShiftLeft(), isVectorShiftRight(), llvm::X86::isVEXTRACTF128Index(), llvm::X86::isVINSERTF128Index(), isZeroShuffle(), LowerATOMIC_STORE(), llvm::NVPTXTargetLowering::LowerCall(), lowerCTPOP32BitElements(), LowerCTTZ(), LowerEXTRACT_SUBVECTOR(), llvm::HexagonTargetLowering::LowerINLINEASM(), LowerINSERT_SUBVECTOR(), LowerLOAD_SUB(), LowerShift(), llvm::MSP430TargetLowering::LowerShifts(), LowerVAARG(), LowerVECTOR_SHUFFLE_128v4(), LowerVECTOR_SHUFFLE_256(), LowerVECTOR_SHUFFLEtoBlend(), LowerVECTOR_SHUFFLEv16i8(), LowerVECTOR_SHUFFLEv32i8(), LowerVECTOR_SHUFFLEv8i16(), LowerXALUO(), llvm::SDNodeIterator::operator*(), OptimizeConditionalInDecrement(), partitionShuffleOfConcats(), PerformADCCombine(), performADDCombine(), PerformADDCombine(), PerformAddCombine(), performANDCombine(), PerformANDCombine(), PerformAndCombine(), PerformBFICombine(), PerformBrCondCombine(), PerformBTCombine(), PerformBUILD_VECTORCombine(), llvm::ARMTargetLowering::PerformCMOVCombine(), PerformCMOVCombine(), llvm::R600TargetLowering::PerformDAGCombine(), llvm::SITargetLowering::PerformDAGCombine(), llvm::ARMTargetLowering::PerformDAGCombine(), llvm::PPCTargetLowering::PerformDAGCombine(), performDivRemCombine(), performDSPShiftCombine(), PerformExtendCombine(), PerformEXTRACT_VECTOR_ELTCombine(), PerformFADDCombine(), PerformFANDCombine(), PerformFMACombine(), PerformFMinFMaxCombine(), PerformFORCombine(), PerformFSUBCombine(), PerformInsertEltCombine(), performIntegerAbsCombine(), PerformIntrinsicCombine(), PerformISDSETCCCombine(), PerformMULCombine(), PerformMulCombine(), performORCombine(), PerformORCombine(), PerformOrCombine(), PerformSELECT_CCCombine(), performSELECTCombine(), PerformSELECTCombine(), performSETCCCombine(), PerformSETCCCombine(), PerformShiftCombine(), PerformSHLCombine(), PerformShuffleCombine256(), PerformSIGN_EXTEND_INREGCombine(), PerformSINT_TO_FPCombine(), PerformSRACombine(), PerformSTORECombine(), PerformSUBCombine(), PerformSubCombine(), PerformVCVTCombine(), PerformVDIVCombine(), PerformVDUPLANECombine(), PerformVECTOR_SHUFFLECombine(), PerformVMOVDRRCombine(), PerformVMOVRRDCombine(), PerformVMULCombine(), performVSELECTCombine(), PerformVZEXT_MOVLCombine(), performVZEXTCombine(), PerformXorCombine(), PerformZExtCombine(), print(), printrWithDepthHelper(), PromoteSplat(), llvm::ResourcePriorityQueue::rawRegPressureDelta(), ReplaceATOMIC_BINARY_64(), ReplaceATOMIC_LOAD(), ReplaceATOMIC_OP_64(), ReplaceINTRINSIC_W_CHAIN(), ReplaceLoadVector(), llvm::R600TargetLowering::ReplaceNodeResults(), llvm::PPCTargetLowering::ReplaceNodeResults(), llvm::X86TargetLowering::ReplaceNodeResults(), ReplaceREADCYCLECOUNTER(), RewriteAsNarrowerShuffle(), llvm::DAGTypeLegalizer::run(), llvm::ResourcePriorityQueue::scheduledNode(), llvm::SelectionDAGISel::SelectCodeCommon(), selectMADD(), selectMSUB(), llvm::TargetLowering::TargetLoweringOpt::ShrinkDemandedOp(), llvm::TargetLowering::SimplifyDemandedBits(), llvm::TargetLowering::SimplifySetCC(), SkipExtensionForVMULL(), tryCombineToBFI(), tryCombineToEXTR(), tryCombineToLargerBFI(), llvm::X86InstrInfo::unfoldMemoryOperand(), llvm::SelectionDAG::UnrollVectorOp(), llvm::SelectionDAG::UpdateNodeOperands(), useDivRem(), useSinCos(), ValueHasExactlyOneBitSet(), VerifyNodeCommon(), WidenMaskArithmetic(), WillBeConstantPoolLoad(), and XFormVExtractWithShuffleIntoLoad().
| std::string SDNode::getOperationName | ( | const SelectionDAG * | G = 0 | ) | const |
getOperationName - Return the opcode of this operation for printing.
Definition at line 33 of file SelectionDAGDumper.cpp.
References llvm::ISD::ADD, llvm::ISD::ADDC, llvm::ISD::ADDE, llvm::ISD::ADJUST_TRAMPOLINE, llvm::ISD::AND, llvm::ISD::ANY_EXTEND, llvm::ISD::AssertSext, llvm::ISD::AssertZext, llvm::ISD::ATOMIC_CMP_SWAP, llvm::ISD::ATOMIC_FENCE, llvm::ISD::ATOMIC_LOAD, llvm::ISD::ATOMIC_LOAD_ADD, llvm::ISD::ATOMIC_LOAD_AND, llvm::ISD::ATOMIC_LOAD_MAX, llvm::ISD::ATOMIC_LOAD_MIN, llvm::ISD::ATOMIC_LOAD_NAND, llvm::ISD::ATOMIC_LOAD_OR, llvm::ISD::ATOMIC_LOAD_SUB, llvm::ISD::ATOMIC_LOAD_UMAX, llvm::ISD::ATOMIC_LOAD_UMIN, llvm::ISD::ATOMIC_LOAD_XOR, llvm::ISD::ATOMIC_STORE, llvm::ISD::ATOMIC_SWAP, llvm::ISD::BasicBlock, llvm::ISD::BITCAST, llvm::ISD::BlockAddress, llvm::ISD::BR, llvm::ISD::BR_CC, llvm::ISD::BR_JT, llvm::ISD::BRCOND, llvm::ISD::BRIND, llvm::ISD::BSWAP, llvm::ISD::BUILD_PAIR, llvm::ISD::BUILD_VECTOR, llvm::ISD::BUILTIN_OP_END, llvm::ISD::CALLSEQ_END, llvm::ISD::CALLSEQ_START, llvm::ISD::CARRY_FALSE, llvm::ISD::CONCAT_VECTORS, llvm::ISD::CONDCODE, llvm::ISD::Constant, llvm::ISD::ConstantFP, llvm::ISD::ConstantPool, llvm::ISD::CONVERT_RNDSAT, llvm::ISD::CopyFromReg, llvm::ISD::CopyToReg, llvm::ISD::CTLZ, llvm::ISD::CTLZ_ZERO_UNDEF, llvm::ISD::CTPOP, llvm::ISD::CTTZ, llvm::ISD::CTTZ_ZERO_UNDEF, llvm::ISD::CVT_FF, llvm::ISD::CVT_FS, llvm::ISD::CVT_FU, llvm::ISD::CVT_SF, llvm::ISD::CVT_SS, llvm::ISD::CVT_SU, llvm::ISD::CVT_UF, llvm::ISD::CVT_US, llvm::ISD::CVT_UU, llvm::ISD::DEBUGTRAP, llvm::ISD::DELETED_NODE, llvm::ISD::DYNAMIC_STACKALLOC, llvm::ISD::EH_LABEL, llvm::ISD::EH_RETURN, llvm::ISD::EH_SJLJ_LONGJMP, llvm::ISD::EH_SJLJ_SETJMP, llvm::ISD::EHSELECTION, llvm::ISD::EntryToken, llvm::ISD::EXCEPTIONADDR, llvm::ISD::ExternalSymbol, llvm::ISD::EXTRACT_ELEMENT, llvm::ISD::EXTRACT_SUBVECTOR, llvm::ISD::EXTRACT_VECTOR_ELT, llvm::ISD::FABS, llvm::ISD::FADD, llvm::ISD::FCEIL, llvm::ISD::FCOPYSIGN, llvm::ISD::FCOS, llvm::ISD::FDIV, llvm::ISD::FEXP, llvm::ISD::FEXP2, llvm::ISD::FFLOOR, llvm::ISD::FGETSIGN, llvm::ISD::FLOG, llvm::ISD::FLOG10, llvm::ISD::FLOG2, llvm::ISD::FLT_ROUNDS_, llvm::ISD::FMA, llvm::ISD::FMUL, llvm::ISD::FNEARBYINT, llvm::ISD::FNEG, llvm::ISD::FP16_TO_FP32, llvm::ISD::FP32_TO_FP16, llvm::ISD::FP_EXTEND, llvm::ISD::FP_ROUND, llvm::ISD::FP_ROUND_INREG, llvm::ISD::FP_TO_SINT, llvm::ISD::FP_TO_UINT, llvm::ISD::FPOW, llvm::ISD::FPOWI, llvm::ISD::FRAME_TO_ARGS_OFFSET, llvm::ISD::FRAMEADDR, llvm::ISD::FrameIndex, llvm::ISD::FREM, llvm::ISD::FRINT, llvm::ISD::FSIN, llvm::ISD::FSINCOS, llvm::ISD::FSQRT, llvm::ISD::FSUB, llvm::ISD::FTRUNC, llvm::TargetMachine::getInstrInfo(), llvm::TargetMachine::getIntrinsicInfo(), getMachineOpcode(), llvm::Intrinsic::getName(), getOpcode(), getOperand(), llvm::SelectionDAG::getTarget(), llvm::SelectionDAG::getTargetLoweringInfo(), llvm::TargetLowering::getTargetNodeName(), llvm::ISD::GLOBAL_OFFSET_TABLE, llvm::ISD::GlobalAddress, llvm::ISD::GlobalTLSAddress, llvm::ISD::HANDLENODE, llvm::ISD::INIT_TRAMPOLINE, llvm::ISD::INLINEASM, llvm::ISD::INSERT_SUBVECTOR, llvm::ISD::INSERT_VECTOR_ELT, llvm::ISD::INTRINSIC_VOID, llvm::ISD::INTRINSIC_W_CHAIN, llvm::ISD::INTRINSIC_WO_CHAIN, isMachineOpcode(), llvm::ISD::JumpTable, llvm::ISD::LIFETIME_END, llvm::ISD::LIFETIME_START, llvm_unreachable, llvm::ISD::LOAD, llvm::ISD::LSDAADDR, llvm::ISD::MDNODE_SDNODE, llvm::ISD::MERGE_VALUES, llvm::ISD::MUL, llvm::ISD::MULHS, llvm::ISD::MULHU, llvm::ISD::OR, llvm::ISD::PCMARKER, llvm::ISD::PREFETCH, llvm::ISD::READCYCLECOUNTER, llvm::ISD::Register, llvm::ISD::RegisterMask, llvm::ISD::RETURNADDR, llvm::ISD::ROTL, llvm::ISD::ROTR, llvm::ISD::SADDO, llvm::ISD::SCALAR_TO_VECTOR, llvm::ISD::SDIV, llvm::ISD::SDIVREM, llvm::ISD::SELECT, llvm::ISD::SELECT_CC, llvm::ISD::SETCC, llvm::ISD::SETEQ, llvm::ISD::SETFALSE, llvm::ISD::SETFALSE2, llvm::ISD::SETGE, llvm::ISD::SETGT, llvm::ISD::SETLE, llvm::ISD::SETLT, llvm::ISD::SETNE, llvm::ISD::SETO, llvm::ISD::SETOEQ, llvm::ISD::SETOGE, llvm::ISD::SETOGT, llvm::ISD::SETOLE, llvm::ISD::SETOLT, llvm::ISD::SETONE, llvm::ISD::SETTRUE, llvm::ISD::SETTRUE2, llvm::ISD::SETUEQ, llvm::ISD::SETUGE, llvm::ISD::SETUGT, llvm::ISD::SETULE, llvm::ISD::SETULT, llvm::ISD::SETUNE, llvm::ISD::SETUO, llvm::ISD::SHL, llvm::ISD::SHL_PARTS, llvm::ISD::SIGN_EXTEND, llvm::ISD::SIGN_EXTEND_INREG, llvm::ISD::SINT_TO_FP, llvm::ISD::SMUL_LOHI, llvm::ISD::SMULO, llvm::ISD::SRA, llvm::ISD::SRA_PARTS, llvm::ISD::SRCVALUE, llvm::ISD::SREM, llvm::ISD::SRL, llvm::ISD::SRL_PARTS, llvm::ISD::SSUBO, llvm::ISD::STACKRESTORE, llvm::ISD::STACKSAVE, llvm::ISD::STORE, llvm::ISD::SUB, llvm::ISD::SUBC, llvm::ISD::SUBE, llvm::ISD::TargetBlockAddress, llvm::ISD::TargetConstant, llvm::ISD::TargetConstantFP, llvm::ISD::TargetConstantPool, llvm::ISD::TargetExternalSymbol, llvm::ISD::TargetFrameIndex, llvm::ISD::TargetGlobalAddress, llvm::ISD::TargetGlobalTLSAddress, llvm::ISD::TargetIndex, llvm::ISD::TargetJumpTable, TII, llvm::ISD::TokenFactor, llvm::ISD::TRAP, llvm::ISD::TRUNCATE, llvm::ISD::UADDO, llvm::ISD::UDIV, llvm::ISD::UDIVREM, llvm::ISD::UINT_TO_FP, llvm::ISD::UMUL_LOHI, llvm::ISD::UMULO, llvm::ISD::UNDEF, llvm::ISD::UREM, llvm::ISD::USUBO, llvm::utostr(), llvm::ISD::VAARG, llvm::ISD::VACOPY, llvm::ISD::VAEND, llvm::ISD::VALUETYPE, llvm::ISD::VASTART, llvm::ISD::VECTOR_SHUFFLE, llvm::ISD::VSELECT, llvm::ISD::XOR, and llvm::ISD::ZERO_EXTEND.
Referenced by llvm::DOTGraphTraits< SelectionDAG * >::getSimpleNodeLabel(), and print_types().
Definition at line 694 of file SelectionDAGNodes.h.
References llvm::AArch64ISD::Ret.
Return the type of a specified result as a simple type.
Definition at line 614 of file SelectionDAGNodes.h.
References llvm::EVT::getSimpleVT(), and getValueType().
Referenced by llvm::ScheduleDAGSDNodes::RegDefIter::Advance(), llvm::ResourcePriorityQueue::rawRegPressureDelta(), and llvm::ResourcePriorityQueue::scheduledNode().
getValueSizeInBits - Returns MVT::getSizeInBits(getValueType(ResNo)).
Definition at line 620 of file SelectionDAGNodes.h.
References llvm::EVT::getSizeInBits(), and getValueType().
getValueType - Return the type of a specified result.
Definition at line 607 of file SelectionDAGNodes.h.
Referenced by AddCombineTo64bitMLAL(), AddCombineToVPADDL(), AddGlue(), AddNodeIDCustom(), llvm::TargetLowering::BuildSDIV(), llvm::TargetLowering::BuildUDIV(), canClobberPhysRegDefs(), canFoldInAddressingMode(), CanFoldXORWithAllOnes(), CheckForPhysRegDependency(), CombineBaseUpdate(), combineSelectAndUse(), CombineVLDDUP(), CommuteVectorShuffle(), Compact8x32ShuffleNode(), llvm::InstrEmitter::CountResults(), createLoadLR(), doNotCSE(), Expand64BitShift(), ExpandBITCAST(), ExpandUnalignedLoad(), ExpandVectorExtension(), ExtendUsesToFormExtLoad(), llvm::SelectionDAG::FoldConstantArithmetic(), getCTPOP16BitCounts(), getGluedNode(), llvm::X86::getInsertVINSERTF128Immediate(), llvm::ShuffleVectorSDNode::getMask(), llvm::ShuffleVectorSDNode::getMaskElt(), getPhysicalRegisterVT(), llvm::ARMTargetLowering::getSchedulingPreference(), getShuffleCLImmediate(), getShufflePALIGNRImmediate(), getShufflePSHUFHWImmediate(), getShufflePSHUFLWImmediate(), getShuffleSHUFImmediate(), getShuffleVPERM2X128Immediate(), getSimpleValueType(), llvm::ShuffleVectorSDNode::getSplatIndex(), GetTLSADDR(), getValueSizeInBits(), llvm::SDValue::getValueType(), hasNormalLoadOperand(), llvm::ISD::isBuildVectorAllOnes(), isConditionalZeroOrAllOnes(), llvm::SelectionDAG::isConsecutiveLoad(), llvm::BuildVectorSDNode::isConstantSplat(), isDivRemLibcallAvailable(), isExtendedBUILD_VECTOR(), isInt32Immediate(), isInt64Immediate(), isIntS16Immediate(), isIntS32Immediate(), llvm::SelectionDAGISel::IsLegalToFold(), isShuffleHigh128VectorInsertLow(), isShuffleLow128VectorInsertHigh(), isSinCosLibcallAvailable(), llvm::ShuffleVectorSDNode::isSplat(), llvm::PPC::isSplatShuffleMask(), isVectorShift(), isVectorShiftLeft(), isVectorShiftRight(), llvm::X86::isVEXTRACTF128Index(), llvm::X86::isVINSERTF128Index(), isVMerge(), llvm::PPC::isVSLDOIShuffleMask(), isZeroShuffle(), LowerADDC_ADDE_SUBC_SUBE(), llvm::X86TargetLowering::LowerAsmOperandForConstraint(), llvm::NVPTXTargetLowering::LowerCall(), LowerCTPOP(), lowerCTPOP16BitElements(), lowerCTPOP32BitElements(), LowerCTTZ(), LowerEXTRACT_SUBVECTOR(), LowerEXTRACT_VECTOR_ELT_SSE4(), LowerINSERT_SUBVECTOR(), LowerLOAD_SUB(), llvm::HexagonTargetLowering::LowerSELECT_CC(), LowerShift(), LowerToTLSExecModel(), LowerToTLSLocalDynamicModel(), LowerVAARG(), LowerVECTOR_SHUFFLE_128v4(), LowerVECTOR_SHUFFLE_256(), LowerVECTOR_SHUFFLEtoBlend(), LowerVECTOR_SHUFFLEv32i8(), LowerXALUO(), partitionShuffleOfConcats(), PerformADCCombine(), performADDCombine(), PerformAddCombine(), performADDECombine(), performANDCombine(), PerformANDCombine(), PerformAndCombine(), PerformBFICombine(), PerformBUILD_VECTORCombine(), llvm::ARMTargetLowering::PerformCMOVCombine(), PerformCMOVCombine(), llvm::R600TargetLowering::PerformDAGCombine(), llvm::SITargetLowering::PerformDAGCombine(), llvm::PPCTargetLowering::PerformDAGCombine(), performDivRemCombine(), PerformExtendCombine(), PerformEXTRACT_VECTOR_ELTCombine(), PerformFADDCombine(), PerformFMACombine(), PerformFMinFMaxCombine(), PerformFSUBCombine(), PerformInsertEltCombine(), performIntegerAbsCombine(), PerformIntrinsicCombine(), PerformISDSETCCCombine(), PerformLOADCombine(), PerformMULCombine(), PerformMulCombine(), performORCombine(), PerformORCombine(), PerformOrCombine(), PerformSELECT_CCCombine(), PerformSELECTCombine(), performSETCCCombine(), PerformSExtCombine(), PerformShiftCombine(), performSHLCombine(), PerformShuffleCombine(), PerformShuffleCombine256(), PerformSIGN_EXTEND_INREGCombine(), PerformSINT_TO_FPCombine(), performSRACombine(), PerformSRACombine(), performSRLCombine(), PerformSubCombine(), performSUBECombine(), PerformVCVTCombine(), PerformVDIVCombine(), PerformVDUPLANECombine(), PerformVECTOR_SHUFFLECombine(), PerformVMOVDRRCombine(), PerformVMOVRRDCombine(), PerformVMULCombine(), performVSELECTCombine(), PerformVZEXT_MOVLCombine(), performVZEXTCombine(), PerformXORCombine(), PerformXorCombine(), PerformZExtCombine(), print_types(), PromoteSplat(), RemoveUnusedGlue(), llvm::SelectionDAG::ReplaceAllUsesWith(), ReplaceATOMIC_BINARY_64(), ReplaceATOMIC_OP_64(), ReplaceINTRINSIC_W_CHAIN(), ReplaceLoadVector(), llvm::PPCTargetLowering::ReplaceNodeResults(), llvm::X86TargetLowering::ReplaceNodeResults(), RewriteAsNarrowerShuffle(), llvm::DAGTypeLegalizer::run(), llvm::SelectionDAGISel::SelectCodeCommon(), llvm::X86InstrInfo::shouldScheduleLoadsNear(), SkipExtensionForVMULL(), tryCombineToBFI(), tryCombineToEXTR(), tryCombineToLargerBFI(), llvm::X86InstrInfo::unfoldMemoryOperand(), llvm::SelectionDAG::UnrollVectorOp(), VerifyNodeCommon(), WidenMaskArithmetic(), and XFormVExtractWithShuffleIntoLoad().
| SDVTList llvm::SDNode::getVTList | ( | ) | const [inline] |
Definition at line 561 of file SelectionDAGNodes.h.
References llvm::X.
Referenced by AddNodeIDNode(), LowerXALUO(), PerformBrCondCombine(), PerformCMOVCombine(), llvm::R600TargetLowering::PerformDAGCombine(), and PerformSETCCCombine().
hasAnyUseOfValue - Return true if there are any use of the indicated value. This method ignores uses of other values defined by this operation.
Definition at line 5986 of file SelectionDAG.cpp.
References getNumValues(), use_begin(), and use_end().
Referenced by llvm::ARMTargetLowering::AdjustInstrPostInstrSelection(), llvm::ScheduleDAGSDNodes::RegDefIter::Advance(), canClobberPhysRegDefs(), checkBoolTestSetCCCombine(), EltsFromConsecutiveLoads(), performDivRemCombine(), RemoveUnusedGlue(), llvm::SelectionDAG::ReplaceAllUsesWith(), and llvm::SDValue::use_empty().
hasNUsesOfValue - Return true if there are exactly NUSES uses of the indicated value. This method ignores uses of other values defined by this operation.
Definition at line 5967 of file SelectionDAG.cpp.
References getNumValues(), use_begin(), and use_end().
Referenced by llvm::SDValue::hasOneUse(), isLoadIncOrDecStore(), llvm::PPCTargetLowering::PerformDAGCombine(), PerformSTORECombine(), and XFormVExtractWithShuffleIntoLoad().
| bool llvm::SDNode::hasOneUse | ( | ) | const [inline] |
hasOneUse - Return true if there is exactly one use of this node.
Definition at line 406 of file SelectionDAGNodes.h.
References llvm::next(), use_begin(), use_empty(), and use_end().
Referenced by canChangeToInt(), combineSelectAndUseCommutative(), combineShlAddConstant(), llvm::SelectionDAG::dump(), DumpNodes(), isAddSubSExt(), isAddSubZExt(), isBSwapHWordElement(), isOneUseSetCC(), PerformADDCombineWithOperands(), llvm::PPCTargetLowering::PerformDAGCombine(), PerformEXTRACT_VECTOR_ELTCombine(), PerformMulCombine(), PerformSTORECombine(), PerformSUBCombine(), PerformVMOVRRDCombine(), shouldUseLA(), llvm::TargetLowering::TargetLoweringOpt::ShrinkDemandedOp(), llvm::TargetLowering::SimplifyDemandedBits(), and llvm::TargetLowering::SimplifySetCC().
hasPredecessor - Return true if N is a predecessor of this node. N is either an operand of this node, or can be reached by recursively traversing up the operands. NOTE: This is an expensive method. Use it carefully.
Definition at line 6062 of file SelectionDAG.cpp.
References hasPredecessorHelper().
Referenced by isPredecessorOf().
| bool SDNode::hasPredecessorHelper | ( | const SDNode * | N, |
| SmallPtrSet< const SDNode *, 32 > & | Visited, | ||
| SmallVector< const SDNode *, 16 > & | Worklist | ||
| ) | const |
hasPredecesorHelper - Return true if N is a predecessor of this node. N is either an operand of this node, or can be reached by recursively traversing up the operands. In this helper the Visited and worklist sets are held externally to cache predecessors over multiple invocations. If you want to test for multiple predecessors this method is preferable to multiple calls to hasPredecessor. Be sure to clear Visited and Worklist if the DAG changes. NOTE: This is still very expensive. Use carefully.
Definition at line 6068 of file SelectionDAG.cpp.
References llvm::SmallPtrSet< PtrType, SmallSize >::count(), llvm::SmallVectorBase::empty(), llvm::SmallPtrSetImpl::empty(), llvm::SDValue::getNode(), getNumOperands(), getOperand(), llvm::SmallPtrSet< PtrType, SmallSize >::insert(), llvm::SmallVectorImpl< T >::pop_back_val(), and llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back().
Referenced by hasPredecessor().
InitOperands - Initialize the operands list of this with 1 operand.
Definition at line 723 of file SelectionDAGNodes.h.
References llvm::checkForCycles().
Referenced by llvm::AtomicSDNode::AtomicSDNode(), llvm::BinarySDNode::BinarySDNode(), llvm::SelectionDAG::getMachineNode(), llvm::HandleSDNode::HandleSDNode(), llvm::LSBaseSDNode::LSBaseSDNode(), llvm::SelectionDAG::MorphNodeTo(), llvm::ShuffleVectorSDNode::ShuffleVectorSDNode(), llvm::TernarySDNode::TernarySDNode(), and llvm::UnarySDNode::UnarySDNode().
| void llvm::SDNode::InitOperands | ( | SDUse * | Ops, |
| const SDValue & | Op0, | ||
| const SDValue & | Op1 | ||
| ) | [inline, protected] |
InitOperands - Initialize the operands list of this with 2 operands.
Definition at line 732 of file SelectionDAGNodes.h.
References llvm::checkForCycles().
| void llvm::SDNode::InitOperands | ( | SDUse * | Ops, |
| const SDValue & | Op0, | ||
| const SDValue & | Op1, | ||
| const SDValue & | Op2 | ||
| ) | [inline, protected] |
InitOperands - Initialize the operands list of this with 3 operands.
Definition at line 743 of file SelectionDAGNodes.h.
References llvm::checkForCycles().
| void llvm::SDNode::InitOperands | ( | SDUse * | Ops, |
| const SDValue & | Op0, | ||
| const SDValue & | Op1, | ||
| const SDValue & | Op2, | ||
| const SDValue & | Op3 | ||
| ) | [inline, protected] |
InitOperands - Initialize the operands list of this with 4 operands.
Definition at line 757 of file SelectionDAGNodes.h.
References llvm::checkForCycles().
| void llvm::SDNode::InitOperands | ( | SDUse * | Ops, |
| const SDValue * | Vals, | ||
| unsigned | N | ||
| ) | [inline, protected] |
InitOperands - Initialize the operands list of this with N operands.
Definition at line 773 of file SelectionDAGNodes.h.
References llvm::checkForCycles().
| bool llvm::SDNode::isMachineOpcode | ( | ) | const [inline] |
isMachineOpcode - Test if this node has a post-isel opcode, directly corresponding to a MachineInstr opcode.
Definition at line 384 of file SelectionDAGNodes.h.
Referenced by llvm::ARMBaseInstrInfo::areLoadsFromSameBasePtr(), llvm::X86InstrInfo::areLoadsFromSameBasePtr(), CheckForPhysRegDependency(), llvm::MachineSDNode::classof(), llvm::ScheduleDAGSDNodes::computeLatency(), llvm::ScheduleDAGSDNodes::computeOperandLatency(), llvm::InstrEmitter::EmitNode(), FindCallSeqStart(), GetCostForDef(), getGluedMachineNode(), llvm::TargetInstrInfo::getInstrLatency(), getMachineOpcode(), llvm::ARMBaseInstrInfo::getOperandLatency(), llvm::TargetInstrInfo::getOperandLatency(), getOperationName(), llvm::ARMTargetLowering::getSchedulingPreference(), IsChainDependent(), llvm::SDValue::isMachineOpcode(), llvm::ResourcePriorityQueue::isResourceAvailable(), llvm::ScheduleDAGSDNodes::newSUnit(), llvm::ResourcePriorityQueue::rawRegPressureDelta(), llvm::ResourcePriorityQueue::regPressureDelta(), llvm::ResourcePriorityQueue::reserveResources(), llvm::ResourcePriorityQueue::scheduledNode(), llvm::SelectionDAGISel::SelectCodeCommon(), llvm::X86InstrInfo::unfoldMemoryOperand(), and WalkChainUsers().
isOnlyUserOf - Return true if this node is the only use of N.
Definition at line 5999 of file SelectionDAG.cpp.
References I, use_begin(), and use_end().
isOperandOf - Return true if this node is an operand of N.
Definition at line 6021 of file SelectionDAG.cpp.
References llvm::SDUse::getNode().
isPredecessorOf - Return true if this node is a predecessor of N. NOTE: Implemented on top of hasPredecessor and every bit as expensive. Use carefully.
Definition at line 523 of file SelectionDAGNodes.h.
References hasPredecessor().
Referenced by CombineBaseUpdate(), and llvm::PPCTargetLowering::getPreIndexedAddressParts().
| bool llvm::SDNode::isTargetMemoryOpcode | ( | ) | const [inline] |
isTargetMemoryOpcode - Test if this node has a target-specific memory-referencing opcode (in the <target>ISD namespace and greater than FIRST_TARGET_MEMORY_OPCODE).
Definition at line 378 of file SelectionDAGNodes.h.
References llvm::ISD::FIRST_TARGET_MEMORY_OPCODE.
Referenced by AddNodeIDCustom(), llvm::MemSDNode::classof(), llvm::MemIntrinsicSDNode::classof(), and llvm::SDValue::isTargetMemoryOpcode().
| bool llvm::SDNode::isTargetOpcode | ( | ) | const [inline] |
isTargetOpcode - Test if this node has a target-specific opcode (in the <target>ISD namespace).
Definition at line 373 of file SelectionDAGNodes.h.
References llvm::ISD::BUILTIN_OP_END.
Referenced by llvm::SDValue::isTargetOpcode().
| op_iterator llvm::SDNode::op_begin | ( | ) | const [inline] |
Definition at line 558 of file SelectionDAGNodes.h.
Referenced by AddNodeIDNode(), DropOperands(), llvm::SelectionDAG::getNode(), llvm::SelectionDAG::MorphNodeTo(), llvm::PPCTargetLowering::PerformDAGCombine(), llvm::SelectionDAG::RemoveDeadNodes(), and VerifyNodeCommon().
| op_iterator llvm::SDNode::op_end | ( | ) | const [inline] |
Definition at line 559 of file SelectionDAGNodes.h.
Referenced by DropOperands(), llvm::SelectionDAG::getNode(), llvm::SelectionDAG::MorphNodeTo(), llvm::PPCTargetLowering::PerformDAGCombine(), llvm::SelectionDAG::RemoveDeadNodes(), and VerifyNodeCommon().
| void SDNode::print | ( | raw_ostream & | OS, |
| const SelectionDAG * | G = 0 |
||
| ) | const |
Definition at line 634 of file SelectionDAGDumper.cpp.
References llvm::SDValue::getNode(), getNumOperands(), getOperand(), print_details(), and print_types().
Referenced by dump(), and printrWithDepthHelper().
| void SDNode::print_details | ( | raw_ostream & | OS, |
| const SelectionDAG * | G | ||
| ) | const |
Definition at line 348 of file SelectionDAGDumper.cpp.
References llvm::APFloat::IEEEdouble, llvm::APFloat::IEEEsingle, llvm::next(), and llvm::WriteAsOperand().
Referenced by llvm::DOTGraphTraits< SelectionDAG * >::getSimpleNodeLabel(), print(), and printr().
| void SDNode::print_types | ( | raw_ostream & | OS, |
| const SelectionDAG * | G | ||
| ) | const |
Definition at line 335 of file SelectionDAGDumper.cpp.
References llvm::EVT::getEVTString(), getNumValues(), getOperationName(), getValueType(), and llvm::MVT::Other.
| void SDNode::printr | ( | raw_ostream & | OS, |
| const SelectionDAG * | G = 0 |
||
| ) | const |
Definition at line 541 of file SelectionDAGDumper.cpp.
References print_details(), and print_types().
Referenced by DumpNodesr().
| void SDNode::printrFull | ( | raw_ostream & | O, |
| const SelectionDAG * | G = 0 |
||
| ) | const |
printrFull - Print a SelectionDAG node and all children down to the leaves. The given SelectionDAG allows target-specific nodes to be printed in human-readable form. Unlike printr, this will print the whole DAG, including children that appear multiple times.
Definition at line 620 of file SelectionDAGDumper.cpp.
References printrWithDepth().
| void SDNode::printrWithDepth | ( | raw_ostream & | O, |
| const SelectionDAG * | G = 0, |
||
| unsigned | depth = 100 |
||
| ) | const |
printrWithDepth - Print a SelectionDAG node and children up to depth "depth." The given SelectionDAG allows target-specific nodes to be printed in human-readable form. Unlike printr, this will print children that appear multiple times wherever they are used.
Definition at line 615 of file SelectionDAGDumper.cpp.
References printrWithDepthHelper().
Referenced by dumprWithDepth(), and printrFull().
| void SDNode::Profile | ( | FoldingSetNodeID & | ID | ) | const |
Profile - Gather unique data for the node.
Definition at line 5931 of file SelectionDAG.cpp.
References AddNodeIDNode().
| void llvm::SDNode::setDebugLoc | ( | const DebugLoc | dl | ) | [inline] |
setDebugLoc - Set source location info. Try to avoid this, putting it in the constructor is preferable.
Definition at line 435 of file SelectionDAGNodes.h.
| void llvm::SDNode::setHasDebugValue | ( | bool | b | ) | [inline] |
setHasDebugValue - set this bit.
Definition at line 398 of file SelectionDAGNodes.h.
Referenced by llvm::SelectionDAG::AddDbgValue().
| void llvm::SDNode::setIROrder | ( | unsigned | Order | ) | [inline] |
setIROrder - Set the node ordering.
Definition at line 428 of file SelectionDAGNodes.h.
Referenced by llvm::NVPTXTargetLowering::LowerFormalArguments().
| void llvm::SDNode::setNodeId | ( | int | Id | ) | [inline] |
setNodeId - Set unique node id.
Definition at line 420 of file SelectionDAGNodes.h.
References llvm::tgtok::Id.
Referenced by llvm::SelectionDAG::AssignTopologicalOrder(), insertDAGNode(), InsertDAGNode(), llvm::DAGTypeLegalizer::run(), llvm::SelectionDAGISel::SelectCodeCommon(), and llvm::SelectionDAG::SelectNodeTo().
| use_iterator llvm::SDNode::use_begin | ( | ) | const [inline] |
use_begin/use_end - Provide iteration support to walk over all uses of an SDNode.
Definition at line 496 of file SelectionDAGNodes.h.
Referenced by llvm::AArch64TargetLowering::addTokenForArgument(), llvm::SelectionDAG::AssignTopologicalOrder(), CMPEQCombine(), CombineBaseUpdate(), CombineVLDDUP(), ExtendUsesToFormExtLoad(), findGlueUse(), findUser(), getGluedUser(), hasAnyUseOfValue(), HasNoSignedComparisonUses(), hasNUsesOfValue(), hasOneUse(), llvm::X86TargetLowering::IsDesirableToPromoteOp(), isLoadIncOrDecStore(), isOnlyUserOf(), LowerEXTRACT_VECTOR_ELT_SSE4(), MayFoldIntoStore(), llvm::PPCTargetLowering::PerformDAGCombine(), PerformEXTRACT_VECTOR_ELTCombine(), PerformMulCombine(), llvm::SelectionDAG::ReplaceAllUsesOfValuesWith(), llvm::SelectionDAG::ReplaceAllUsesOfValueWith(), llvm::SelectionDAG::ReplaceAllUsesWith(), llvm::DAGTypeLegalizer::run(), use_size(), useDivRem(), useSinCos(), and WalkChainUsers().
| bool llvm::SDNode::use_empty | ( | ) | const [inline] |
use_empty - Return true if there are no uses of this node.
Definition at line 402 of file SelectionDAGNodes.h.
Referenced by hasOneUse(), llvm::SelectionDAG::MorphNodeTo(), llvm::SelectionDAG::RemoveDeadNodes(), and llvm::SelectionDAGISel::SelectCodeCommon().
| static use_iterator llvm::SDNode::use_end | ( | ) | [inline, static] |
Definition at line 500 of file SelectionDAGNodes.h.
Referenced by llvm::AArch64TargetLowering::addTokenForArgument(), llvm::SelectionDAG::AssignTopologicalOrder(), CMPEQCombine(), CombineBaseUpdate(), CombineVLDDUP(), ExtendUsesToFormExtLoad(), findGlueUse(), findUser(), getGluedUser(), hasAnyUseOfValue(), HasNoSignedComparisonUses(), hasNUsesOfValue(), hasOneUse(), llvm::X86TargetLowering::IsDesirableToPromoteOp(), isOnlyUserOf(), llvm::PPCTargetLowering::PerformDAGCombine(), PerformEXTRACT_VECTOR_ELTCombine(), llvm::SelectionDAG::ReplaceAllUsesOfValuesWith(), llvm::SelectionDAG::ReplaceAllUsesOfValueWith(), llvm::SelectionDAG::ReplaceAllUsesWith(), llvm::DAGTypeLegalizer::run(), use_size(), useDivRem(), useSinCos(), and WalkChainUsers().
| size_t llvm::SDNode::use_size | ( | ) | const [inline] |
use_size - Return the number of uses of this node. This method takes time proportional to the number of uses.
Definition at line 413 of file SelectionDAGNodes.h.
References use_begin(), and use_end().
| value_iterator llvm::SDNode::value_begin | ( | ) | const [inline] |
Definition at line 625 of file SelectionDAGNodes.h.
| value_iterator llvm::SDNode::value_end | ( | ) | const [inline] |
Definition at line 626 of file SelectionDAGNodes.h.
friend struct ilist_traits< SDNode > [friend] |
Definition at line 358 of file SelectionDAGNodes.h.
friend class SelectionDAG [friend] |
Reimplemented in llvm::MachineSDNode, llvm::StoreSDNode, llvm::LoadSDNode, llvm::VTSDNode, llvm::CvtRndSatSDNode, llvm::CondCodeSDNode, llvm::ExternalSymbolSDNode, llvm::EHLabelSDNode, llvm::BlockAddressSDNode, llvm::RegisterMaskSDNode, llvm::RegisterSDNode, llvm::MDNodeSDNode, llvm::SrcValueSDNode, llvm::BasicBlockSDNode, llvm::TargetIndexSDNode, llvm::ConstantPoolSDNode, llvm::JumpTableSDNode, llvm::FrameIndexSDNode, llvm::GlobalAddressSDNode, llvm::ConstantFPSDNode, llvm::ConstantSDNode, and llvm::ShuffleVectorSDNode.
Definition at line 357 of file SelectionDAGNodes.h.
uint16_t llvm::SDNode::SubclassData [protected] |
SubclassData - This member is defined by this class, but is not used for anything. Subclasses can use it to hold whatever state they find useful. This field is initialized to zero by the ctor.
Definition at line 324 of file SelectionDAGNodes.h.
Referenced by llvm::LSBaseSDNode::getAddressingMode(), llvm::LoadSDNode::getExtensionType(), llvm::MemSDNode::getOrdering(), llvm::MemSDNode::getRawSubclassData(), llvm::MemSDNode::getSynchScope(), llvm::MemSDNode::isInvariant(), llvm::MemSDNode::isNonTemporal(), llvm::StoreSDNode::isTruncatingStore(), llvm::MemSDNode::isVolatile(), llvm::LSBaseSDNode::LSBaseSDNode(), and llvm::MemSDNode::MemSDNode().