|
LLVM
4.0.0
|
Represents one node in the SelectionDAG. More...
#include <SelectionDAGNodes.h>
Classes | |
| class | ConstantSDNodeBitfields |
| class | LoadSDNodeBitfields |
| class | LSBaseSDNodeBitfields |
| class | MemSDNodeBitfields |
| class | SDNodeBitfields |
| class | StoreSDNodeBitfields |
| class | use_iterator |
| This class provides iterator support for SDUse operands that use a specific SDNode. More... | |
| struct | value_op_iterator |
| Iterator for directly iterating over the operand SDValue's. More... | |
Public Types | |
| typedef SDUse * | op_iterator |
| typedef const EVT * | value_iterator |
Public Member Functions | |
| unsigned | getOpcode () const |
| Return the SelectionDAG opcode value for this node. More... | |
| bool | isTargetOpcode () const |
| Test if this node has a target-specific opcode (in the <target>ISD namespace). More... | |
| bool | isTargetMemoryOpcode () const |
| Test if this node has a target-specific memory-referencing opcode (in the <target>ISD namespace and greater than FIRST_TARGET_MEMORY_OPCODE). More... | |
| bool | isUndef () const |
| Return true if the type of the node type undefined. More... | |
| bool | isMemIntrinsic () const |
| Test if this node is a memory intrinsic (with valid pointer information). More... | |
| bool | isMachineOpcode () const |
| Test if this node has a post-isel opcode, directly corresponding to a MachineInstr opcode. More... | |
| unsigned | getMachineOpcode () const |
| This may only be called if isMachineOpcode returns true. More... | |
| bool | getHasDebugValue () const |
| void | setHasDebugValue (bool b) |
| bool | use_empty () const |
| Return true if there are no uses of this node. More... | |
| bool | hasOneUse () const |
| Return true if there is exactly one use of this node. More... | |
| size_t | use_size () const |
| Return the number of uses of this node. More... | |
| int | getNodeId () const |
| Return the unique node id. More... | |
| void | setNodeId (int Id) |
| Set unique node id. More... | |
| unsigned | getIROrder () const |
| Return the node ordering. More... | |
| void | setIROrder (unsigned Order) |
| Set the node ordering. More... | |
| const DebugLoc & | getDebugLoc () const |
| Return the source location info. More... | |
| void | setDebugLoc (DebugLoc dl) |
| Set source location info. More... | |
| use_iterator | use_begin () const |
| Provide iteration support to walk over all uses of an SDNode. More... | |
| iterator_range< use_iterator > | uses () |
| iterator_range< use_iterator > | uses () const |
| bool | hasNUsesOfValue (unsigned NUses, unsigned Value) const |
| Return true if there are exactly NUSES uses of the indicated value. More... | |
| bool | hasAnyUseOfValue (unsigned Value) const |
| Return true if there are any use of the indicated value. More... | |
| bool | isOnlyUserOf (const SDNode *N) const |
| Return true if this node is the only use of N. More... | |
| bool | isOperandOf (const SDNode *N) const |
| Return true if this node is an operand of N. More... | |
| bool | isPredecessorOf (const SDNode *N) const |
| Return true if this node is a predecessor of N. More... | |
| bool | hasPredecessor (const SDNode *N) const |
| Return true if N is a predecessor of this node. More... | |
| unsigned | getNumOperands () const |
| Return the number of values used by this operation. More... | |
| uint64_t | getConstantOperandVal (unsigned Num) const |
| Helper method returns the integer value of a ConstantSDNode operand. More... | |
| const SDValue & | getOperand (unsigned Num) const |
| op_iterator | op_begin () const |
| op_iterator | op_end () const |
| ArrayRef< SDUse > | ops () const |
| iterator_range< value_op_iterator > | op_values () const |
| SDVTList | getVTList () const |
| SDNode * | getGluedNode () const |
| If this node has a glue operand, return the node to which the glue operand points. More... | |
| SDNode * | getGluedUser () const |
| If this node has a glue value with a user, return the user (there is at most one). More... | |
| const SDNodeFlags * | getFlags () const |
| This could be defined as a virtual function and implemented more simply and directly, but it is not to avoid creating a vtable for this class. More... | |
| void | intersectFlagsWith (const SDNodeFlags *Flags) |
| Clear any flags in this node that aren't also set in Flags. More... | |
| unsigned | getNumValues () const |
| Return the number of values defined/returned by this operator. More... | |
| EVT | getValueType (unsigned ResNo) const |
| Return the type of a specified result. More... | |
| MVT | getSimpleValueType (unsigned ResNo) const |
| Return the type of a specified result as a simple type. More... | |
| unsigned | getValueSizeInBits (unsigned ResNo) const |
| Returns MVT::getSizeInBits(getValueType(ResNo)). More... | |
| value_iterator | value_begin () const |
| value_iterator | value_end () const |
| std::string | getOperationName (const SelectionDAG *G=nullptr) const |
| Return the opcode of this operation for printing. More... | |
| 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=nullptr) const |
| void | printr (raw_ostream &OS, const SelectionDAG *G=nullptr) const |
| void | printrFull (raw_ostream &O, const SelectionDAG *G=nullptr) const |
| Print a SelectionDAG node and all children down to the leaves. More... | |
| void | printrWithDepth (raw_ostream &O, const SelectionDAG *G=nullptr, unsigned depth=100) const |
| Print a SelectionDAG node and children up to depth "depth." The given SelectionDAG allows target-specific nodes to be printed in human-readable form. More... | |
| void | dump () const |
| Dump this node, for debugging. More... | |
| void | dumpr () const |
| Dump (recursively) this node and its use-def subgraph. More... | |
| void | dump (const SelectionDAG *G) const |
| Dump this node, for debugging. More... | |
| void | dumpr (const SelectionDAG *G) const |
| Dump (recursively) this node and its use-def subgraph. More... | |
| void | dumprFull (const SelectionDAG *G=nullptr) const |
| printrFull to dbgs(). More... | |
| void | dumprWithDepth (const SelectionDAG *G=nullptr, unsigned depth=100) const |
| printrWithDepth to dbgs(). More... | |
| void | Profile (FoldingSetNodeID &ID) const |
| Gather unique data for the node. More... | |
| void | addUse (SDUse &U) |
| This method should only be used by the SDUse class. More... | |
Public Member Functions inherited from llvm::FoldingSetImpl::Node | |
| Node () | |
| void * | getNextInBucket () const |
| void | SetNextInBucket (void *N) |
Public Member Functions inherited from llvm::ilist_node_impl< ilist_detail::compute_node_options< SDNode, Options...>::type > | |
| self_iterator | getIterator () |
| const_self_iterator | getIterator () const |
| reverse_self_iterator | getReverseIterator () |
| const_reverse_self_iterator | getReverseIterator () const |
| bool | isSentinel () const |
| Check whether this is the sentinel node. More... | |
Static Public Member Functions | |
| static use_iterator | use_end () |
| static bool | hasPredecessorHelper (const SDNode *N, SmallPtrSetImpl< const SDNode * > &Visited, SmallVectorImpl< const SDNode * > &Worklist) |
| Returns true if N is a predecessor of any node in Worklist. More... | |
| static const char * | getIndexedModeName (ISD::MemIndexedMode AM) |
Public Attributes | |
| uint16_t | PersistentId |
| Unique and persistent id per SDNode in the DAG. More... | |
| char | RawSDNodeBits [sizeof(uint16_t)] |
| SDNodeBitfields | SDNodeBits |
| ConstantSDNodeBitfields | ConstantSDNodeBits |
| MemSDNodeBitfields | MemSDNodeBits |
| LSBaseSDNodeBitfields | LSBaseSDNodeBits |
| LoadSDNodeBitfields | LoadSDNodeBits |
| StoreSDNodeBitfields | StoreSDNodeBits |
Protected Types | |
| enum | { NumSDNodeBits = 2 } |
| enum | { NumMemSDNodeBits = NumSDNodeBits + 4 } |
| enum | { NumLSBaseSDNodeBits = NumMemSDNodeBits + 3 } |
Protected Types inherited from llvm::ilist_node_impl< ilist_detail::compute_node_options< SDNode, Options...>::type > | |
| typedef ilist_iterator < ilist_detail::compute_node_options < SDNode, Options...>::type, false, false > | self_iterator |
| typedef ilist_iterator < ilist_detail::compute_node_options < SDNode, Options...>::type, false, true > | const_self_iterator |
| typedef ilist_iterator < ilist_detail::compute_node_options < SDNode, Options...>::type, true, false > | reverse_self_iterator |
| typedef ilist_iterator < ilist_detail::compute_node_options < SDNode, Options...>::type, true, true > | const_reverse_self_iterator |
Protected Member Functions | |
| SDNode (unsigned Opc, unsigned Order, DebugLoc dl, SDVTList VTs) | |
| Create an SDNode. More... | |
| void | DropOperands () |
| Release the operands and set this node to have zero operands. More... | |
Protected Member Functions inherited from llvm::ilist_node_impl< ilist_detail::compute_node_options< SDNode, Options...>::type > | |
| ilist_node_impl ()=default | |
Static Protected Member Functions | |
| static SDVTList | getSDVTList (EVT VT) |
Protected Attributes | |
| union { | |
| char RawSDNodeBits [sizeof(uint16_t)] | |
| SDNodeBitfields SDNodeBits | |
| ConstantSDNodeBitfields ConstantSDNodeBits | |
| MemSDNodeBitfields MemSDNodeBits | |
| LSBaseSDNodeBitfields LSBaseSDNodeBits | |
| LoadSDNodeBitfields LoadSDNodeBits | |
| StoreSDNodeBitfields StoreSDNodeBits | |
| }; | |
Friends | |
| class | SelectionDAG |
| class | HandleSDNode |
Represents one node in the SelectionDAG.
Definition at line 405 of file SelectionDAGNodes.h.
| typedef SDUse* llvm::SDNode::op_iterator |
Definition at line 751 of file SelectionDAGNodes.h.
| typedef const EVT* llvm::SDNode::value_iterator |
Definition at line 823 of file SelectionDAGNodes.h.
|
protected |
| Enumerator | |
|---|---|
| NumSDNodeBits | |
Definition at line 423 of file SelectionDAGNodes.h.
|
protected |
| Enumerator | |
|---|---|
| NumMemSDNodeBits | |
Definition at line 445 of file SelectionDAGNodes.h.
|
protected |
| Enumerator | |
|---|---|
| NumLSBaseSDNodeBits | |
Definition at line 453 of file SelectionDAGNodes.h.
Create an SDNode.
SDNodes are created without any operands, and never own the operand storage. To add operands, see SelectionDAG::createOperands.
Definition at line 898 of file SelectionDAGNodes.h.
References assert(), llvm::DebugLoc::hasTrivialDestructor(), llvm::SDVTList::NumVTs, and RawSDNodeBits.
|
inline |
This method should only be used by the SDUse class.
Definition at line 886 of file SelectionDAGNodes.h.
|
protected |
Release the operands and set this node to have zero operands.
DropOperands - Release the operands and set this node to have zero operands.
Definition at line 6069 of file SelectionDAG.cpp.
References E, I, op_begin(), and op_end().
Referenced by llvm::HandleSDNode::~HandleSDNode().
| LLVM_DUMP_METHOD void SDNode::dump | ( | ) | const |
Dump this node, for debugging.
Definition at line 369 of file SelectionDAGDumper.cpp.
Referenced by llvm::SDValue::dump(), llvm::ScheduleDAGSDNodes::dumpNode(), llvm::HexagonTargetLowering::LowerDYNAMIC_STACKALLOC(), llvm::AMDGPUTargetLowering::LowerOperation(), llvm::DAGTypeLegalizer::run(), llvm::SelectionDAGISel::SelectCodeCommon(), and tryLowerToSLI().
| void SDNode::dump | ( | const SelectionDAG * | G | ) | const |
Dump this node, for debugging.
The given SelectionDAG allows target-specific nodes to be printed in human-readable form.
Definition at line 370 of file SelectionDAGDumper.cpp.
References llvm::dbgs(), and print().
| void SDNode::dumpr | ( | ) | const |
Dump (recursively) this node and its use-def subgraph.
Definition at line 649 of file SelectionDAGDumper.cpp.
References llvm::dbgs(), and DumpNodesr().
Referenced by llvm::SDValue::dumpr(), and llvm::HexagonTargetLowering::LowerOperation().
| void SDNode::dumpr | ( | const SelectionDAG * | G | ) | const |
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 654 of file SelectionDAGDumper.cpp.
References llvm::dbgs(), and DumpNodesr().
| void SDNode::dumprFull | ( | const SelectionDAG * | G = nullptr | ) | const |
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 695 of file SelectionDAGDumper.cpp.
References dumprWithDepth().
Referenced by llvm::SelectionDAG::AssignTopologicalOrder(), and checkForCyclesHelper().
| void SDNode::dumprWithDepth | ( | const SelectionDAG * | G = nullptr, |
| unsigned | depth = 100 |
||
| ) | const |
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 691 of file SelectionDAGDumper.cpp.
References llvm::dbgs(), and printrWithDepth().
Referenced by dumprFull().
| uint64_t SDNode::getConstantOperandVal | ( | unsigned | Num | ) | const |
Helper method returns the integer value of a ConstantSDNode operand.
Definition at line 7105 of file SelectionDAG.cpp.
References assert().
Referenced by checkBoolTestAndOrSetCCCombine(), combineBrCond(), combineCMov(), combineExtractVectorElt(), combineOrCmpEqZeroToCtlzSrl(), combineX86SetCC(), llvm::SelectionDAG::expandVAArg(), findEXTRHalf(), llvm::SDValue::getConstantOperandVal(), llvm::AArch64TargetLowering::isDesirableToCommuteWithShift(), lowerMSASplatImm(), llvm::PPCTargetLowering::PerformDAGCombine(), and replaceZeroVectorStore().
Return the source location info.
Definition at line 609 of file SelectionDAGNodes.h.
Referenced by llvm::SDValue::getDebugLoc().
| const SDNodeFlags * SDNode::getFlags | ( | ) | const |
This could be defined as a virtual function and implemented more simply and directly, but it is not to avoid creating a vtable for this class.
Definition at line 7110 of file SelectionDAG.cpp.
Referenced by combineFneg(), GetNegatedExpression(), isNegatibleForFree(), promoteExtBeforeAdd(), llvm::TargetLowering::SimplifyDemandedBits(), and llvm::SelectionDAG::UnrollVectorOp().
|
inline |
If this node has a glue operand, return the node to which the glue operand points.
Otherwise return NULL.
Definition at line 781 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(), llvm::ScheduleDAGSDNodes::getGraphNodeLabel(), isOperandOf(), llvm::ResourcePriorityQueue::isResourceAvailable(), llvm::SelectionDAGBuilder::LowerAsSTATEPOINT(), and llvm::ResourcePriorityQueue::reserveResources().
|
inline |
If this node has a glue value with a user, return the user (there is at most one).
Otherwise return NULL.
Definition at line 790 of file SelectionDAGNodes.h.
References llvm::MVT::Glue, use_begin(), and use_end().
Referenced by AddCombineTo64bitMLAL(), AddCombineTo64bitUMAAL(), and findGluedUser().
|
inline |
Definition at line 581 of file SelectionDAGNodes.h.
References SDNodeBits.
Referenced by llvm::SelectionDAG::AddDbgValue(), and ProcessSDDbgValues().
|
static |
Definition at line 349 of file SelectionDAGDumper.cpp.
References llvm::ISD::POST_DEC, llvm::ISD::POST_INC, llvm::ISD::PRE_DEC, and llvm::ISD::PRE_INC.
|
inline |
Return the node ordering.
Definition at line 603 of file SelectionDAGNodes.h.
Referenced by PerformADDCombineWithOperands(), and ProcessSourceNode().
|
inline |
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 576 of file SelectionDAGNodes.h.
References assert(), and isMachineOpcode().
Referenced by llvm::SITargetLowering::AdjustInstrPostInstrSelection(), llvm::SIInstrInfo::areLoadsFromSameBasePtr(), 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(), getUsefulBitsForUse(), isBitfieldExtractOp(), IsChainDependent(), llvm::ResourcePriorityQueue::isResourceAvailable(), llvm::ScheduleDAGSDNodes::newSUnit(), nodesHaveSameOperandValue(), PerformANDCombine(), performBitcastCombine(), llvm::SITargetLowering::PostISelFolding(), llvm::ResourcePriorityQueue::reserveResources(), llvm::ARMBaseInstrInfo::shouldScheduleLoadsNear(), llvm::X86InstrInfo::shouldScheduleLoadsNear(), and llvm::X86InstrInfo::unfoldMemoryOperand().
|
inline |
Return the unique node id.
Definition at line 597 of file SelectionDAGNodes.h.
Referenced by llvm::SelectionDAG::AssignTopologicalOrder(), findNonImmUse(), llvm::ScheduleDAGSDNodes::getCustomGraphFeatures(), insertDAGNode(), isLoadIncOrDecStore(), llvm::DAGTypeLegalizer::run(), and WalkChainUsers().
|
inline |
Return the number of values used by this operation.
Definition at line 741 of file SelectionDAGNodes.h.
Referenced by AddCombineBUILD_VECTORToVPADDL(), AddCombineTo64bitMLAL(), AddGlue(), llvm::ISD::allOperandsUndef(), llvm::SelectionDAG::AssignTopologicalOrder(), canReduceVMulWidth(), CombineBaseUpdate(), combineBVOfConsecutiveLoads(), combineSelect(), combineStore(), computeZeroableShuffleElements(), ConvertSelectToConcatVector(), countOperands(), llvm::SDNodeIterator::end(), ExpandBVWithShuffles(), llvm::SelectionDAG::FoldConstantArithmetic(), llvm::PPC::get_VSPLTI_elt(), getDivRemArgList(), getExtendedControlRegister(), getGluedNode(), getInputChainForNode(), llvm::SDValue::getNumOperands(), getNumOperandsNoGlue(), getReadPerformanceCounter(), getReadTimeStampCounter(), llvm::BuildVectorSDNode::getSplatValue(), getTargetShuffleMask(), getTargetVShiftByConstNode(), getTestBitOperand(), haveEfficientBuildVectorPattern(), llvm::ISD::isBuildVectorAllOnes(), isCommonSplatElement(), isConstantOrUndefBUILD_VECTOR(), llvm::BuildVectorSDNode::isConstantSplat(), isExtendedBUILD_VECTOR(), isSplatVector(), llvm::SITargetLowering::legalizeTargetIndependentNode(), llvm::SelectionDAGBuilder::LowerAsSTATEPOINT(), llvm::HexagonTargetLowering::LowerBUILD_VECTOR(), lowerDSPIntr(), llvm::SparcTargetLowering::LowerF128Op(), llvm::HexagonTargetLowering::LowerINLINEASM(), performANDCombine(), PerformANDCombine(), PerformBUILD_VECTORCombine(), performConcatVectorsCombine(), performNEONPostLDSTCombine(), performSRACombine(), print(), llvm::ResourcePriorityQueue::rawRegPressureDelta(), replaceInChain(), llvm::DAGTypeLegalizer::run(), llvm::ResourcePriorityQueue::scheduledNode(), llvm::SelectionDAGISel::SelectCodeCommon(), setTargetShuffleZeroElements(), llvm::TargetLowering::TargetLoweringOpt::SimplifyDemandedBits(), simplifyShuffleOperandRecursively(), tryBuildVectorByteMask(), llvm::X86InstrInfo::unfoldMemoryOperand(), llvm::SelectionDAG::UnrollVectorOp(), llvm::SelectionDAG::UpdateNodeOperands(), and VerifySDNode().
|
inline |
Return the number of values defined/returned by this operator.
Definition at line 805 of file SelectionDAGNodes.h.
Referenced by AddCombineTo64bitMLAL(), AddGlue(), BURRSort(), canChangeToInt(), canClobberPhysRegDefs(), combineCMov(), llvm::InstrEmitter::CountResults(), doNotCSE(), emitCmp(), emitIntrinsicWithChainAndGlue(), emitIntrinsicWithGlue(), findGlueUse(), getCCResult(), getCmp(), getFPBinOp(), getFPTernOp(), llvm::ARMTargetLowering::getSchedulingPreference(), llvm::SelectionDAGBuilder::getValueImpl(), hasAnyUseOfValue(), hasNUsesOfValue(), llvm::SelectionDAGISel::IsLegalToFold(), LowerExtended1BitVectorLoad(), LowerExtendedLoad(), LowerMSCATTER(), llvm::R600TargetLowering::LowerOperation(), llvm::SITargetLowering::LowerOperation(), llvm::MipsTargetLowering::LowerOperationWrapper(), llvm::X86TargetLowering::LowerOperationWrapper(), llvm::SelectionDAGBuilder::lowerRangeToAssertZExt(), llvm::DAGTypeLegalizer::NoteDeletion(), PrepareCall(), print_types(), llvm::ResourcePriorityQueue::rawRegPressureDelta(), RemoveUnusedGlue(), llvm::SelectionDAG::ReplaceAllUsesOfValueWith(), llvm::SelectionDAG::ReplaceAllUsesWith(), llvm::AVRTargetLowering::ReplaceNodeResults(), llvm::DAGTypeLegalizer::run(), llvm::ResourcePriorityQueue::scheduledNode(), llvm::SelectionDAGISel::SelectCodeCommon(), llvm::TargetLowering::TargetLoweringOpt::ShrinkDemandedOp(), llvm::X86InstrInfo::unfoldMemoryOperand(), llvm::SelectionDAG::UnrollVectorOp(), and VerifySDNode().
|
inline |
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 542 of file SelectionDAGNodes.h.
Referenced by AddCombineBUILD_VECTORToVPADDL(), AddCombineTo64bitMLAL(), AddNodeIDCustom(), AddNodeIDNode(), adjustForFNeg(), adjustForLTGFR(), adjustForSubtraction(), canEnableCoalescing(), canFoldInAddressingMode(), CheckAndImm(), checkBoolTestAndOrSetCCCombine(), CheckForMaskedLoad(), CheckForPhysRegDependency(), checkHighLaneIndex(), CheckOpcode(), CheckOrImm(), checkValueWidth(), llvm::BinaryWithFlagsSDNode::classof(), llvm::AddrSpaceCastSDNode::classof(), llvm::MemSDNode::classof(), llvm::AtomicSDNode::classof(), llvm::MemIntrinsicSDNode::classof(), llvm::X86StoreSDNode::classof(), llvm::X86MaskedStoreSDNode::classof(), llvm::TruncSStoreSDNode::classof(), llvm::TruncUSStoreSDNode::classof(), llvm::MaskedTruncSStoreSDNode::classof(), llvm::ShuffleVectorSDNode::classof(), llvm::MaskedTruncUSStoreSDNode::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::MCSymbolSDNode::classof(), llvm::CondCodeSDNode::classof(), llvm::VTSDNode::classof(), llvm::LSBaseSDNode::classof(), llvm::LoadSDNode::classof(), llvm::StoreSDNode::classof(), llvm::MaskedLoadStoreSDNode::classof(), llvm::MaskedLoadSDNode::classof(), llvm::MaskedStoreSDNode::classof(), llvm::MaskedGatherScatterSDNode::classof(), llvm::MaskedGatherSDNode::classof(), llvm::MaskedScatterSDNode::classof(), CloneNodeWithValues(), closestSucc(), combineANDXORWithAllOnesIntoANDNP(), CombineBaseUpdate(), combineBVOfConsecutiveLoads(), combineExtractVectorElt(), combineFaddFsub(), combineFMA(), combineFMinFMax(), combineFMinNumFMaxNum(), combineFOr(), combineIntegerAbs(), combineLogicBlendIntoPBLENDV(), combineMul(), combineOrCmpEqZeroToCtlzSrl(), combineSelect(), combineSelectAndUse(), combineShift(), combineShuffle(), combineStore(), combineTestM(), combineToExtendVectorInReg(), combineTruncatedArithmetic(), combineVectorCompare(), combineVectorCompareAndMaskUnaryOp(), combineVectorShift(), CombineVLDDUP(), combineVSelectWithAllOnesOrZeros(), combineVSZext(), llvm::ScheduleDAGSDNodes::computeLatency(), llvm::ScheduleDAGSDNodes::computeOperandLatency(), convertIntLogicToFPLogic(), doNotCSE(), emitConjunctionDisjunctionTreeRec(), Expand64BitShift(), llvm::TargetLowering::expandMUL(), llvm::PPCTargetLowering::expandVSXLoadForLE(), llvm::PPCTargetLowering::expandVSXStoreForLE(), ExtendUsesToFormExtLoad(), FindCallSeqStart(), findConsecutiveLoad(), findMUL_LOHI(), FoldIntToFPToInt(), llvm::SelectionDAG::FoldSymbolOffset(), generateEquivalentSub(), getARMIndexedAddressParts(), llvm::MemSDNode::getBasePtr(), GetCostForDef(), getDivRem8(), getDivRemArgList(), getDivRemLibcall(), getIndexedAddressParts(), getIntrinsicID(), llvm::SelectionDAG::getNode(), llvm::LSBaseSDNode::getOffset(), llvm::SDValue::getOpcode(), getOperationName(), getPhysicalRegisterVT(), llvm::AVRTargetLowering::getPostIndexedAddressParts(), llvm::ARMTargetLowering::getPostIndexedAddressParts(), llvm::AVRTargetLowering::getPreIndexedAddressParts(), getT2IndexedAddressParts(), getTargetConstantFromNode(), getTargetShuffleMask(), getTestBitOperand(), HandleMergeInputChains(), hasNonFlagsUse(), hasOnlyLiveInOpers(), hasOnlyLiveOutUses(), hasVRegCycleUse(), isAddSub(), isAddSubSExt(), isAddSubZExt(), isBitfieldExtractOp(), isBitfieldExtractOpFromAnd(), isBitfieldExtractOpFromSExtInReg(), isBitfieldExtractOpFromShr(), isBitwiseInverse(), llvm::ISD::isBuildVectorAllOnes(), llvm::ISD::isBuildVectorAllZeros(), llvm::ISD::isBuildVectorOfConstantFPSDNodes(), llvm::ISD::isBuildVectorOfConstantSDNodes(), IsChainDependent(), llvm::AtomicSDNode::isCompareAndSwap(), isConditionalZeroOrAllOnes(), isConjunctionDisjunctionTree(), isConsecutiveLS(), llvm::AArch64TargetLowering::isDesirableToCommuteWithShift(), isExtendedBUILD_VECTOR(), isFloatingPointZero(), isFNEG(), llvm::X86TargetLowering::isGAPlusOffset(), llvm::TargetLowering::isGAPlusOffset(), isHorizontalBinOp(), isInt32Immediate(), isInt64Immediate(), isIntS16Immediate(), isOpcodeHandled(), isOpcWithIntImmediate(), llvm::ScheduleDAGSDNodes::isPassiveNode(), isSaturatingConditional(), isSeveralBitsExtractOpFromShr(), isSignExtended(), isTruncateOf(), isVectorAllOnes(), llvm::ARMTargetLowering::isVectorLoadExtDesirable(), IsVUZPShuffleNode(), isZeroExtended(), lowerAtomicArith(), lowerAtomicArithWithLOCK(), llvm::SparcTargetLowering::LowerCall_64(), lowerCallFromStatepointLoweringInfo(), llvm::TargetLowering::lowerCmpEqZeroToCtlzSrl(), LowerCTTZ(), LowerEXTRACT_VECTOR_ELT_SSE4(), llvm::HexagonTargetLowering::LowerINLINEASM(), LowerMUL_LOHI(), LowerShift(), LowerVECTOR_SHUFFLE(), lowerX86FPLogicOp(), matchBinOpReduction(), MayFoldIntoZeroExtend(), OptimizeConditionalInDecrement(), llvm::TargetLowering::parametersInCSRMatch(), ParseBFI(), performAcrossLaneAddReductionCombine(), performAcrossLaneMinMaxReductionCombine(), PerformADDCombineWithOperands(), performAddSubLongCombine(), performANDCombine(), PerformANDCombine(), PerformARMBUILD_VECTORCombine(), performBitcastCombine(), llvm::ARMTargetLowering::PerformBRCONDCombine(), performCMovFPCombine(), llvm::ARMTargetLowering::PerformCMOVToBFICombine(), performConcatVectorsCombine(), performCONDCombine(), llvm::R600TargetLowering::PerformDAGCombine(), llvm::MipsSETargetLowering::PerformDAGCombine(), llvm::LanaiTargetLowering::PerformDAGCombine(), llvm::AMDGPUTargetLowering::PerformDAGCombine(), llvm::SITargetLowering::PerformDAGCombine(), llvm::MipsTargetLowering::PerformDAGCombine(), llvm::AArch64TargetLowering::PerformDAGCombine(), llvm::ARMTargetLowering::PerformDAGCombine(), llvm::SystemZTargetLowering::PerformDAGCombine(), llvm::PPCTargetLowering::PerformDAGCombine(), llvm::X86TargetLowering::PerformDAGCombine(), performDivRemCombine(), performExtendCombine(), PerformExtendCombine(), performFDivCombine(), performFpToIntCombine(), performIntegerAbsCombine(), performIntToFpCombine(), performMulCombine(), llvm::AMDGPUTargetLowering::performMulLoHi24Combine(), performNEONPostLDSTCombine(), performORCombine(), performPostLD1Combine(), PerformREMCombine(), performSetccAddFolding(), PerformShiftCombine(), performSRACombine(), PerformSTORECombine(), performTBZCombine(), PerformVCVTCombine(), PerformVDIVCombine(), performVectorCompareAndMaskUnaryOpCombine(), performVSELECTCombine(), performXORCombine(), promoteExtBeforeAdd(), replaceInChain(), llvm::R600TargetLowering::ReplaceNodeResults(), llvm::AVRTargetLowering::ReplaceNodeResults(), llvm::XCoreTargetLowering::ReplaceNodeResults(), llvm::AMDGPUTargetLowering::ReplaceNodeResults(), llvm::SparcTargetLowering::ReplaceNodeResults(), llvm::ARMTargetLowering::ReplaceNodeResults(), llvm::PPCTargetLowering::ReplaceNodeResults(), llvm::X86TargetLowering::ReplaceNodeResults(), resetVRegCycle(), llvm::SelectionDAGISel::SelectCodeCommon(), llvm::AVRDAGToDAGISel::SelectInlineAsmMemoryOperand(), selectMADD(), selectMSUB(), shouldUseLA(), llvm::TargetLowering::SimplifyDemandedBits(), llvm::TargetLowering::SimplifySetCC(), skipExtensionForVectorMULL(), SkipExtensionForVMULL(), SplitVSETCC(), tryBitfieldInsertOpFromOr(), tryBitfieldInsertOpFromOrAndImm(), tryCombineToEXTR(), tryExtendDUPToExtractHigh(), TryMULWIDECombine(), tryToFoldExtendOfConstant(), llvm::SelectionDAG::UnrollVectorOp(), useSinCos(), VerifySDNode(), WalkChainUsers(), and WidenMaskArithmetic().
Definition at line 746 of file SelectionDAGNodes.h.
References assert().
Referenced by AddCombineBUILD_VECTORToVPADDL(), AddCombineTo64bitMLAL(), AddCombineTo64bitUMAAL(), AddCombineToVPADD(), AddGlue(), adjustForLTGFR(), adjustForSubtraction(), llvm::SIInstrInfo::areLoadsFromSameBasePtr(), llvm::ARMBaseInstrInfo::areLoadsFromSameBasePtr(), llvm::X86InstrInfo::areLoadsFromSameBasePtr(), llvm::SelectionDAG::areNonVolatileConsecutiveLoads(), llvm::TargetLowering::BuildSDIV(), llvm::PPCTargetLowering::BuildSDIVPow2(), llvm::TargetLowering::BuildUDIV(), CanCombineFCOPYSIGN_EXTEND_ROUND(), canFoldInAddressingMode(), canReduceVMulWidth(), ChangeVSETULTtoVSETULE(), CheckAndImm(), checkBoolTestAndOrSetCCCombine(), CheckForMaskedLoad(), CheckForPhysRegDependency(), checkHighLaneIndex(), CheckOrImm(), checkValueWidth(), combineAcrossLanesIntrinsic(), combineADC(), combineAdd(), combineAnd(), combineANDXORWithAllOnesIntoANDNP(), CombineBaseUpdate(), combineBasicSADPattern(), combineBitcast(), combineBrCond(), combineBT(), combineBVOfConsecutiveLoads(), combineCMov(), combineCompareEqual(), combineConcatVectorOfExtracts(), combineConcatVectorOfScalars(), combineExtractVectorElt(), combineFaddFsub(), combineFAnd(), combineFAndFNotToFAndn(), combineFAndn(), combineFMA(), combineFMinFMax(), combineFMinNumFMaxNum(), combineFOr(), combineGatherScatter(), combineIntegerAbs(), combineLockSub(), combineLogicBlendIntoPBLENDV(), combineLoopSADPattern(), combineMaskedLoadConstantMask(), combineMul(), combineOr(), combineOrCmpEqZeroToCtlzSrl(), combinePCMPAnd1(), combineSelect(), combineSelectAndUseCommutative(), combineSelectOfTwoConstants(), combineSetCC(), combineSext(), combineShiftLeft(), combineShiftRightAlgebraic(), combineShuffle(), combineShuffleOfConcatUndef(), combineShuffleOfScalars(), combineSignExtendInReg(), combineSIntToFP(), combineStore(), combineSub(), combineTargetShuffle(), combineTestM(), combineToExtendVectorInReg(), combineTruncate(), combineTruncatedArithmetic(), combineUIntToFP(), combineVectorCompare(), combineVectorCompareAndMaskUnaryOp(), combineVectorShift(), combineVectorSignBitsTruncation(), combineVectorTruncation(), CombineVLDDUP(), CombineVMOVDRRCandidateWithVecOp(), combineVSelectWithAllOnesOrZeros(), combineVSZext(), combineX86SetCC(), combineZext(), llvm::AArch64TargetLowering::computeKnownBitsForTargetNode(), llvm::ARMTargetLowering::computeKnownBitsForTargetNode(), llvm::ScheduleDAGSDNodes::computeOperandLatency(), convertIntLogicToFPLogic(), ConvertSelectToConcatVector(), countOperands(), detectZextAbsDiff(), emitConjunctionDisjunctionTreeRec(), Expand64BitShift(), ExpandBITCAST(), ExpandBVWithShuffles(), llvm::TargetLowering::expandFP_TO_SINT(), llvm::TargetLowering::expandMUL(), ExpandREAD_REGISTER(), llvm::SelectionDAG::expandVAArg(), llvm::SelectionDAG::expandVACopy(), llvm::PPCTargetLowering::expandVSXLoadForLE(), llvm::PPCTargetLowering::expandVSXStoreForLE(), ExtendUsesToFormExtLoad(), FindBFIToCombineWith(), findChainOperand(), findEXTRHalf(), foldBitcastedFPLogic(), llvm::SelectionDAG::FoldConstantArithmetic(), llvm::SelectionDAG::FoldConstantVectorArithmetic(), FoldIntToFPToInt(), foldVectorXorShiftIntoCmp(), foldXorTruncShiftIntoCmp(), generateEquivalentSub(), llvm::PPC::get_VSPLTI_elt(), getARMIndexedAddressParts(), llvm::MemSDNode::getBasePtr(), llvm::AtomicSDNode::getBasePtr(), llvm::X86StoreSDNode::getBasePtr(), llvm::X86MaskedStoreSDNode::getBasePtr(), llvm::LoadSDNode::getBasePtr(), llvm::StoreSDNode::getBasePtr(), llvm::MaskedLoadStoreSDNode::getBasePtr(), llvm::MaskedGatherScatterSDNode::getBasePtr(), getBuildPairElt(), llvm::MemSDNode::getChain(), llvm::SelectionDAG::getCommutedVectorShuffle(), GetCostForDef(), getCTPOP16BitCounts(), getDivRem8(), getDivRemArgList(), llvm::DOTGraphTraits< SelectionDAG * >::getEdgeTarget(), getExtendedControlRegister(), getExtractVEXTRACTImmediate(), getGluedNode(), llvm::MaskedGatherScatterSDNode::getIndex(), getIndexedAddressParts(), getInputChainForNode(), getInsertVINSERTImmediate(), getIntrinsicID(), llvm::X86MaskedStoreSDNode::getMask(), llvm::MaskedLoadStoreSDNode::getMask(), llvm::MaskedGatherScatterSDNode::getMask(), llvm::SelectionDAG::getNode(), getNumOperandsNoGlue(), llvm::LSBaseSDNode::getOffset(), llvm::LoadSDNode::getOffset(), llvm::StoreSDNode::getOffset(), getOneTrueElt(), llvm::SDValue::getOperand(), llvm::ARMBaseInstrInfo::getOperandLatency(), getOperationName(), llvm::AVRTargetLowering::getPostIndexedAddressParts(), llvm::ARMTargetLowering::getPostIndexedAddressParts(), llvm::AVRTargetLowering::getPreIndexedAddressParts(), getReadPerformanceCounter(), getReadTimeStampCounter(), getShuffleScalarElt(), llvm::BuildVectorSDNode::getSplatValue(), llvm::MaskedLoadSDNode::getSrc0(), getT2IndexedAddressParts(), getTargetConstantFromNode(), getTargetShuffleMask(), getTargetVShiftByConstNode(), getTestBitOperand(), getUnderlyingExtractedFromVec(), getUsefulBitsForUse(), llvm::AtomicSDNode::getVal(), llvm::X86StoreSDNode::getValue(), llvm::X86MaskedStoreSDNode::getValue(), llvm::StoreSDNode::getValue(), llvm::MaskedStoreSDNode::getValue(), llvm::MaskedGatherScatterSDNode::getValue(), llvm::SelectionDAG::getVectorShuffle(), hasNormalLoadOperand(), hasOnlyLiveInOpers(), hasOnlyLiveOutUses(), haveEfficientBuildVectorPattern(), isAddSub(), isAddSubSExt(), isAddSubZExt(), isAllConstantBuildVector(), isBitfieldExtractOp(), isBitfieldExtractOpFromAnd(), isBitfieldExtractOpFromSExtInReg(), isBitfieldExtractOpFromShr(), isBitwiseInverse(), llvm::ISD::isBuildVectorAllOnes(), llvm::ISD::isBuildVectorAllZeros(), isCommonSplatElement(), isConditionalZeroOrAllOnes(), isConjunctionDisjunctionTree(), isConsecutiveLS(), isConstantOrUndefBUILD_VECTOR(), llvm::BuildVectorSDNode::isConstantSplat(), llvm::AArch64TargetLowering::isDesirableToCommuteWithShift(), isExtendedBUILD_VECTOR(), isFloatingPointZero(), isFNEG(), llvm::X86TargetLowering::isGAPlusOffset(), llvm::TargetLowering::isGAPlusOffset(), isHorizontalBinOp(), isLoadIncOrDecStore(), isOpcodeHandled(), isOpcWithIntImmediate(), isSaturatingConditional(), isSetCCOrZExtSetCC(), isSeveralBitsExtractOpFromShr(), isSplatVector(), isTruncateOf(), isVectorAllOnes(), isVEXTRACTIndex(), isVINSERTIndex(), llvm::PPC::isXXINSERTWMask(), llvm::SITargetLowering::legalizeTargetIndependentNode(), llvm::SelectionDAGBuilder::LowerAsSTATEPOINT(), LowerATOMIC_STORE(), lowerAtomicArith(), lowerAtomicArithWithLOCK(), LowerAVXExtend(), LowerBITCAST(), llvm::HexagonTargetLowering::LowerBUILD_VECTOR(), lowerBuildVectorToBitOp(), LowerBuildVectorv4x32(), lowerCallFromStatepointLoweringInfo(), lowerCTPOP32BitElements(), LowerCTTZ(), lowerDSPIntr(), LowerEXTEND_VECTOR_INREG(), llvm::HexagonTargetLowering::LowerINLINEASM(), LowerMGATHER(), lowerMSABitClear(), lowerMSABitClearImm(), lowerMSACopyIntr(), lowerMSALoadIntr(), lowerMSASplatZExt(), lowerMSAStoreIntr(), llvm::LanaiTargetLowering::LowerMUL(), LowerShift(), llvm::MSP430TargetLowering::LowerShifts(), LowerSIGN_EXTEND(), LowerSIGN_EXTEND_AVX512(), LowerToHorizontalOp(), lowerUINT_TO_FP_vXi32(), LowerVAARG(), llvm::HexagonTargetLowering::LowerVECTOR_SHIFT(), LowerVECTOR_SHUFFLE(), lowerVECTOR_SHUFFLE_ILVEV(), lowerVECTOR_SHUFFLE_ILVL(), lowerVECTOR_SHUFFLE_ILVOD(), lowerVECTOR_SHUFFLE_ILVR(), lowerVECTOR_SHUFFLE_PCKEV(), lowerVECTOR_SHUFFLE_PCKOD(), lowerVECTOR_SHUFFLE_SHF(), lowerVECTOR_SHUFFLE_VSHF(), LowerVectorAllZeroTest(), lowerVectorShuffleAsBroadcast(), lowerVSELECTtoVectorShuffle(), LowerWRITE_REGISTER(), lowerX86CmpEqZeroToCtlzSrl(), lowerX86FPLogicOp(), LowerXALUO(), LowerZERO_EXTEND_AVX512(), matchBinOpReduction(), nodesHaveSameOperandValue(), llvm::SDNodeIterator::operator*(), OptimizeConditionalInDecrement(), llvm::TargetLowering::parametersInCSRMatch(), ParseBFI(), partitionShuffleOfConcats(), performAcrossLaneAddReductionCombine(), performAcrossLaneMinMaxReductionCombine(), performADDCombine(), PerformADDCombine(), performAddSubLongCombine(), performANDCombine(), PerformANDCombine(), PerformARMBUILD_VECTORCombine(), performAssertZextCombine(), PerformBFICombine(), performBitcastCombine(), llvm::ARMTargetLowering::PerformBRCONDCombine(), performBRCONDCombine(), PerformBUILD_VECTORCombine(), llvm::ARMTargetLowering::PerformCMOVCombine(), performCMovFPCombine(), llvm::ARMTargetLowering::PerformCMOVToBFICombine(), performConcatVectorsCombine(), performCONDCombine(), llvm::R600TargetLowering::PerformDAGCombine(), llvm::AMDGPUTargetLowering::PerformDAGCombine(), llvm::SITargetLowering::PerformDAGCombine(), llvm::AArch64TargetLowering::PerformDAGCombine(), llvm::ARMTargetLowering::PerformDAGCombine(), llvm::PPCTargetLowering::PerformDAGCombine(), performDivRemCombine(), performDSPShiftCombine(), performExtendCombine(), PerformExtendCombine(), performFDivCombine(), llvm::AMDGPUTargetLowering::performFNegCombine(), performFpToIntCombine(), PerformInsertEltCombine(), performIntegerAbsCombine(), performIntMed3ImmCombine(), performIntrinsicCombine(), PerformIntrinsicCombine(), performIntToFpCombine(), llvm::AMDGPUTargetLowering::performMulCombine(), performMULCombine(), performMulCombine(), PerformMULCombine(), llvm::AMDGPUTargetLowering::performMulhsCombine(), llvm::AMDGPUTargetLowering::performMulhuCombine(), llvm::AMDGPUTargetLowering::performMulLoHi24Combine(), performNEONPostLDSTCombine(), performNVCASTCombine(), performORCombine(), PerformORCombine(), performPostLD1Combine(), PerformREMCombine(), llvm::AMDGPUTargetLowering::performSelectCombine(), performSELECTCombine(), PerformSELECTCombine(), performSelectCombine(), performSetccAddFolding(), performSETCCCombine(), PerformShiftCombine(), performShiftToAllZeros(), llvm::AMDGPUTargetLowering::performShlCombine(), llvm::AMDGPUTargetLowering::performSraCombine(), performSRACombine(), llvm::AMDGPUTargetLowering::performSrlCombine(), performSRLCombine(), performSTORECombine(), PerformSTORECombine(), PerformSUBCombine(), performTBZCombine(), PerformVCVTCombine(), PerformVDIVCombine(), PerformVDUPCombine(), PerformVDUPLANECombine(), PerformVECTOR_SHUFFLECombine(), performVectorCompareAndMaskUnaryOpCombine(), PerformVMOVDRRCombine(), PerformVMOVRRDCombine(), PerformVMULCombine(), performVSELECTCombine(), performVSelectCombine(), performXORCombine(), print(), promoteExtBeforeAdd(), llvm::ResourcePriorityQueue::rawRegPressureDelta(), reduceVMULWidth(), ReplaceBITCASTResults(), ReplaceCMP_SWAP_128Results(), ReplaceCMP_SWAP_64Results(), replaceInChain(), ReplaceINTRINSIC_W_CHAIN(), llvm::R600TargetLowering::ReplaceNodeResults(), llvm::AVRTargetLowering::ReplaceNodeResults(), llvm::SparcTargetLowering::ReplaceNodeResults(), llvm::PPCTargetLowering::ReplaceNodeResults(), llvm::X86TargetLowering::ReplaceNodeResults(), ReplaceREADCYCLECOUNTER(), llvm::DAGTypeLegalizer::run(), llvm::ResourcePriorityQueue::scheduledNode(), SearchSignedMulLong(), llvm::SelectionDAGISel::SelectCodeCommon(), llvm::AVRDAGToDAGISel::SelectInlineAsmMemoryOperand(), selectMADD(), selectMSUB(), llvm::TargetLowering::TargetLoweringOpt::ShrinkDemandedOp(), llvm::TargetLowering::TargetLoweringOpt::SimplifyDemandedBits(), llvm::TargetLowering::SimplifyDemandedBits(), simplifyI24(), llvm::TargetLowering::SimplifySetCC(), simplifyShuffleOperandRecursively(), skipExtensionForVectorMULL(), SkipExtensionForVMULL(), splitAndLowerVectorShuffle(), llvm::SelectionDAG::SplitVectorOperand(), SplitVSETCC(), tryBitfieldInsertOpFromOr(), tryBitfieldInsertOpFromOrAndImm(), tryBuildVectorByteMask(), tryBuildVectorShuffle(), tryCombineCRC32(), tryCombineFixedPointConvert(), tryCombineLongOpWithDup(), tryCombineShiftImm(), tryCombineToBSL(), tryCombineToEXTR(), tryLowerToSLI(), tryMatchAcrossLaneShuffleForReduction(), TryMULWIDECombine(), tryToFoldExtendOfConstant(), llvm::X86InstrInfo::unfoldMemoryOperand(), llvm::SelectionDAG::UnrollVectorOp(), llvm::SelectionDAG::UpdateNodeOperands(), useSinCos(), VerifySDNode(), WidenMaskArithmetic(), WinDBZCheckDenominator(), and XFormVExtractWithShuffleIntoLoad().
| std::string SDNode::getOperationName | ( | const SelectionDAG * | G = nullptr | ) | const |
Return the opcode of this operation for printing.
Definition at line 39 of file SelectionDAGDumper.cpp.
References llvm::ISD::ADD, llvm::ISD::ADDC, llvm::ISD::ADDE, llvm::ISD::ADDROFRETURNADDR, llvm::ISD::ADDRSPACECAST, llvm::ISD::ADJUST_TRAMPOLINE, llvm::ISD::AND, llvm::ISD::ANY_EXTEND, llvm::ISD::ANY_EXTEND_VECTOR_INREG, llvm::ISD::AssertSext, llvm::ISD::AssertZext, llvm::ISD::ATOMIC_CMP_SWAP, llvm::ISD::ATOMIC_CMP_SWAP_WITH_SUCCESS, 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::BITREVERSE, 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::CATCHRET, llvm::ISD::CLEANUPRET, llvm::ISD::CONCAT_VECTORS, llvm::ISD::CONDCODE, llvm::ISD::Constant, llvm::ISD::ConstantFP, llvm::ISD::ConstantPool, 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::DEBUGTRAP, llvm::ISD::DELETED_NODE, llvm::ISD::DYNAMIC_STACKALLOC, llvm::ISD::EH_DWARF_CFA, llvm::ISD::EH_LABEL, llvm::ISD::EH_RETURN, llvm::ISD::EH_SJLJ_LONGJMP, llvm::ISD::EH_SJLJ_SETJMP, llvm::ISD::EH_SJLJ_SETUP_DISPATCH, llvm::ISD::EntryToken, llvm::ISD::ExternalSymbol, llvm::ISD::EXTRACT_ELEMENT, llvm::ISD::EXTRACT_SUBVECTOR, llvm::ISD::EXTRACT_VECTOR_ELT, llvm::ISD::FABS, llvm::ISD::FADD, llvm::ISD::FCANONICALIZE, 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::FMAD, llvm::ISD::FMAXNAN, llvm::ISD::FMAXNUM, llvm::ISD::FMINNAN, llvm::ISD::FMINNUM, llvm::ISD::FMUL, llvm::ISD::FNEARBYINT, llvm::ISD::FNEG, llvm::ISD::FP16_TO_FP, llvm::ISD::FP_EXTEND, llvm::ISD::FP_ROUND, llvm::ISD::FP_ROUND_INREG, llvm::ISD::FP_TO_FP16, 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::FROUND, llvm::ISD::FSIN, llvm::ISD::FSINCOS, llvm::ISD::FSQRT, llvm::ISD::FSUB, llvm::ISD::FTRUNC, llvm::ISD::GC_TRANSITION_END, llvm::ISD::GC_TRANSITION_START, llvm::ISD::GET_DYNAMIC_AREA_OFFSET, llvm::TargetSubtargetInfo::getInstrInfo(), llvm::TargetMachine::getIntrinsicInfo(), getMachineOpcode(), llvm::Intrinsic::getName(), getOpcode(), getOperand(), llvm::SelectionDAG::getSubtarget(), 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::LOCAL_RECOVER, llvm::ISD::MCSymbol, llvm::ISD::MDNODE_SDNODE, llvm::ISD::MERGE_VALUES, llvm::ISD::MGATHER, llvm::ISD::MLOAD, llvm::ISD::MSCATTER, llvm::ISD::MSTORE, llvm::ISD::MUL, llvm::ISD::MULHS, llvm::ISD::MULHU, llvm::None, llvm::Intrinsic::num_intrinsics, llvm::ISD::OR, llvm::ISD::PCMARKER, llvm::ISD::PREFETCH, llvm::ISD::READ_REGISTER, 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::SETCCE, 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::SIGN_EXTEND_VECTOR_INREG, llvm::ISD::SINT_TO_FP, llvm::ISD::SMAX, llvm::ISD::SMIN, 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::UMAX, llvm::ISD::UMIN, 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::WRITE_REGISTER, llvm::ISD::XOR, llvm::ISD::ZERO_EXTEND, and llvm::ISD::ZERO_EXTEND_VECTOR_INREG.
Referenced by llvm::DOTGraphTraits< SelectionDAG * >::getSimpleNodeLabel().
Definition at line 889 of file SelectionDAGNodes.h.
References llvm::MipsISD::Ret.
Return the type of a specified result as a simple type.
Definition at line 814 of file SelectionDAGNodes.h.
References llvm::EVT::getSimpleVT(), and getValueType().
Referenced by llvm::ScheduleDAGSDNodes::RegDefIter::Advance(), canClobberPhysRegDefs(), ChangeVSETULTtoVSETULE(), CheckForPhysRegDependency(), combineOrCmpEqZeroToCtlzSrl(), combineVectorCompare(), combineVSZext(), combineX86SetCC(), llvm::SelectionDAG::getCommutedVectorShuffle(), getInsertVINSERTImmediate(), getPhysicalRegisterVT(), isAddSub(), isSinCosLibcallAvailable(), isVEXTRACTIndex(), isVINSERTIndex(), LowerADDC_ADDE_SUBC_SUBE(), lowerAtomicArith(), lowerAtomicArithWithLOCK(), LowerAVXExtend(), lowerBuildVectorToBitOp(), LowerEXTEND_VECTOR_INREG(), LowerFPOWI(), LowerSIGN_EXTEND(), LowerSIGN_EXTEND_AVX512(), lowerToAddSubOrFMAddSub(), LowerToHorizontalOp(), lowerUINT_TO_FP_vXi32(), LowerVectorBroadcast(), lowerX86FPLogicOp(), LowerZERO_EXTEND_AVX512(), performAddSubLongCombine(), performFDivCombine(), performFpToIntCombine(), PerformVCVTCombine(), PerformVDIVCombine(), llvm::ResourcePriorityQueue::rawRegPressureDelta(), llvm::ResourcePriorityQueue::scheduledNode(), and tryCombineShiftImm().
Returns MVT::getSizeInBits(getValueType(ResNo)).
Definition at line 819 of file SelectionDAGNodes.h.
References llvm::EVT::getSizeInBits(), and getValueType().
Return the type of a specified result.
Definition at line 808 of file SelectionDAGNodes.h.
References assert().
Referenced by AddCombineBUILD_VECTORToVPADDL(), AddCombineTo64bitMLAL(), AddCombineTo64bitUMAAL(), AddCombineToVPADD(), AddCombineVUZPToVPADDL(), AddGlue(), AddNodeIDCustom(), adjustForSubtraction(), llvm::SelectionDAG::areNonVolatileConsecutiveLoads(), llvm::TargetLowering::BuildSDIV(), llvm::PPCTargetLowering::BuildSDIVPow2(), llvm::TargetLowering::BuildSDIVPow2(), llvm::TargetLowering::BuildUDIV(), CanCombineFCOPYSIGN_EXTEND_ROUND(), combineAcrossLanesIntrinsic(), combineADC(), combineAdd(), combineAnd(), combineANDXORWithAllOnesIntoANDNP(), CombineBaseUpdate(), combineBitcast(), combineBVOfConsecutiveLoads(), combineCMov(), combineCompareEqual(), combineConcatVectorOfExtracts(), combineConcatVectorOfScalars(), combineExtractVectorElt(), combineFaddFsub(), combineFAndFNotToFAndn(), combineFMA(), combineFMinFMax(), combineFMinNumFMaxNum(), combineFneg(), combineIntegerAbs(), combineLoad(), combineLogicBlendIntoPBLENDV(), combineLoopSADPattern(), combineMaskedLoad(), combineMaskedLoadConstantMask(), combineMul(), combineOr(), combineOrCmpEqZeroToCtlzSrl(), combinePCMPAnd1(), combineSelect(), combineSelectAndUse(), combineSelectOfTwoConstants(), combineSetCC(), combineSext(), combineShuffle(), combineShuffleOfConcatUndef(), combineShuffleOfScalars(), combineShuffleToAddSubOrFMAddSub(), combineSignExtendInReg(), combineSIntToFP(), combineSub(), combineTestM(), combineToExtendVectorInReg(), combineTruncate(), combineTruncatedArithmetic(), combineUIntToFP(), combineVectorCompareAndMaskUnaryOp(), combineVectorShift(), combineVectorSignBitsTruncation(), combineVectorTruncation(), combineVectorTruncationWithPACKSS(), combineVectorTruncationWithPACKUS(), CombineVLDDUP(), CombineVMOVDRRCandidateWithVecOp(), combineZext(), convertIntLogicToFPLogic(), ConvertSelectToConcatVector(), llvm::InstrEmitter::CountResults(), createLoadLR(), doNotCSE(), EltsFromConsecutiveLoads(), emitIntrinsicWithGlue(), Expand64BitShift(), ExpandBITCAST(), ExpandBVWithShuffles(), llvm::TargetLowering::expandFP_TO_SINT(), llvm::TargetLowering::expandMUL(), ExpandREAD_REGISTER(), llvm::TargetLowering::expandUnalignedLoad(), llvm::SelectionDAG::expandVAArg(), llvm::PPCTargetLowering::expandVSXLoadForLE(), ExtendUsesToFormExtLoad(), foldBitcastedFPLogic(), llvm::SelectionDAG::FoldConstantArithmetic(), FoldIntToFPToInt(), llvm::SelectionDAG::FoldSetCC(), foldVectorXorShiftIntoCmp(), foldXorTruncShiftIntoCmp(), getAArch64XALUOOp(), getARMIndexedAddressParts(), getCTPOP16BitCounts(), getDivRem8(), llvm::HexagonTargetLowering::GetDynamicTLSAddr(), getGluedNode(), llvm::ShuffleVectorSDNode::getMask(), llvm::SelectionDAG::getMaskedGather(), llvm::SelectionDAG::getMaskedScatter(), llvm::ShuffleVectorSDNode::getMaskElt(), getOneTrueElt(), llvm::ARMTargetLowering::getPostIndexedAddressParts(), llvm::ARMTargetLowering::getSchedulingPreference(), getSimpleValueType(), llvm::ShuffleVectorSDNode::getSplatIndex(), getT2IndexedAddressParts(), getTestBitOperand(), GetTLSADDR(), getValueSizeInBits(), llvm::SDValue::getValueType(), llvm::SelectionDAG::getVectorShuffle(), getVPermMask(), hasNormalLoadOperand(), haveEfficientBuildVectorPattern(), isAddSub(), isAllConstantBuildVector(), isBitfieldExtractOp(), isBitfieldExtractOpFromAnd(), isBitfieldExtractOpFromSExtInReg(), isBitfieldExtractOpFromShr(), llvm::ISD::isBuildVectorAllOnes(), llvm::ISD::isBuildVectorAllZeros(), isConditionalZeroOrAllOnes(), llvm::BuildVectorSDNode::isConstantSplat(), llvm::ISD::isConstantSplatVector(), llvm::TargetLowering::isConstFalseVal(), llvm::isConstOrConstSplat(), llvm::TargetLowering::isConstTrueVal(), llvm::AArch64TargetLowering::isDesirableToCommuteWithShift(), isDivRemLibcallAvailable(), isExtendedBUILD_VECTOR(), llvm::TargetLowering::isExtendedTrueVal(), isFloatingPointZero(), isHorizontalBinOp(), isInt32Immediate(), isInt64Immediate(), isIntS16Immediate(), llvm::SelectionDAGISel::IsLegalToFold(), llvm::PPC::isQVALIGNIShuffleMask(), isSeveralBitsExtractOpFromShr(), llvm::ShuffleVectorSDNode::isSplat(), llvm::PPC::isSplatShuffleMask(), isTruncateOf(), isVMerge(), llvm::PPC::isVSLDOIShuffleMask(), IsVUZPShuffleNode(), LowerADDC_ADDE_SUBC_SUBE(), llvm::X86TargetLowering::LowerAsmOperandForConstraint(), LowerCTPOP(), lowerCTPOP16BitElements(), lowerCTPOP32BitElements(), LowerCTTZ(), lowerDSPIntr(), LowerDYNAMIC_STACKALLOC(), LowerEXTRACT_VECTOR_ELT_SSE4(), LowerINTRINSIC_W_CHAIN(), lowerMSABinaryBitImmIntr(), lowerMSABitClear(), lowerMSABitClearImm(), lowerMSACopyIntr(), lowerMSALoadIntr(), lowerMSASplatImm(), lowerMSASplatZExt(), lowerMSAStoreIntr(), llvm::LanaiTargetLowering::LowerMUL(), LowerShift(), LowerToTLSExecModel(), LowerToTLSLocalDynamicModel(), LowerVAARG(), LowerXALUO(), partitionShuffleOfConcats(), performADDCombine(), performADDECombine(), performANDCombine(), PerformANDCombine(), PerformARMBUILD_VECTORCombine(), performAssertZextCombine(), PerformBFICombine(), performBitcastCombine(), llvm::ARMTargetLowering::PerformBRCONDCombine(), PerformBUILD_VECTORCombine(), llvm::ARMTargetLowering::PerformCMOVCombine(), performConcatVectorsCombine(), performCONDCombine(), llvm::R600TargetLowering::PerformDAGCombine(), llvm::AMDGPUTargetLowering::PerformDAGCombine(), llvm::SITargetLowering::PerformDAGCombine(), llvm::PPCTargetLowering::PerformDAGCombine(), performDivRemCombine(), performExtendCombine(), PerformExtendCombine(), llvm::AMDGPUTargetLowering::performFNegCombine(), performFPMed3ImmCombine(), performFpToIntCombine(), PerformInsertEltCombine(), performIntegerAbsCombine(), performIntMed3ImmCombine(), performIntrinsicCombine(), PerformIntrinsicCombine(), performIntToFpCombine(), PerformLOADCombine(), llvm::AMDGPUTargetLowering::performMulCombine(), performMULCombine(), performMulCombine(), PerformMULCombine(), llvm::AMDGPUTargetLowering::performMulhsCombine(), llvm::AMDGPUTargetLowering::performMulhuCombine(), performNEONPostLDSTCombine(), performNVCASTCombine(), performORCombine(), PerformORCombine(), performPostLD1Combine(), PerformREMCombine(), llvm::AMDGPUTargetLowering::performSelectCombine(), PerformSELECTCombine(), performSelectCombine(), performSetccAddFolding(), performSETCCCombine(), PerformShiftCombine(), performShiftToAllZeros(), llvm::AMDGPUTargetLowering::performShlCombine(), performSHLCombine(), llvm::AMDGPUTargetLowering::performSraCombine(), performSRACombine(), llvm::AMDGPUTargetLowering::performSrlCombine(), performSRLCombine(), performSUBECombine(), PerformVCVTCombine(), PerformVDIVCombine(), PerformVDUPCombine(), PerformVDUPLANECombine(), PerformVECTOR_SHUFFLECombine(), performVectorCompareAndMaskUnaryOpCombine(), PerformVMOVDRRCombine(), PerformVMOVRRDCombine(), PerformVMULCombine(), performVSELECTCombine(), performVSelectCombine(), performXORCombine(), PerformXORCombine(), print_types(), promoteExtBeforeAdd(), reduceMaskedLoadToScalarLoad(), RemoveUnusedGlue(), llvm::SelectionDAG::ReplaceAllUsesWith(), ReplaceBITCASTResults(), ReplaceCMP_SWAP_128Results(), ReplaceCMP_SWAP_64Results(), ReplaceINTRINSIC_W_CHAIN(), ReplaceLoadVector(), llvm::R600TargetLowering::ReplaceNodeResults(), llvm::AVRTargetLowering::ReplaceNodeResults(), llvm::SparcTargetLowering::ReplaceNodeResults(), llvm::PPCTargetLowering::ReplaceNodeResults(), llvm::X86TargetLowering::ReplaceNodeResults(), ReplaceReductionResults(), resolveBuildVector(), llvm::DAGTypeLegalizer::run(), llvm::TargetLowering::scalarizeVectorLoad(), llvm::PPCTargetLowering::SelectAddressRegImm(), llvm::SelectionDAGISel::SelectCodeCommon(), llvm::AVRDAGToDAGISel::SelectInlineAsmMemoryOperand(), llvm::AMDGPUTargetLowering::shouldReduceLoadWidth(), llvm::X86InstrInfo::shouldScheduleLoadsNear(), llvm::TargetLowering::SimplifyDemandedBits(), llvm::TargetLowering::SimplifySetCC(), simplifyShuffleOperands(), skipExtensionForVectorMULL(), SkipExtensionForVMULL(), SplitVSETCC(), tryBitfieldInsertOpFromOr(), tryBitfieldInsertOpFromOrAndImm(), tryBuildVectorByteMask(), tryBuildVectorShuffle(), tryCombineFixedPointConvert(), tryCombineLongOpWithDup(), tryCombineShiftImm(), tryCombineToBSL(), tryCombineToEXTR(), tryLowerToSLI(), tryMatchAcrossLaneShuffleForReduction(), TryMULWIDECombine(), tryToFoldExtendOfConstant(), llvm::X86InstrInfo::unfoldMemoryOperand(), llvm::SelectionDAG::UnrollVectorOp(), VerifySDNode(), WidenMaskArithmetic(), WinDBZCheckDenominator(), and XFormVExtractWithShuffleIntoLoad().
|
inline |
Definition at line 774 of file SelectionDAGNodes.h.
References X.
Referenced by AddNodeIDNode(), combineBrCond(), combineCMov(), LowerINTRINSIC_W_CHAIN(), LowerXALUO(), performANDCombine(), llvm::R600TargetLowering::PerformDAGCombine(), and performSRACombine().
Return true if there are any use of the indicated value.
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 7026 of file SelectionDAG.cpp.
References assert(), E, getNumValues(), use_begin(), and use_end().
Referenced by llvm::SITargetLowering::AdjustInstrPostInstrSelection(), llvm::ARMTargetLowering::AdjustInstrPostInstrSelection(), llvm::ScheduleDAGSDNodes::RegDefIter::Advance(), attachMEMCPYScratchRegs(), canClobberPhysRegDefs(), checkBoolTestSetCCCombine(), combineSetCCAtomicArith(), EltsFromConsecutiveLoads(), lowerAtomicArith(), lowerVectorShuffleAsBroadcast(), performDivRemCombine(), RemoveUnusedGlue(), llvm::SelectionDAG::ReplaceAllUsesWith(), and llvm::SDValue::use_empty().
Return true if there are exactly NUSES uses of the indicated value.
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 7007 of file SelectionDAG.cpp.
References assert(), E, getNumValues(), use_begin(), and use_end().
Referenced by llvm::SITargetLowering::AdjustInstrPostInstrSelection(), combineStore(), getAArch64Cmp(), getCmp(), llvm::SDValue::hasOneUse(), isLoadIncOrDecStore(), performBRCONDCombine(), llvm::PPCTargetLowering::PerformDAGCombine(), and XFormVExtractWithShuffleIntoLoad().
|
inline |
Return true if there is exactly one use of this node.
Definition at line 588 of file SelectionDAGNodes.h.
References use_begin(), use_empty(), and use_end().
Referenced by canChangeToInt(), combineExtractVectorElt(), combineMul(), combineOrCmpEqZeroToCtlzSrl(), combineSelectAndUseCommutative(), combineShuffleOfScalars(), combineSub(), emitConjunctionDisjunctionTreeRec(), getTestBitOperand(), hasNonFlagsUse(), isAddSub(), isAddSubSExt(), isAddSubZExt(), isBSwapHWordElement(), isHorizontalBinOp(), LowerVectorAllZeroTest(), LowerVectorBroadcast(), PerformADDCombineWithOperands(), PerformARMBUILD_VECTORCombine(), llvm::ARMTargetLowering::PerformBRCONDCombine(), llvm::ARMTargetLowering::PerformCMOVCombine(), llvm::PPCTargetLowering::PerformDAGCombine(), performMulCombine(), PerformSTORECombine(), PerformSUBCombine(), PerformVMOVRRDCombine(), shouldUseLA(), llvm::TargetLowering::TargetLoweringOpt::ShrinkDemandedOp(), llvm::TargetLowering::SimplifyDemandedBits(), and llvm::TargetLowering::SimplifySetCC().
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 7098 of file SelectionDAG.cpp.
References hasPredecessorHelper(), and llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back().
Referenced by isPredecessorOf().
|
inlinestatic |
Returns true if N is a predecessor of any node in Worklist.
This helper keeps Visited and Worklist sets externally to allow unions searches to be performed in parallel, caching of results across queries and incremental addition to Worklist. Stops early if N is found but will resume. Remember to clear Visited and Worklists if DAG changes.
Definition at line 719 of file SelectionDAGNodes.h.
References llvm::SmallPtrSetImpl< PtrType >::count(), llvm::SmallVectorBase::empty(), llvm::SmallPtrSetImpl< PtrType >::insert(), op_values(), llvm::SmallVectorImpl< T >::pop_back_val(), and llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back().
Referenced by hasPredecessor().
| void SDNode::intersectFlagsWith | ( | const SDNodeFlags * | Flags | ) |
Clear any flags in this node that aren't also set in Flags.
Definition at line 7116 of file SelectionDAG.cpp.
|
inline |
Test if this node has a post-isel opcode, directly corresponding to a MachineInstr opcode.
Definition at line 571 of file SelectionDAGNodes.h.
Referenced by llvm::SITargetLowering::AdjustInstrPostInstrSelection(), llvm::SIInstrInfo::areLoadsFromSameBasePtr(), llvm::ARMBaseInstrInfo::areLoadsFromSameBasePtr(), llvm::X86InstrInfo::areLoadsFromSameBasePtr(), CheckForPhysRegDependency(), llvm::MachineSDNode::classof(), llvm::ScheduleDAGSDNodes::computeLatency(), llvm::ScheduleDAGSDNodes::computeOperandLatency(), llvm::InstrEmitter::EmitNode(), FindCallSeqStart(), GetCostForDef(), llvm::TargetInstrInfo::getInstrLatency(), getMachineOpcode(), llvm::ARMBaseInstrInfo::getOperandLatency(), llvm::TargetInstrInfo::getOperandLatency(), getOperationName(), llvm::ARMTargetLowering::getSchedulingPreference(), getUsefulBitsForUse(), isBitfieldExtractOp(), IsChainDependent(), llvm::SDValue::isMachineOpcode(), llvm::ResourcePriorityQueue::isResourceAvailable(), llvm::ScheduleDAGSDNodes::newSUnit(), PerformANDCombine(), performBitcastCombine(), llvm::ResourcePriorityQueue::rawRegPressureDelta(), llvm::ResourcePriorityQueue::regPressureDelta(), llvm::ResourcePriorityQueue::reserveResources(), llvm::ResourcePriorityQueue::scheduledNode(), llvm::SelectionDAGISel::SelectCodeCommon(), llvm::X86InstrInfo::unfoldMemoryOperand(), and WalkChainUsers().
|
inline |
Test if this node is a memory intrinsic (with valid pointer information).
INTRINSIC_W_CHAIN and INTRINSIC_VOID nodes are sometimes created for non-memory intrinsics (with chains) that are not really instances of MemSDNode. For such nodes, we need some extra state to determine the proper classof relationship.
Definition at line 563 of file SelectionDAGNodes.h.
References llvm::ISD::INTRINSIC_VOID, llvm::ISD::INTRINSIC_W_CHAIN, and SDNodeBits.
Referenced by llvm::MemSDNode::classof(), and llvm::MemIntrinsicSDNode::classof().
Return true if this node is the only use of N.
isOnlyUserOf - Return true if this node is the only use of N.
Definition at line 7039 of file SelectionDAG.cpp.
References E, I, use_begin(), and use_end().
Referenced by combineRedundantDWordShuffle(), combineTruncatedArithmetic(), combineX86ShufflesRecursively(), haveEfficientBuildVectorPattern(), llvm::ARMTargetLowering::isVectorLoadExtDesirable(), and LowerVectorBroadcast().
Return true if this node is an operand of N.
Definition at line 7061 of file SelectionDAG.cpp.
References llvm::SDValue::getNode(), and op_values().
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 703 of file SelectionDAGNodes.h.
References hasPredecessor().
Referenced by CombineBaseUpdate(), llvm::PPCTargetLowering::getPreIndexedAddressParts(), performNEONPostLDSTCombine(), and performPostLD1Combine().
|
inline |
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 551 of file SelectionDAGNodes.h.
References llvm::ISD::FIRST_TARGET_MEMORY_OPCODE.
Referenced by AddNodeIDCustom(), llvm::MemSDNode::classof(), llvm::MemIntrinsicSDNode::classof(), and llvm::SDValue::isTargetMemoryOpcode().
|
inline |
Test if this node has a target-specific opcode (in the <target>ISD namespace).
Definition at line 546 of file SelectionDAGNodes.h.
References llvm::ISD::BUILTIN_OP_END.
Referenced by llvm::SDValue::isTargetOpcode().
|
inline |
Return true if the type of the node type undefined.
Definition at line 556 of file SelectionDAGNodes.h.
References llvm::ISD::UNDEF.
Referenced by ConvertSelectToConcatVector(), ExpandHorizontalBinOp(), GenerateTBL(), llvm::BuildVectorSDNode::getSplatValue(), getTargetVShiftByConstNode(), isConstantOrUndef(), isHorizontalBinOp(), llvm::SDValue::isUndef(), LowerShift(), LowerToHorizontalOp(), LowerVECTOR_SHUFFLE(), LowerVECTOR_SHUFFLEv8i8(), and tryToFoldExtendOfConstant().
|
inline |
Definition at line 753 of file SelectionDAGNodes.h.
Referenced by CloneNodeWithValues(), combineGatherScatter(), DropOperands(), extractSubVector(), FoldCONCAT_VECTORS(), llvm::SelectionDAGBuilder::LowerAsSTATEPOINT(), LowerINTRINSIC_WO_CHAIN(), llvm::SelectionDAG::MorphNodeTo(), moveBelowOrigChain(), op_values(), ops(), llvm::R600TargetLowering::PerformDAGCombine(), llvm::SelectionDAG::RemoveDeadNodes(), ReplaceINTRINSIC_W_CHAIN(), ReplaceLoadVector(), llvm::SelectionDAG::UpdateNodeOperands(), and VerifySDNode().
|
inline |
Definition at line 754 of file SelectionDAGNodes.h.
Referenced by CloneNodeWithValues(), combineGatherScatter(), DropOperands(), FoldCONCAT_VECTORS(), llvm::SelectionDAGBuilder::LowerAsSTATEPOINT(), LowerINTRINSIC_WO_CHAIN(), llvm::SelectionDAG::MorphNodeTo(), moveBelowOrigChain(), op_values(), ops(), llvm::R600TargetLowering::PerformDAGCombine(), llvm::SelectionDAG::RemoveDeadNodes(), ReplaceINTRINSIC_W_CHAIN(), ReplaceLoadVector(), and VerifySDNode().
|
inline |
Definition at line 769 of file SelectionDAGNodes.h.
References llvm::make_range(), op_begin(), and op_end().
Referenced by llvm::ISD::allOperandsUndef(), canReduceVMulWidth(), checkForCyclesHelper(), CheckForMaskedLoad(), FindCallSeqStart(), findNonImmUse(), getNodeRegMask(), HandleMergeInputChains(), hasPredecessorHelper(), llvm::ISD::isBuildVectorAllZeros(), llvm::ISD::isBuildVectorOfConstantFPSDNodes(), llvm::ISD::isBuildVectorOfConstantSDNodes(), IsChainDependent(), llvm::BuildVectorSDNode::isConstant(), isConstantOrConstantVector(), isExtendedBUILD_VECTOR(), llvm::SDValue::isOperandOf(), isOperandOf(), and printrWithDepthHelper().
Definition at line 755 of file SelectionDAGNodes.h.
References llvm::makeArrayRef(), op_begin(), and op_end().
Referenced by AddNodeIDNode(), combineConcatVectorOfExtracts(), combineConcatVectorOfScalars(), combineFneg(), findConsecutiveLoad(), getTargetShuffleMaskIndices(), llvm::SelectionDAG::isKnownToBeAPowerOfTwo(), lowerBuildVectorToBitOp(), llvm::AMDGPUTargetLowering::LowerCONCAT_VECTORS(), NormalizeBuildVector(), llvm::TargetLowering::SimplifyDemandedBits(), and tryExtendDUPToExtractHigh().
| void SDNode::print | ( | raw_ostream & | OS, |
| const SelectionDAG * | G = nullptr |
||
| ) | const |
Definition at line 700 of file SelectionDAGDumper.cpp.
References getNumOperands(), getOperand(), i, printOperand(), and printr().
Referenced by dump(), fail(), and printrWithDepthHelper().
| void SDNode::print_details | ( | raw_ostream & | OS, |
| const SelectionDAG * | G | ||
| ) | const |
Definition at line 385 of file SelectionDAGDumper.cpp.
References i, llvm::APFloatBase::IEEEdouble(), and llvm::APFloatBase::IEEEsingle().
Referenced by llvm::DOTGraphTraits< SelectionDAG * >::getSimpleNodeLabel().
| void SDNode::print_types | ( | raw_ostream & | OS, |
| const SelectionDAG * | G | ||
| ) | const |
Definition at line 375 of file SelectionDAGDumper.cpp.
References llvm::EVT::getEVTString(), getNumValues(), getValueType(), i, and llvm::MVT::Other.
| void SDNode::printr | ( | raw_ostream & | OS, |
| const SelectionDAG * | G = nullptr |
||
| ) | const |
Definition at line 596 of file SelectionDAGDumper.cpp.
Referenced by print().
| void SDNode::printrFull | ( | raw_ostream & | O, |
| const SelectionDAG * | G = nullptr |
||
| ) | const |
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 686 of file SelectionDAGDumper.cpp.
References printrWithDepth().
| void SDNode::printrWithDepth | ( | raw_ostream & | O, |
| const SelectionDAG * | G = nullptr, |
||
| unsigned | depth = 100 |
||
| ) | const |
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 681 of file SelectionDAGDumper.cpp.
References printrWithDepthHelper().
Referenced by dumprWithDepth(), llvm::MipsSETargetLowering::PerformDAGCombine(), and printrFull().
| void SDNode::Profile | ( | FoldingSetNodeID & | ID | ) | const |
Gather unique data for the node.
Profile - Gather unique data for the node.
Definition at line 6971 of file SelectionDAG.cpp.
References AddNodeIDNode().
|
inline |
Set source location info.
Try to avoid this, putting it in the constructor is preferable.
Definition at line 613 of file SelectionDAGNodes.h.
Referenced by llvm::SelectionDAGBuilder::getNonRegisterValue().
|
inline |
Definition at line 582 of file SelectionDAGNodes.h.
References SDNodeBits.
Referenced by llvm::SelectionDAG::AddDbgValue().
|
inline |
Set the node ordering.
Definition at line 606 of file SelectionDAGNodes.h.
Referenced by llvm::NVPTXTargetLowering::LowerFormalArguments().
|
inline |
Set unique node id.
Definition at line 600 of file SelectionDAGNodes.h.
Referenced by llvm::SelectionDAG::AssignTopologicalOrder(), insertDAGNode(), llvm::DAGTypeLegalizer::run(), llvm::SelectionDAGISel::SelectCodeCommon(), and llvm::SelectionDAG::SelectNodeTo().
|
inline |
Provide iteration support to walk over all uses of an SDNode.
Definition at line 673 of file SelectionDAGNodes.h.
Referenced by adjustForLTGFR(), llvm::SITargetLowering::AdjustInstrPostInstrSelection(), areOnlyUsersOf(), llvm::SelectionDAG::AssignTopologicalOrder(), CombineBaseUpdate(), combineCompareEqual(), combineExtractVectorElt(), combineMul(), combineSelect(), CombineVLDDUP(), ExtendUsesToFormExtLoad(), findConsecutiveLoad(), findGlueUse(), findUser(), getGluedUser(), hasAnyUseOfValue(), hasNonFlagsUse(), hasNoSignedComparisonUses(), hasNUsesOfValue(), hasOneUse(), isLoadIncOrDecStore(), isOnlyUserOf(), llvm::ARMTargetLowering::isVectorLoadExtDesirable(), LowerEXTRACT_VECTOR_ELT_SSE4(), MayFoldIntoStore(), MayFoldIntoZeroExtend(), PerformADDCombineWithOperands(), PerformARMBUILD_VECTORCombine(), llvm::PPCTargetLowering::PerformDAGCombine(), performMulCombine(), performNEONPostLDSTCombine(), performPostLD1Combine(), llvm::SelectionDAG::ReplaceAllUsesOfValuesWith(), llvm::SelectionDAG::ReplaceAllUsesOfValueWith(), llvm::SelectionDAG::ReplaceAllUsesWith(), llvm::DAGTypeLegalizer::run(), use_size(), uses(), useSinCos(), and WalkChainUsers().
|
inline |
Return true if there are no uses of this node.
Definition at line 585 of file SelectionDAGNodes.h.
Referenced by hasOneUse(), llvm::ARMTargetLowering::isVectorLoadExtDesirable(), llvm::SelectionDAG::Legalize(), LowerUMULO_SMULO(), llvm::SelectionDAG::MorphNodeTo(), llvm::SelectionDAG::RemoveDeadNodes(), and llvm::SelectionDAGISel::SelectCodeCommon().
|
inlinestatic |
Definition at line 677 of file SelectionDAGNodes.h.
Referenced by adjustForLTGFR(), areOnlyUsersOf(), llvm::SelectionDAG::AssignTopologicalOrder(), CombineBaseUpdate(), combineCompareEqual(), combineExtractVectorElt(), combineSelect(), CombineVLDDUP(), ExtendUsesToFormExtLoad(), findConsecutiveLoad(), findGlueUse(), findUser(), getGluedUser(), hasAnyUseOfValue(), hasNonFlagsUse(), hasNoSignedComparisonUses(), hasNUsesOfValue(), hasOneUse(), isLoadIncOrDecStore(), isOnlyUserOf(), PerformADDCombineWithOperands(), llvm::PPCTargetLowering::PerformDAGCombine(), performNEONPostLDSTCombine(), performPostLD1Combine(), llvm::SelectionDAG::ReplaceAllUsesOfValuesWith(), llvm::SelectionDAG::ReplaceAllUsesOfValueWith(), llvm::SelectionDAG::ReplaceAllUsesWith(), llvm::DAGTypeLegalizer::run(), use_size(), uses(), useSinCos(), and WalkChainUsers().
|
inline |
Return the number of uses of this node.
This method takes time proportional to the number of uses.
Definition at line 594 of file SelectionDAGNodes.h.
References use_begin(), and use_end().
Referenced by isFMAddSub().
|
inline |
Definition at line 679 of file SelectionDAGNodes.h.
References llvm::make_range(), use_begin(), and use_end().
Referenced by getUsefulBits(), hasVolatileUser(), isUseOfShuffle(), isWorthFoldingADDlow(), LowerFABSorFNEG(), PerformREMCombine(), and promoteExtBeforeAdd().
|
inline |
Definition at line 682 of file SelectionDAGNodes.h.
References llvm::make_range(), use_begin(), and use_end().
|
inline |
Definition at line 824 of file SelectionDAGNodes.h.
Referenced by AddGlue(), lowerDSPIntr(), and RemoveUnusedGlue().
|
inline |
Definition at line 825 of file SelectionDAGNodes.h.
Referenced by AddGlue(), and lowerDSPIntr().
|
friend |
Definition at line 527 of file SelectionDAGNodes.h.
|
friend |
Definition at line 525 of file SelectionDAGNodes.h.
| union { ... } |
| ConstantSDNodeBitfields llvm::SDNode::ConstantSDNodeBits |
Definition at line 478 of file SelectionDAGNodes.h.
Referenced by llvm::ConstantSDNode::isOpaque().
| LoadSDNodeBitfields llvm::SDNode::LoadSDNodeBits |
Definition at line 481 of file SelectionDAGNodes.h.
Referenced by llvm::LoadSDNode::getExtensionType(), llvm::MaskedLoadSDNode::getExtensionType(), llvm::MaskedLoadSDNode::isExpandingLoad(), and llvm::MaskedLoadSDNode::MaskedLoadSDNode().
| LSBaseSDNodeBitfields llvm::SDNode::LSBaseSDNodeBits |
Definition at line 480 of file SelectionDAGNodes.h.
Referenced by llvm::LSBaseSDNode::getAddressingMode(), and llvm::LSBaseSDNode::LSBaseSDNode().
| MemSDNodeBitfields llvm::SDNode::MemSDNodeBits |
Definition at line 479 of file SelectionDAGNodes.h.
Referenced by llvm::MemSDNode::isDereferenceable(), llvm::MemSDNode::isInvariant(), llvm::MemSDNode::isNonTemporal(), llvm::MemSDNode::isVolatile(), and llvm::MemSDNode::MemSDNode().
| uint16_t llvm::SDNode::PersistentId |
Unique and persistent id per SDNode in the DAG.
Used for debug printing.
Definition at line 532 of file SelectionDAGNodes.h.
Referenced by llvm::DOTGraphTraits< SelectionDAG * >::getNodeIdentifierLabel(), llvm::HandleSDNode::HandleSDNode(), and PrintNodeId().
| char llvm::SDNode::RawSDNodeBits[sizeof(uint16_t)] |
Definition at line 476 of file SelectionDAGNodes.h.
Referenced by llvm::MemSDNode::getRawSubclassData(), and SDNode().
| SDNodeBitfields llvm::SDNode::SDNodeBits |
Definition at line 477 of file SelectionDAGNodes.h.
Referenced by getHasDebugValue(), llvm::MemSDNode::getRawSubclassData(), isMemIntrinsic(), llvm::MemIntrinsicSDNode::MemIntrinsicSDNode(), and setHasDebugValue().
| StoreSDNodeBitfields llvm::SDNode::StoreSDNodeBits |
Definition at line 482 of file SelectionDAGNodes.h.
Referenced by llvm::MaskedStoreSDNode::isCompressingStore(), llvm::StoreSDNode::isTruncatingStore(), llvm::MaskedStoreSDNode::isTruncatingStore(), and llvm::MaskedStoreSDNode::MaskedStoreSDNode().
1.8.6