Represents one node in the SelectionDAG.
Synopsis
Declared in <llvm/CodeGen/SelectionDAGNodes.h>
class SDNode
: public FoldingSetNode
, public ilist_node<SDNode>
Base Classes
Name |
Description |
Convenience alias for the base node type stored in a folding set. |
|
An intrusive list node. |
Types
Name |
Description |
Iterator over SDUse operands that use a specific SDNode. |
|
Iterator over SDNodes that use a specific SDNode. |
|
Iterator for directly iterating over the operand SDValue's. |
Type Aliases
Name |
Description |
Iterator type over this node's SDUse operands. |
|
Iterator type over this node's result value types. |
Member Functions
Name |
Description |
Gather unique data for the node into folding‐set id |
|
Add use |
|
Bitcast a constant integer or FP node to an APInt when possible. |
|
Clear flag bits set in |
|
Dump this node, for debugging. |
|
Dump this node using SelectionDAG |
|
Dump (recursively) this node and its use‐def subgraph. |
|
Dump this node recursively using SelectionDAG |
|
Dump the full recursive print of this node to dbgs(). |
|
Dump a depth‐limited recursive print of this node to dbgs(). |
|
Helper method returns the APInt value of a ConstantSDNode. |
|
Helper method returns the zero‐extended integer value of a ConstantSDNode. |
|
Return the CFI type identifier for this node. |
|
Get worklist index for DAGCombiner |
|
Helper method returns the APInt of a ConstantSDNode operand. |
|
Helper method returns the integer value of a ConstantSDNode operand. |
|
Return the source location info. |
|
Return the optimization flags attached to this node. |
|
If this node has a glue operand, return the node to which the glue operand points. Otherwise return NULL. |
|
If this node has a glue value with a user, return the user (there is at most one). Otherwise return NULL. |
|
Return true if this node has an associated debug value. |
|
Return the node ordering. |
|
This may only be called if isMachineOpcode returns true. It returns the MachineInstr opcode value that the node's opcode corresponds to. |
|
Return the unique node id. |
|
Return the number of values used by this operation. |
|
Return the number of values defined/returned by this operator. |
|
Return the SelectionDAG opcode value for this node. |
|
Return operand |
|
Return the opcode of this operation for printing. |
|
Get visited state for ScheduleDAGSDNodes::BuildSchedUnits. |
|
Return the type of a specified result as a simple type. |
|
Return the SDVTList describing this node's result types. |
|
Return the size in bits of result |
|
Return the type of a specified result. |
|
Return true if there are any use of the indicated value. This method ignores uses of other values defined by this operation. |
|
Return true if there are exactly NUSES uses of the indicated value. This method ignores uses of other values defined by this operation. |
|
Return true if there is exactly one use of this node. |
|
Return true if any poison‐generating flag is set. |
|
Return true if N is a predecessor of this node. |
|
Clear any flags in this node that aren't also set in Flags. If Flags is not in a defined state then this has no effect. |
|
Returns true if the node type is ADD or PTRADD. |
|
Test if this node is an assert operation. |
|
Return true if this node is divergent. |
|
Test if this node has a post‐isel opcode, directly corresponding to a MachineInstr opcode. |
|
Test if this node is a memory intrinsic (with valid pointer information). |
|
Return true if this node is the only use of N. |
|
Return true if this node is an operand of N. |
|
Return true if this node is a predecessor of N. NOTE: Implemented on top of hasPredecessor and every bit as expensive. Use carefully. |
|
Test if this node is a strict floating point pseudo‐op. |
|
Test if this node has a target‐specific opcode (in the <target>ISD namespace). |
|
Returns true if the node type is UNDEF or POISON. |
|
Test if this node is a vector predication operation. |
|
Return an iterator to the first operand. |
|
Return an iterator past the last operand. |
|
Return a range over operand SDValues. |
|
Return this node's operands as an ArrayRef of SDUse. |
|
Print this node to |
|
Print this node's details to |
|
Print this node's result types to |
|
Print this node recursively to |
|
Print this node and all children down to the leaves. |
|
Print this node and children up to depth |
|
Set the CFI type identifier for this node. |
|
Set worklist index for DAGCombiner. |
|
Set source location info. Try to avoid this, putting it in the constructor is preferable. |
|
Replace this node's optimization flags. |
|
Set whether this node has an associated debug value. |
|
Set the node ordering. |
|
Set unique node id. |
|
Set visited state for ScheduleDAGSDNodes::BuildSchedUnits. |
|
Provide iteration support to walk over all uses of an SDNode. |
|
Return true if there are no uses of this node. |
|
Return the number of uses of this node. This method takes time proportional to the number of uses. |
|
Provide iteration support to walk over all users of an SDNode. |
|
Return a range over all users of this node. |
|
Return a const range over all users of this node. |
|
Return a range over all uses of this node. |
|
Return a const range over all uses of this node. |
|
Return an iterator to the first result value type. |
|
Return an iterator past the last result value type. |
|
Return a range over this node's result value types. |
Static Member Functions
Name |
Description |
Return true if all the users of N are contained in Nodes. NOTE: Requires at least one match, but doesn't require them all. |
|
Return a printable name for indexed mode |
|
Return the maximum number of operands that a SDNode can hold. |
|
Return true if |
|
Return the end iterator for the use list. |
|
Return the end iterator for the user list. |
Data Members
Name |
Description |
|
DAGCombiner worklist index, or a negative sentinel. |
|
ConstantSDNode bitfields. |
|
LSBaseSDNode bitfields. |
|
LoadSDNode bitfields. |
|
MemSDNode bitfields. |
Unique persistent id per SDNode used for debug printing. |
|
|
Raw bytes overlaying subclass bitfields. |
|
Base SDNode bitfields. |
|
Visited state in ScheduleDAGSDNodes::BuildSchedUnits. |
|
StoreSDNode bitfields. |
Protected Types
Name |
Description |
Bitfields specific to ConstantSDNode. |
|
Bitfields for load/store addressing mode and related hierarchies. |
|
Bitfields specific to load‐like SDNode subclasses. |
|
Bitfields shared by memory‐accessing SDNode subclasses. |
|
Bitfields shared by all SDNode subclasses in SubclassData. |
|
Bitfields specific to store‐like SDNode subclasses. |
Protected Enums
Name |
Description |
Width of SDNodeBitfields in SubclassData. |
|
Width of MemSDNodeBitfields, including SDNode bits. |
|
Width of LSBaseSDNodeBitfields, including MemSDNode bits. |
Protected Member Functions
Name |
Description |
|
Construct an SDNode with opcode, order, location, and types. |
Release the operands and set this node to have zero operands. |
Protected Static Member Functions
Name |
Description |
Return an SDVTList for single simple type |
Friends
Name |
Description |
Persistent handle around another node updated across RAUW. |
|
This is used to represent a portion of an LLVM function as a DAG. |
Non-Member Functions
Name |
Description |
Check the subgraph rooted at |
|
Return true if all operands of |
|
Return true if |
|
Return true if |
|
Return true if |
|
Return true if |
|
Return true if |
|
Return true if |
|
Return true if |
|
Returns true if the specified node is a EXTLOAD. |
|
Return true if |
|
Returns true if the specified node is a non‐extending load. |
|
Returns true if the specified node is a non‐extending and unindexed load. |
|
Returns true if |
|
Returns true if |
|
Returns true if the specified node is a non‐truncating unindexed store. |
|
Returns true if the specified node is a SEXTLOAD. |
|
Returns true if the specified node is an unindexed load. |
|
Returns true if the specified node is an unindexed store. |
|
Return true if vector elements of |
|
Returns true if the specified node is a ZEXTLOAD. |
|
Match SDNode |
|
Match SDNode |
|
Match SDNode |
Derived Classes
Name |
Description |
SDNode representing an address‐space cast. |
|
SDNode asserting that a value is aligned to a given alignment. |
|
SDNode referencing a MachineBasicBlock. |
|
SDNode referencing a BlockAddress with optional offset and flags. |
|
A "pseudo‐class" with methods for operating on BUILD_VECTORs. |
|
SDNode holding an ISD condition code. |
|
SDNode representing a floating‐point constant. |
|
SDNode referencing a constant pool entry. |
|
SDNode representing an integer constant. |
|
SDNode representing a deactivation symbol global. |
|
SDNode referencing an external symbol name. |
|
SDNode representing a stack frame index. |
|
SDNode referencing a GlobalValue with optional offset and flags. |
|
Persistent handle around another node updated across RAUW. |
|
SDNode referencing a jump table index. |
|
SDNode wrapping an MCSymbol label. |
|
This SDNode is used for LIFETIME_START/LIFETIME_END values. |
|
SDNode wrapping an MCSymbol. |
|
SDNode wrapping an LLVM metadata node. |
|
An SDNode that represents everything that will be needed to construct a MachineInstr. These nodes are created during the instruction selection proper phase. |
|
This is an abstract virtual class for memory operations. |
|
Pseudo‐probe SDNode holding function guid and block index. |
|
SDNode holding a register mask bitvector. |
|
SDNode representing a virtual or physical register. |
|
SDNode for the shufflevector code‐generator representation. |
|
SDNode holding an arbitrary LLVM IR Value reference. |
|
Completely target‐dependent object reference. |
|
This class is used to represent EVT's, which are used to parameterize some operations. |
Created with MrDocs