LLVM 20.0.0git
|
#include "llvm/CodeGen/SelectionDAGNodes.h"
Public Member Functions | |
const ConstantInt * | getConstantIntValue () const |
const APInt & | getAPIntValue () const |
uint64_t | getZExtValue () const |
int64_t | getSExtValue () const |
uint64_t | getLimitedValue (uint64_t Limit=UINT64_MAX) |
MaybeAlign | getMaybeAlignValue () const |
Align | getAlignValue () const |
bool | isOne () const |
bool | isZero () const |
bool | isAllOnes () const |
bool | isMaxSignedValue () const |
bool | isMinSignedValue () const |
bool | isOpaque () const |
Public Member Functions inherited from llvm::SDNode | |
unsigned | getOpcode () const |
Return the SelectionDAG opcode value for this node. | |
bool | isTargetOpcode () const |
Test if this node has a target-specific opcode (in the <target>ISD namespace). | |
bool | isTargetStrictFPOpcode () const |
Test if this node has a target-specific opcode that may raise FP exceptions (in the <target>ISD namespace and greater than FIRST_TARGET_STRICTFP_OPCODE). | |
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). | |
bool | isUndef () const |
Return true if the type of the node type undefined. | |
bool | isMemIntrinsic () const |
Test if this node is a memory intrinsic (with valid pointer information). | |
bool | isStrictFPOpcode () |
Test if this node is a strict floating point pseudo-op. | |
bool | isVPOpcode () const |
Test if this node is a vector predication operation. | |
bool | isMachineOpcode () const |
Test if this node has a post-isel opcode, directly corresponding to a MachineInstr opcode. | |
unsigned | getMachineOpcode () const |
This may only be called if isMachineOpcode returns true. | |
bool | getHasDebugValue () const |
void | setHasDebugValue (bool b) |
bool | isDivergent () const |
bool | use_empty () const |
Return true if there are no uses of this node. | |
bool | hasOneUse () const |
Return true if there is exactly one use of this node. | |
size_t | use_size () const |
Return the number of uses of this node. | |
int | getNodeId () const |
Return the unique node id. | |
void | setNodeId (int Id) |
Set unique node id. | |
int | getCombinerWorklistIndex () const |
Get worklist index for DAGCombiner. | |
void | setCombinerWorklistIndex (int Index) |
Set worklist index for DAGCombiner. | |
unsigned | getIROrder () const |
Return the node ordering. | |
void | setIROrder (unsigned Order) |
Set the node ordering. | |
const DebugLoc & | getDebugLoc () const |
Return the source location info. | |
void | setDebugLoc (DebugLoc dl) |
Set source location info. | |
use_iterator | use_begin () const |
Provide iteration support to walk over all uses of an SDNode. | |
iterator_range< use_iterator > | uses () |
iterator_range< use_iterator > | uses () const |
user_iterator | user_begin () const |
Provide iteration support to walk over all users of an SDNode. | |
iterator_range< user_iterator > | users () |
iterator_range< user_iterator > | users () const |
bool | hasNUsesOfValue (unsigned NUses, unsigned Value) const |
Return true if there are exactly NUSES uses of the indicated value. | |
bool | hasAnyUseOfValue (unsigned Value) const |
Return true if there are any use of the indicated value. | |
bool | isOnlyUserOf (const SDNode *N) const |
Return true if this node is the only use of N. | |
bool | isOperandOf (const SDNode *N) const |
Return true if this node is an operand of N. | |
bool | isPredecessorOf (const SDNode *N) const |
Return true if this node is a predecessor of N. | |
bool | hasPredecessor (const SDNode *N) const |
Return true if N is a predecessor of this node. | |
unsigned | getNumOperands () const |
Return the number of values used by this operation. | |
uint64_t | getConstantOperandVal (unsigned Num) const |
Helper method returns the integer value of a ConstantSDNode operand. | |
uint64_t | getAsZExtVal () const |
Helper method returns the zero-extended integer value of a ConstantSDNode. | |
const APInt & | getConstantOperandAPInt (unsigned Num) const |
Helper method returns the APInt of a ConstantSDNode operand. | |
const APInt & | getAsAPIntVal () const |
Helper method returns the APInt value of a ConstantSDNode. | |
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. | |
SDNode * | getGluedUser () const |
If this node has a glue value with a user, return the user (there is at most one). | |
SDNodeFlags | getFlags () const |
void | setFlags (SDNodeFlags NewFlags) |
void | dropFlags (unsigned Mask) |
void | intersectFlagsWith (const SDNodeFlags Flags) |
Clear any flags in this node that aren't also set in Flags. | |
bool | hasPoisonGeneratingFlags () const |
void | setCFIType (uint32_t Type) |
uint32_t | getCFIType () const |
unsigned | getNumValues () const |
Return the number of values defined/returned by this operator. | |
EVT | getValueType (unsigned ResNo) const |
Return the type of a specified result. | |
MVT | getSimpleValueType (unsigned ResNo) const |
Return the type of a specified result as a simple type. | |
TypeSize | getValueSizeInBits (unsigned ResNo) const |
Returns MVT::getSizeInBits(getValueType(ResNo)). | |
value_iterator | value_begin () const |
value_iterator | value_end () const |
iterator_range< value_iterator > | values () const |
std::string | getOperationName (const SelectionDAG *G=nullptr) const |
Return the opcode of this operation for printing. | |
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. | |
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. | |
void | dump () const |
Dump this node, for debugging. | |
void | dumpr () const |
Dump (recursively) this node and its use-def subgraph. | |
void | dump (const SelectionDAG *G) const |
Dump this node, for debugging. | |
void | dumpr (const SelectionDAG *G) const |
Dump (recursively) this node and its use-def subgraph. | |
void | dumprFull (const SelectionDAG *G=nullptr) const |
printrFull to dbgs(). | |
void | dumprWithDepth (const SelectionDAG *G=nullptr, unsigned depth=100) const |
printrWithDepth to dbgs(). | |
void | Profile (FoldingSetNodeID &ID) const |
Gather unique data for the node. | |
void | addUse (SDUse &U) |
This method should only be used by the SDUse class. | |
Public Member Functions inherited from llvm::FoldingSetBase::Node | |
Node ()=default | |
void * | getNextInBucket () const |
void | SetNextInBucket (void *N) |
Public Member Functions inherited from llvm::ilist_node_impl< OptionsT > | |
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. | |
Public Member Functions inherited from llvm::ilist_detail::node_parent_access< ilist_node_impl< OptionsT >, OptionsT::parent_ty > | |
const OptionsT::parent_ty * | getParent () const |
OptionsT::parent_ty * | getParent () |
void | setParent (OptionsT::parent_ty *Parent) |
Static Public Member Functions | |
static bool | classof (const SDNode *N) |
Static Public Member Functions inherited from llvm::SDNode | |
static use_iterator | use_end () |
static user_iterator | user_end () |
static bool | hasPredecessorHelper (const SDNode *N, SmallPtrSetImpl< const SDNode * > &Visited, SmallVectorImpl< const SDNode * > &Worklist, unsigned int MaxSteps=0, bool TopologicalPrune=false) |
Returns true if N is a predecessor of any node in Worklist. | |
static bool | areOnlyUsersOf (ArrayRef< const SDNode * > Nodes, const SDNode *N) |
Return true if all the users of N are contained in Nodes. | |
static constexpr size_t | getMaxNumOperands () |
Return the maximum number of operands that a SDNode can hold. | |
static const char * | getIndexedModeName (ISD::MemIndexedMode AM) |
Friends | |
class | SelectionDAG |
Additional Inherited Members | |
Public Types inherited from llvm::SDNode | |
using | op_iterator = SDUse * |
using | value_iterator = const EVT * |
Public Attributes inherited from llvm::SDNode | |
uint16_t | PersistentId = 0xffff |
Unique and persistent id per SDNode in the DAG. | |
Protected Types inherited from llvm::SDNode | |
enum | { NumSDNodeBits = 3 } |
enum | { NumMemSDNodeBits = NumSDNodeBits + 4 } |
enum | { NumLSBaseSDNodeBits = NumMemSDNodeBits + 3 } |
Protected Types inherited from llvm::ilist_node_impl< OptionsT > | |
using | self_iterator = typename ilist_select_iterator_type< OptionsT::has_iterator_bits, OptionsT, false, false >::type |
using | const_self_iterator = typename ilist_select_iterator_type< OptionsT::has_iterator_bits, OptionsT, false, true >::type |
using | reverse_self_iterator = typename ilist_select_iterator_type< OptionsT::has_iterator_bits, OptionsT, true, false >::type |
using | const_reverse_self_iterator = typename ilist_select_iterator_type< OptionsT::has_iterator_bits, OptionsT, true, true >::type |
Protected Member Functions inherited from llvm::SDNode | |
SDNode (unsigned Opc, unsigned Order, DebugLoc dl, SDVTList VTs) | |
Create an SDNode. | |
void | DropOperands () |
Release the operands and set this node to have zero operands. | |
Protected Member Functions inherited from llvm::ilist_node_impl< OptionsT > | |
ilist_node_impl ()=default | |
Static Protected Member Functions inherited from llvm::SDNode | |
static SDVTList | getSDVTList (MVT VT) |
Protected Attributes inherited from llvm::SDNode | |
union { | |
char RawSDNodeBits [sizeof(uint16_t)] | |
SDNodeBitfields SDNodeBits | |
ConstantSDNodeBitfields ConstantSDNodeBits | |
MemSDNodeBitfields MemSDNodeBits | |
LSBaseSDNodeBitfields LSBaseSDNodeBits | |
LoadSDNodeBitfields LoadSDNodeBits | |
StoreSDNodeBitfields StoreSDNodeBits | |
}; | |
Definition at line 1705 of file SelectionDAGNodes.h.
Definition at line 1738 of file SelectionDAGNodes.h.
References llvm::ISD::Constant, N, and llvm::ISD::TargetConstant.
|
inline |
Definition at line 1728 of file SelectionDAGNodes.h.
Definition at line 1721 of file SelectionDAGNodes.h.
Referenced by combineAnd(), combineShiftLeft(), combineShiftOfShiftedLogic(), combineTruncSelectToSMaxUSat(), llvm::SelectionDAG::computeKnownBits(), llvm::ARMTargetLowering::computeKnownBitsForTargetNode(), llvm::SelectionDAG::ComputeNumSignBits(), Expand64BitShift(), extractShiftForRotate(), foldAddSubOfSignBit(), foldCSELOfCSEL(), llvm::getBitwiseNotOperand(), llvm::TargetLowering::isConstFalseVal(), llvm::AArch64TargetLowering::isMulAddWithConstProfitable(), llvm::ARMTargetLowering::isMulAddWithConstProfitable(), llvm::RISCVTargetLowering::isMulAddWithConstProfitable(), isSaturatingMinMax(), LowerVSETCC(), matchBSwapHWordOrAndAnd(), matchRotateSub(), performAddCSelIntoCSinc(), llvm::ARMTargetLowering::PerformCMOVToBFICombine(), PerformORCombineToBFI(), performSubsToAndsCombine(), PerformUMinFpToSatCombine(), llvm::TargetLowering::SimplifyDemandedBits(), tryLowerToSLI(), and TryMULWIDECombine().
|
inline |
Definition at line 1720 of file SelectionDAGNodes.h.
Referenced by pickOpcodeForVectorStParam().
|
inline |
Definition at line 1724 of file SelectionDAGNodes.h.
|
inline |
Definition at line 1727 of file SelectionDAGNodes.h.
|
inline |
Definition at line 1723 of file SelectionDAGNodes.h.
Referenced by combineADDToMAT_PCREL_ADDR(), isExtendedBUILD_VECTOR(), llvm::AArch64TargetLowering::isMulAddWithConstProfitable(), llvm::ARMTargetLowering::isMulAddWithConstProfitable(), llvm::PPCTargetLowering::LowerAsmOperandForConstraint(), llvm::HexagonTargetLowering::LowerDYNAMIC_STACKALLOC(), mayUseP9Setb(), performANDCombine(), performORCombine(), performSELECTCombine(), performSETCCCombine(), PerformVQDMULHCombine(), llvm::LoongArchDAGToDAGISel::SelectInlineAsmMemoryOperand(), and llvm::RISCVDAGToDAGISel::tryShrinkShlLogicImm().
|
inline |
Definition at line 1722 of file SelectionDAGNodes.h.
Referenced by AddCombineBUILD_VECTORToVPADDL(), AddCombineTo64bitMLAL(), llvm::SIInstrInfo::areLoadsFromSameBasePtr(), checkBoolTestSetCCCombine(), CombineANDShift(), combineBVOfVecSExt(), combineShiftToMULH(), llvm::ARMTargetLowering::computeKnownBitsForTargetNode(), llvm::AMDGPUTargetLowering::computeKnownBitsForTargetNode(), llvm::AMDGPUTargetLowering::ComputeNumSignBitsForTargetNode(), llvm::BPFSelectionDAGInfo::EmitTargetCodeForMemcpy(), llvm::HexagonSelectionDAGInfo::EmitTargetCodeForMemcpy(), llvm::X86SelectionDAGInfo::EmitTargetCodeForMemset(), expandMul(), getAArch64Cmp(), getExtendTypeForNode(), llvm::SelectionDAG::getMemcpy(), llvm::SelectionDAG::getMemmove(), llvm::SelectionDAG::getMemset(), llvm::SelectionDAG::getNode(), getPermuteMask(), getPointerConstIncrement(), isAllConstantBuildVector(), isBSwapHWordElement(), isExtendOrShiftOperand(), isValidImmForSVEVecImmAddrMode(), LowerAndToBT(), performANDCombine(), PerformANDCombine(), PerformBFICombine(), performCMovFPCombine(), llvm::AMDGPUTargetLowering::PerformDAGCombine(), PerformMVEVLDCombine(), performORCombine(), PerformORCombineToBFI(), performSELECTCombine(), PerformShiftCombine(), performSHLCombine(), performSRACombine(), performSRLCombine(), replaceSplatVectorStore(), SDValueToConstBool(), llvm::AMDGPUDAGToDAGISel::Select(), llvm::LoongArchDAGToDAGISel::SelectInlineAsmMemoryOperand(), shouldGenerateInlineTPLoop(), simplifySetCCIntoEq(), tryCombineCRC32(), tryCombineToBSL(), and llvm::RISCVDAGToDAGISel::tryShrinkShlLogicImm().
|
inline |
Definition at line 1732 of file SelectionDAGNodes.h.
Referenced by foldSetCCWithRotate(), llvm::SelectionDAG::getNode(), and performAddCSelIntoCSinc().
|
inline |
Definition at line 1733 of file SelectionDAGNodes.h.
|
inline |
Definition at line 1734 of file SelectionDAGNodes.h.
|
inline |
Definition at line 1730 of file SelectionDAGNodes.h.
Referenced by combineShiftToAVG(), getAArch64Cmp(), isSetCC(), performAddCSelIntoCSinc(), and simplifyDivRem().
|
inline |
Definition at line 1736 of file SelectionDAGNodes.h.
References llvm::SDNode::ConstantSDNodeBits.
Referenced by foldBinOpIntoSelectIfProfitable(), and llvm::TargetLowering::SimplifyDemandedBits().
|
inline |
Definition at line 1731 of file SelectionDAGNodes.h.
Referenced by combineTruncSelectToSMaxUSat(), ConvertSelectToConcatVector(), foldSetCCWithFunnelShift(), foldSetCCWithRotate(), getAArch64Cmp(), llvm::SelectionDAG::getMemcpy(), llvm::SelectionDAG::getMemmove(), llvm::SelectionDAG::getMemset(), llvm::SelectionDAG::getNode(), llvm::TargetLowering::isConstFalseVal(), isExtendedBUILD_VECTOR(), isSetCC(), llvm::TargetLowering::SimplifyDemandedBits(), and simplifyDivRem().
|
friend |
Definition at line 1706 of file SelectionDAGNodes.h.