llvm::MaskedGatherScatterSDNode

This is a base class used to represent MGATHER and MSCATTER nodes

Synopsis

Declared in <llvm/CodeGen/SelectionDAGNodes.h>

class MaskedGatherScatterSDNode
    : public MemSDNode

Base Classes

NameDescription
MemSDNodeThis is an abstract virtual class for memory operations.

Types

NameDescription
use_iterator Iterator over SDUse operands that use a specific SDNode.
user_iterator Iterator over SDNodes that use a specific SDNode.
value_op_iterator Iterator for directly iterating over the operand SDValue's.

Type Aliases

NameDescription
op_iterator Iterator type over this node's SDUse operands.
value_iterator Iterator type over this node's result value types.

Member Functions

NameDescription
MaskedGatherScatterSDNode [constructor]Construct a masked gather/scatter base node.
Profile Gather unique data for the node into folding-set id ID.
addUse Add use U to this node's use list (SDUse only).
bitcastToAPInt Bitcast a constant integer or FP node to an APInt when possible.
dropFlags Clear flag bits set in Mask.
dump dump overloads
dumpr dumpr overloads
dumprFull Dump the full recursive print of this node to dbgs().
dumprWithDepth Dump a depth-limited recursive print of this node to dbgs().
getAAInfo Returns the AA info that describes the dereference.
getAddressSpace Return the address space for the associated pointer
getAlign Return the alignment of the memory access.
getAsAPIntVal Helper method returns the APInt value of a ConstantSDNode.
getAsZExtVal Helper method returns the zero-extended integer value of a ConstantSDNode.
getBaseAlign Return the base alignment of the memory access.
getBasePtr Return the base pointer operand.
getCFIType Return the CFI type identifier for this node.
getChain Return the chain operand.
getCombinerWorklistIndex Get worklist index for DAGCombiner
getConstantOperandAPInt Helper method returns the APInt of a ConstantSDNode operand.
getConstantOperandVal Helper method returns the integer value of a ConstantSDNode operand.
getDebugLoc Return the source location info.
getFlags Return the optimization flags attached to this node.
getGluedNode If this node has a glue operand, return the node to which the glue operand points. Otherwise return NULL.
getGluedUser If this node has a glue value with a user, return the user (there is at most one). Otherwise return NULL.
getHasDebugValue Return true if this node has an associated debug value.
getIROrder Return the node ordering.
getIndex Return the index operand.
getIndexType How is Index applied to BasePtr when computing addresses.
getMachineOpcode This may only be called if isMachineOpcode returns true. It returns the MachineInstr opcode value that the node's opcode corresponds to.
getMask Return the mask operand.
getMemCacheHint Returns the cache hint metadata for this memory access.
getMemOperand Return the unique MachineMemOperand for this memory operation.
getMemoryVT Return the type of the in-memory value.
getMergedOrdering Return a single atomic ordering at least as strong as success and failure.
getNodeId Return the unique node id.
getNumMemOperands Return the number of memory operands.
getNumOperands Return the number of values used by this operation.
getNumValues Return the number of values defined/returned by this operator.
getOpcode Return the SelectionDAG opcode value for this node.
getOperand Return operand Num of this node.
getOperationName Return the opcode of this operation for printing.
getPointerInfo Return pointer info for the memory operand.
getRanges Returns the Ranges that describes the dereference.
getRawSubclassData Return SubclassData bits with HasDebugValue cleared.
getScale Return the scale operand.
getSchedulerWorklistVisited Get visited state for ScheduleDAGSDNodes::BuildSchedUnits.
getSimpleValueType Return the type of a specified result as a simple type.
getSrcValueOffset Return the offset from the location of the access.
getSuccessOrdering Return the atomic ordering requirements for this memory operation. For cmpxchg atomic operations, return the atomic ordering requirements when store occurs.
getSyncScopeID Returns the synchronization scope ID for this memory operation.
getVTList Return the SDVTList describing this node's result types.
getValueSizeInBits Return the size in bits of result ResNo.
getValueType Return the type of a specified result.
hasAnyUseOfValue Return true if there are any use of the indicated value. This method ignores uses of other values defined by this operation.
hasNUsesOfValue Return true if there are exactly NUSES uses of the indicated value. This method ignores uses of other values defined by this operation.
hasOneUse Return true if there is exactly one use of this node.
hasPoisonGeneratingFlags Return true if any poison-generating flag is set.
hasPredecessor Return true if N is a predecessor of this node.
hasUniqueMemOperand Return true if this node has exactly one memory operand.
intersectFlagsWith 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.
isAnyAdd Returns true if the node type is ADD or PTRADD.
isAssert Test if this node is an assert operation.
isAtomic Return true if the memory operation ordering is Unordered or higher.
isDereferenceable Return true if the memory access is dereferenceable.
isDivergent Return true if this node is divergent.
isIndexScaled Return true if the index scale is not one.
isIndexSigned Return true if the index type is signed.
isInvariant Return true if the memory access is invariant.
isMachineOpcode Test if this node has a post-isel opcode, directly corresponding to a MachineInstr opcode.
isMemIntrinsic Test if this node is a memory intrinsic (with valid pointer information).
isNonTemporal Return true if the memory access is non-temporal.
isOnlyUserOf Return true if this node is the only use of N.
isOperandOf Return true if this node is an operand of N.
isPredecessorOf Return true if this node is a predecessor of N. NOTE: Implemented on top of hasPredecessor and every bit as expensive. Use carefully.
isSimple Returns true if the memory operation is neither atomic or volatile.
isStrictFPOpcode Test if this node is a strict floating point pseudo-op.
isTargetOpcode Test if this node has a target-specific opcode (in the <target>ISD namespace).
isUndef Returns true if the node type is UNDEF or POISON.
isUnordered Returns true if the memory operation doesn't imply any ordering constraints on surrounding memory operations beyond the normal memory aliasing rules.
isVPOpcode Test if this node is a vector predication operation.
isVolatile Return true if the memory access is volatile.
memoperands Return the memory operands for this node.
op_begin Return an iterator to the first operand.
op_end Return an iterator past the last operand.
op_values Return a range over operand SDValues.
ops Return this node's operands as an ArrayRef of SDUse.
print Print this node to OS.
print_details Print this node's details to OS.
print_types Print this node's result types to OS.
printr Print this node recursively to OS.
printrFull Print this node and all children down to the leaves.
printrWithDepth Print this node and children up to depth depth.
readMem Return true if this memory operation reads memory.
refineAlignment refineAlignment overloads
refineMMOMetadata refineMMOMetadata overloads
setCFIType Set the CFI type identifier for this node.
setCombinerWorklistIndex Set worklist index for DAGCombiner.
setDebugLoc Set source location info. Try to avoid this, putting it in the constructor is preferable.
setFlags Replace this node's optimization flags.
setHasDebugValue Set whether this node has an associated debug value.
setIROrder Set the node ordering.
setNodeId Set unique node id.
setSchedulerWorklistVisited Set visited state for ScheduleDAGSDNodes::BuildSchedUnits.
use_begin Provide iteration support to walk over all uses of an SDNode.
use_empty Return true if there are no uses of this node.
use_size Return the number of uses of this node. This method takes time proportional to the number of uses.
user_begin Provide iteration support to walk over all users of an SDNode.
users users overloads
uses uses overloads
value_begin Return an iterator to the first result value type.
value_end Return an iterator past the last result value type.
values Return a range over this node's result value types.
writeMem Return true if this memory operation writes memory.

Static Member Functions

NameDescription
areOnlyUsersOf Return true if all the users of N are contained in Nodes. NOTE: Requires at least one match, but doesn't require them all.
classof Methods for support type inquiry through isa, cast, and dyn_cast.
getIndexedModeName Return a printable name for indexed mode AM.
getMaxNumOperands Return the maximum number of operands that a SDNode can hold.
hasPredecessorHelper Return true if N is a predecessor of any node in Worklist.
use_end Return the end iterator for the use list.
user_end Return the end iterator for the user list.

Data Members

NameDescription
CombinerWorklistIndex [variant member]DAGCombiner worklist index, or a negative sentinel.
ConstantSDNodeBits [variant member]ConstantSDNode bitfields.
LSBaseSDNodeBits [variant member]LSBaseSDNode bitfields.
LoadSDNodeBits [variant member]LoadSDNode bitfields.
MemSDNodeBits [variant member]MemSDNode bitfields.
PersistentId Unique persistent id per SDNode used for debug printing.
RawSDNodeBits [variant member]Raw bytes overlaying subclass bitfields.
SDNodeBits [variant member]Base SDNode bitfields.
SchedulerWorklistVisited [variant member]Visited state in ScheduleDAGSDNodes::BuildSchedUnits.
StoreSDNodeBits [variant member]StoreSDNode bitfields.

