LLVM: llvm::VPStridedStoreSDNode Class Reference (original) (raw)

This class is used to represent an EXPERIMENTAL_VP_STRIDED_STORE node. More...

#include "[llvm/CodeGen/SelectionDAGNodes.h](SelectionDAGNodes%5F8h%5Fsource.html)"

Public Member Functions
VPStridedStoreSDNode (unsigned Order, const DebugLoc &DL, SDVTList VTs, ISD::MemIndexedMode AM, bool IsTrunc, bool IsCompressing, EVT MemVT, MachineMemOperand *MMO)
bool isTruncatingStore () const
Return true if this is a truncating store.
bool isCompressingStore () const
Returns true if the op does a compression to the vector before storing.
const SDValue & getValue () const
const SDValue & getBasePtr () const
const SDValue & getOffset () const
const SDValue & getStride () const
const SDValue & getMask () const
const SDValue & getVectorLength () const
- Public Member Functions inherited from llvm::VPBaseLoadStoreSDNode
VPBaseLoadStoreSDNode (ISD::NodeType NodeTy, unsigned Order, const DebugLoc &DL, SDVTList VTs, ISD::MemIndexedMode AM, EVT MemVT, MachineMemOperand *MMO)
const SDValue & getOffset () const
const SDValue & getBasePtr () const
const SDValue & getMask () const
const SDValue & getVectorLength () const
ISD::MemIndexedMode getAddressingMode () const
Return the addressing mode for this load or store: unindexed, pre-inc, pre-dec, post-inc, or post-dec.
bool isIndexed () const
Return true if this is a pre/post inc/dec load/store.
bool isUnindexed () const
Return true if this is NOT a pre/post inc/dec load/store.
- Public Member Functions inherited from llvm::MemSDNode
MemSDNode (unsigned Opc, unsigned Order, const DebugLoc &dl, SDVTList VTs, EVT memvt, MachineMemOperand *MMO)
bool readMem () const
bool writeMem () const
Align getOriginalAlign () const
Returns alignment and volatility of the memory access.
Align getAlign () const
unsigned getRawSubclassData () const
Return the SubclassData value, without HasDebugValue.
bool isVolatile () const
bool isNonTemporal () const
bool isDereferenceable () const
bool isInvariant () const
int64_t getSrcValueOffset () const
AAMDNodes getAAInfo () const
Returns the AA info that describes the dereference.
const MDNode * getRanges () const
Returns the Ranges that describes the dereference.
SyncScope::ID getSyncScopeID () const
Returns the synchronization scope ID for this memory operation.
AtomicOrdering getSuccessOrdering () const
Return the atomic ordering requirements for this memory operation.
AtomicOrdering getMergedOrdering () const
Return a single atomic ordering that is at least as strong as both the success and failure orderings for an atomic operation.
bool isAtomic () const
Return true if the memory operation ordering is Unordered or higher.
bool isUnordered () const
Returns true if the memory operation doesn't imply any ordering constraints on surrounding memory operations beyond the normal memory aliasing rules.
bool isSimple () const
Returns true if the memory operation is neither atomic or volatile.
EVT getMemoryVT () const
Return the type of the in-memory value.
MachineMemOperand * getMemOperand () const
Return a MachineMemOperand object describing the memory reference performed by operation.
const MachinePointerInfo & getPointerInfo () const
unsigned getAddressSpace () const
Return the address space for the associated pointer.
void refineAlignment (const MachineMemOperand *NewMMO)
Update this MemSDNode's MachineMemOperand information to reflect the alignment of NewMMO, if it has a greater alignment.
const SDValue & getChain () const
const SDValue & getBasePtr () 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 ISD namespace).
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::VPBaseLoadStoreSDNode
static bool classof (const SDNode *N)
- Static Public Member Functions inherited from llvm::MemSDNode
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)
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::MemSDNode
MachineMemOperand * MMO
Memory reference information.
- Protected Attributes inherited from llvm::SDNode
union {
char RawSDNodeBits [sizeof(uint16_t)]
SDNodeBitfields SDNodeBits
ConstantSDNodeBitfields ConstantSDNodeBits
MemSDNodeBitfields MemSDNodeBits
LSBaseSDNodeBitfields LSBaseSDNodeBits
LoadSDNodeBitfields LoadSDNodeBits
StoreSDNodeBitfields StoreSDNodeBits
};

This class is used to represent an EXPERIMENTAL_VP_STRIDED_STORE node.

Definition at line 2695 of file SelectionDAGNodes.h.

classof()

static bool llvm::VPStridedStoreSDNode::classof ( const SDNode * N) inlinestatic

getBasePtr()

const SDValue & llvm::VPStridedStoreSDNode::getBasePtr ( ) const inline

getMask()

const SDValue & llvm::VPStridedStoreSDNode::getMask ( ) const inline

getOffset()

const SDValue & llvm::VPStridedStoreSDNode::getOffset ( ) const inline

getStride()

const SDValue & llvm::VPStridedStoreSDNode::getStride ( ) const inline

getValue()

const SDValue & llvm::VPStridedStoreSDNode::getValue ( ) const inline

getVectorLength()

const SDValue & llvm::VPStridedStoreSDNode::getVectorLength ( ) const inline

isCompressingStore()

bool llvm::VPStridedStoreSDNode::isCompressingStore ( ) const inline

Returns true if the op does a compression to the vector before storing.

The node contiguously stores the active elements (integers or floats) in src (those with their respective bit set in writemask k) to unaligned memory at base_addr.

Definition at line 2717 of file SelectionDAGNodes.h.

References llvm::SDNode::StoreSDNodeBits.

isTruncatingStore()

bool llvm::VPStridedStoreSDNode::isTruncatingStore ( ) const inline

Return true if this is a truncating store.

For integers this is the same as doing a TRUNCATE and storing the result. For floats, it is the same as doing an FP_ROUND and storing the result.

Definition at line 2711 of file SelectionDAGNodes.h.

References llvm::SDNode::StoreSDNodeBits.

SelectionDAG


The documentation for this class was generated from the following file: