This class is used to represent an EXPERIMENTAL_VP_STRIDED_STORE node.

Synopsis

Declared in <llvm/CodeGen/SelectionDAGNodes.h>

class VPStridedStoreSDNode
    : public VPBaseLoadStoreSDNode

Base Classes

Name

Description

VPBaseLoadStoreSDNode

This base class is used to represent VP_LOAD, VP_STORE, EXPERIMENTAL_VP_STRIDED_LOAD and EXPERIMENTAL_VP_STRIDED_STORE nodes

Types

Name

Description

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

Name

Description

op_iterator

Iterator type over this node's SDUse operands.

value_iterator

Iterator type over this node's result value types.

Member Functions

Name

Description

VPStridedStoreSDNode [constructor]

Construct an EXPERIMENTAL_VP_STRIDED_STORE 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

getAddressingMode

Return the addressing mode for this load or store: unindexed, pre‐inc, pre‐dec, post‐inc, or post‐dec.

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.

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.

getOffset

Return the offset operand.

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.

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.

getStride

Return the stride operand.

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.

getValue

Return the value operand being stored.

getValueSizeInBits

Return the size in bits of result ResNo.

getValueType

Return the type of a specified result.

getVectorLength

Return the explicit vector length operand.

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.

isCompressingStore

Return true if the store compresses active vector elements.

isDereferenceable

Return true if the memory access is dereferenceable.

isDivergent

Return true if this node is divergent.

isIndexed

Return true if this is a pre/post inc/dec load/store.

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).

isTruncatingStore

Return true if this is a truncating store.

isUndef

Returns true if the node type is UNDEF or POISON.

isUnindexed

Return true if this is NOT a pre/post inc/dec load/store.

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

Name

Description

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

Name

Description

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

Name

Description

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

Name

Description

Unnamed enum

Width of SDNodeBitfields in SubclassData.

Protected Member Functions

Name

Description

DropOperands

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

Protected Static Member Functions

Name

Description

getSDVTList

Return an SDVTList for single simple type VT.

Protected Data Members

Name

Description

MemRefs

Memory reference information (always at least one MMO).

Friends

Name

Description

llvm::SelectionDAG

This is used to represent a portion of an LLVM function as a DAG.

Non-Member Functions

Name

Description

checkForCycles

Check the subgraph rooted at N for cycles.

ISD::allOperandsUndef

Return true if all operands of N are ISD::UNDEF.

ISD::isBuildVectorAllOnes

Return true if N is a BUILD_VECTOR of all ones or undef.

ISD::isBuildVectorAllZeros

Return true if N is a BUILD_VECTOR of all zeros or undef.

ISD::isBuildVectorOfConstantFPSDNodes

Return true if N is a BUILD_VECTOR of ConstantFPSDNode or undef.

ISD::isBuildVectorOfConstantSDNodes

Return true if N is a BUILD_VECTOR of ConstantSDNode or undef.

ISD::isConstantSplatVector

Return true if N is a constant splat BUILD_VECTOR or SPLAT_VECTOR.

ISD::isConstantSplatVectorAllOnes

Return true if N is an all‐ones constant splat vector.

ISD::isConstantSplatVectorAllZeros

Return true if N is an all‐zeros constant splat vector.

ISD::isEXTLoad

Returns true if the specified node is a EXTLOAD.

ISD::isFreezeUndef

Return true if N is FREEZE(UNDEF).

ISD::isNON_EXTLoad

Returns true if the specified node is a non‐extending load.

ISD::isNormalLoad

Returns true if the specified node is a non‐extending and unindexed load.

ISD::isNormalMaskedLoad

Returns true if N is a non‐extending unindexed masked load.

ISD::isNormalMaskedStore

Returns true if N is a non‐truncating unindexed masked store.

ISD::isNormalStore

Returns true if the specified node is a non‐truncating unindexed store.

ISD::isSEXTLoad

Returns true if the specified node is a SEXTLOAD.

ISD::isUNINDEXEDLoad

Returns true if the specified node is an unindexed load.

ISD::isUNINDEXEDStore

Returns true if the specified node is an unindexed store.

ISD::isVectorShrinkable

Return true if vector elements of N shrink to NewEltSize.

ISD::isZEXTLoad

Returns true if the specified node is a ZEXTLOAD.

SDPatternMatch::sd_context_match

Match SDNode N (result 0) against pattern P under context Ctx.

SDPatternMatch::sd_match

Match SDNode N against pattern P without a SelectionDAG.

SDPatternMatch::sd_match

Match SDNode N against pattern P using a BasicMatchContext for DAG.

Created with MrDocs