Protected Types

NameDescription
Unnamed union
ConstantSDNodeBitfields Bitfields specific to ConstantSDNode.
LSBaseSDNodeBitfields Bitfields for load/store addressing mode and related hierarchies.
LoadSDNodeBitfields Bitfields specific to load-like SDNode subclasses.
MemSDNodeBitfields Bitfields shared by memory-accessing SDNode subclasses.
SDNodeBitfields Bitfields shared by all SDNode subclasses in SubclassData.
StoreSDNodeBitfields Bitfields specific to store-like SDNode subclasses.

Protected Enums

NameDescription
Unnamed enum Width of SDNodeBitfields in SubclassData.

Protected Member Functions

NameDescription
DropOperands Release the operands and set this node to have zero operands.

Protected Static Member Functions

NameDescription
getSDVTList Return an SDVTList for single simple type VT.

Protected Data Members

NameDescription
MemRefs Memory reference information (always at least one MMO).

Friends

NameDescription
llvm::SelectionDAGThis is used to represent a portion of an LLVM function as a DAG.

Non-Member Functions

NameDescription
checkForCyclesCheck the subgraph rooted at N for cycles.
ISD::allOperandsUndefReturn true if all operands of N are ISD::UNDEF.
ISD::isBuildVectorAllOnesReturn true if N is a BUILD_VECTOR of all ones or undef.
ISD::isBuildVectorAllZerosReturn true if N is a BUILD_VECTOR of all zeros or undef.
ISD::isBuildVectorOfConstantFPSDNodesReturn true if N is a BUILD_VECTOR of ConstantFPSDNode or undef.
ISD::isBuildVectorOfConstantSDNodesReturn true if N is a BUILD_VECTOR of ConstantSDNode or undef.
ISD::isConstantSplatVectorReturn true if N is a constant splat BUILD_VECTOR or SPLAT_VECTOR.
ISD::isConstantSplatVectorAllOnesReturn true if N is an all-ones constant splat vector.
ISD::isConstantSplatVectorAllZerosReturn true if N is an all-zeros constant splat vector.
ISD::isEXTLoadReturns true if the specified node is a EXTLOAD.
ISD::isFreezeUndefReturn true if N is FREEZE(UNDEF).
ISD::isNON_EXTLoadReturns true if the specified node is a non-extending load.
ISD::isNormalLoadReturns true if the specified node is a non-extending and unindexed load.
ISD::isNormalMaskedLoadReturns true if N is a non-extending unindexed masked load.
ISD::isNormalMaskedStoreReturns true if N is a non-truncating unindexed masked store.
ISD::isNormalStoreReturns true if the specified node is a non-truncating unindexed store.
ISD::isSEXTLoadReturns true if the specified node is a SEXTLOAD.
ISD::isUNINDEXEDLoadReturns true if the specified node is an unindexed load.
ISD::isUNINDEXEDStoreReturns true if the specified node is an unindexed store.
ISD::isVectorShrinkableReturn true if vector elements of N shrink to NewEltSize.
ISD::isZEXTLoadReturns true if the specified node is a ZEXTLOAD.
SDPatternMatch::sd_context_matchMatch SDNode N (result 0) against pattern P under context Ctx.
SDPatternMatch::sd_matchMatch SDNode N against pattern P without a SelectionDAG.
SDPatternMatch::sd_matchMatch SDNode N against pattern P using a BasicMatchContext for DAG.

Derived Classes

NameDescription
MaskedGatherSDNode This class is used to represent an MGATHER node
MaskedHistogramSDNode SDNode for experimental vector histogram operations.
MaskedScatterSDNode This class is used to represent an MSCATTER node