LLVM 20.0.0git |
This class is used to represent an MSCATTER node.More...
#include "llvm/CodeGen/SelectionDAGNodes.h"
Public Member Functions | |
MaskedScatterSDNode (unsigned Order,constDebugLoc &dl,SDVTList VTs,EVT MemVT,MachineMemOperand *MMO,ISD::MemIndexType IndexType,bool IsTrunc) | |
bool | isTruncatingStore ()const |
Return true if the op does a truncation before store. | |
constSDValue & | getValue ()const |
![]() | |
MaskedGatherScatterSDNode (ISD::NodeType NodeTy,unsigned Order,constDebugLoc &dl,SDVTList VTs,EVT MemVT,MachineMemOperand *MMO,ISD::MemIndexType IndexType) | |
ISD::MemIndexType | getIndexType ()const |
How is Index applied to BasePtr when computing addresses. | |
bool | isIndexScaled ()const |
bool | isIndexSigned ()const |
constSDValue & | getBasePtr ()const |
constSDValue & | getIndex ()const |
constSDValue & | getMask ()const |
constSDValue & | getScale ()const |
![]() | |
MemSDNode (unsigned Opc,unsigned Order,constDebugLoc &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 theAA info that describes the dereference. | |
constMDNode * | 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 aMachineMemOperand object describing the memory reference performed by operation. | |
constMachinePointerInfo & | getPointerInfo ()const |
unsigned | getAddressSpace ()const |
Return the address space for the associated pointer. | |
void | refineAlignment (constMachineMemOperand *NewMMO) |
Update thisMemSDNode'sMachineMemOperand information to reflect the alignment of NewMMO, if it has a greater alignment. | |
constSDValue & | getChain ()const |
constSDValue & | getBasePtr ()const |
![]() | |
unsigned | getOpcode ()const |
Return theSelectionDAG opcode value for this node. | |
bool | isTargetOpcode ()const |
Test if this node has a target-specific opcode (in the <target>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 aMachineInstr 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 (intIndex) |
Set worklist index for DAGCombiner. | |
unsigned | getIROrder ()const |
Return the node ordering. | |
void | setIROrder (unsigned Order) |
Set the node ordering. | |
constDebugLoc & | 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 anSDNode. | |
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 anSDNode. | |
iterator_range<user_iterator > | users () |
iterator_range<user_iterator > | users ()const |
bool | hasNUsesOfValue (unsigned NUses,unsignedValue)const |
Return true if there are exactly NUSES uses of the indicated value. | |
bool | hasAnyUseOfValue (unsignedValue)const |
Return true if there are any use of the indicated value. | |
bool | isOnlyUserOf (constSDNode *N)const |
Return true if this node is the only use of N. | |
bool | isOperandOf (constSDNode *N)const |
Return true if this node is an operand of N. | |
bool | isPredecessorOf (constSDNode *N)const |
Return true if this node is a predecessor of N. | |
bool | hasPredecessor (constSDNode *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 aConstantSDNode operand. | |
uint64_t | getAsZExtVal ()const |
Helper method returns the zero-extended integer value of aConstantSDNode. | |
constAPInt & | getConstantOperandAPInt (unsigned Num)const |
Helper method returns theAPInt of aConstantSDNode operand. | |
constAPInt & | getAsAPIntVal ()const |
Helper method returns theAPInt value of aConstantSDNode. | |
constSDValue & | 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 (constSDNodeFlags Flags) |
Clear any flags in this node that aren't also set in Flags. | |
bool | hasPoisonGeneratingFlags ()const |
void | setCFIType (uint32_tType) |
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 (constSelectionDAG *G=nullptr)const |
Return the opcode of this operation for printing. | |
void | print_types (raw_ostream &OS,constSelectionDAG *G)const |
void | print_details (raw_ostream &OS,constSelectionDAG *G)const |
void | print (raw_ostream &OS,constSelectionDAG *G=nullptr)const |
void | printr (raw_ostream &OS,constSelectionDAG *G=nullptr)const |
void | printrFull (raw_ostream &O,constSelectionDAG *G=nullptr)const |
Print aSelectionDAG node and all children down to the leaves. | |
void | printrWithDepth (raw_ostream &O,constSelectionDAG *G=nullptr,unsigned depth=100)const |
Print aSelectionDAG node and children up to depth "depth." The givenSelectionDAG 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 (constSelectionDAG *G)const |
Dump this node, for debugging. | |
void | dumpr (constSelectionDAG *G)const |
Dump (recursively) this node and its use-def subgraph. | |
void | dumprFull (constSelectionDAG *G=nullptr)const |
printrFull todbgs(). | |
void | dumprWithDepth (constSelectionDAG *G=nullptr,unsigned depth=100)const |
printrWithDepth todbgs(). | |
void | Profile (FoldingSetNodeID &ID)const |
Gather unique data for the node. | |
void | addUse (SDUse &U) |
This method should only be used by theSDUse class. | |
![]() | |
Node ()=default | |
void * | getNextInBucket ()const |
void | SetNextInBucket (void *N) |
![]() | |
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. | |
![]() | |
const OptionsT::parent_ty * | getParent ()const |
OptionsT::parent_ty * | getParent () |
void | setParent (OptionsT::parent_ty *Parent) |
Static Public Member Functions | |
staticbool | classof (constSDNode *N) |
![]() | |
staticbool | classof (constSDNode *N) |
![]() | |
staticbool | classof (constSDNode *N) |
![]() | |
staticuse_iterator | use_end () |
staticuser_iterator | user_end () |
staticbool | hasPredecessorHelper (constSDNode *N,SmallPtrSetImpl<constSDNode * > &Visited,SmallVectorImpl<constSDNode * > &Worklist,unsigned intMaxSteps=0,bool TopologicalPrune=false) |
Returns true if N is a predecessor of any node in Worklist. | |
staticbool | areOnlyUsersOf (ArrayRef<constSDNode * > Nodes,constSDNode *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 aSDNode can hold. | |
staticconstchar * | getIndexedModeName (ISD::MemIndexedMode AM) |
Friends | |
class | SelectionDAG |
Additional Inherited Members | |
![]() | |
using | op_iterator =SDUse * |
using | value_iterator =constEVT * |
![]() | |
uint16_t | PersistentId = 0xffff |
Unique and persistent id perSDNode in the DAG. | |
![]() | |
enum | {NumSDNodeBits = 3 } |
enum | {NumMemSDNodeBits = NumSDNodeBits + 4 } |
enum | {NumLSBaseSDNodeBits = NumMemSDNodeBits + 3 } |
![]() | |
using | self_iterator = typenameilist_select_iterator_type< OptionsT::has_iterator_bits, OptionsT, false, false >::type |
using | const_self_iterator = typenameilist_select_iterator_type< OptionsT::has_iterator_bits, OptionsT, false,true >::type |
using | reverse_self_iterator = typenameilist_select_iterator_type< OptionsT::has_iterator_bits, OptionsT,true, false >::type |
using | const_reverse_self_iterator = typenameilist_select_iterator_type< OptionsT::has_iterator_bits, OptionsT,true,true >::type |
![]() | |
SDNode (unsigned Opc,unsigned Order,DebugLoc dl,SDVTList VTs) | |
Create anSDNode. | |
void | DropOperands () |
Release the operands and set this node to have zero operands. | |
![]() | |
ilist_node_impl ()=default | |
![]() | |
staticSDVTList | getSDVTList (MVT VT) |
![]() | |
MachineMemOperand * | MMO |
Memory reference information. | |
![]() | |
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 MSCATTER node.
Definition at line2986 of fileSelectionDAGNodes.h.
| inline |
Definition at line2990 of fileSelectionDAGNodes.h.
Referencesllvm::SDNode::StoreSDNodeBits.
Definition at line3005 of fileSelectionDAGNodes.h.
Referencesllvm::ISD::MSCATTER, andN.
Definition at line3003 of fileSelectionDAGNodes.h.
Referencesllvm::SDNode::getOperand().
Referenced byperformMaskedGatherScatterCombine().
| inline |
Return true if the op does a truncation before 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 line3001 of fileSelectionDAGNodes.h.
Referencesllvm::SDNode::StoreSDNodeBits.
Referenced byperformMaskedGatherScatterCombine().
| friend |
Definition at line2988 of fileSelectionDAGNodes.h.