LLVM  8.0.1
Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
llvm::MemSDNode Class Reference

This is an abstract virtual class for memory operations. More...

#include "llvm/CodeGen/SelectionDAGNodes.h"

Inheritance diagram for llvm::MemSDNode:
Inheritance graph
[legend]
Collaboration diagram for llvm::MemSDNode:
Collaboration graph
[legend]

Public Member Functions

 MemSDNode (unsigned Opc, unsigned Order, const DebugLoc &dl, SDVTList VTs, EVT memvt, MachineMemOperand *MMO)
 
bool readMem () const
 
bool writeMem () const
 
unsigned getOriginalAlignment () const
 Returns alignment and volatility of the memory access. More...
 
unsigned getAlignment () const
 
unsigned getRawSubclassData () const
 Return the SubclassData value, without HasDebugValue. More...
 
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. More...
 
const MDNodegetRanges () const
 Returns the Ranges that describes the dereference. More...
 
SyncScope::ID getSyncScopeID () const
 Returns the synchronization scope ID for this memory operation. More...
 
AtomicOrdering getOrdering () const
 Return the atomic ordering requirements for this memory operation. More...
 
EVT getMemoryVT () const
 Return the type of the in-memory value. More...
 
MachineMemOperandgetMemOperand () const
 Return a MachineMemOperand object describing the memory reference performed by operation. More...
 
const MachinePointerInfogetPointerInfo () const
 
unsigned getAddressSpace () const
 Return the address space for the associated pointer. More...
 
void refineAlignment (const MachineMemOperand *NewMMO)
 Update this MemSDNode's MachineMemOperand information to reflect the alignment of NewMMO, if it has a greater alignment. More...
 
const SDValuegetChain () const
 
const SDValuegetBasePtr () const
 
- Public Member Functions inherited from llvm::SDNode
unsigned getOpcode () const
 Return the SelectionDAG opcode value for this node. More...
 
bool isTargetOpcode () const
 Test if this node has a target-specific opcode (in the <target>ISD namespace). More...
 
bool isTargetMemoryOpcode () const
 Test if this node has a target-specific memory-referencing opcode (in the <target>ISD namespace and greater than FIRST_TARGET_MEMORY_OPCODE). More...
 
bool isUndef () const
 Return true if the type of the node type undefined. More...
 
bool isMemIntrinsic () const
 Test if this node is a memory intrinsic (with valid pointer information). More...
 
bool isStrictFPOpcode ()
 Test if this node is a strict floating point pseudo-op. More...
 
bool isMachineOpcode () const
 Test if this node has a post-isel opcode, directly corresponding to a MachineInstr opcode. More...
 
unsigned getMachineOpcode () const
 This may only be called if isMachineOpcode returns true. More...
 
bool getHasDebugValue () const
 
void setHasDebugValue (bool b)
 
bool isDivergent () const
 
bool use_empty () const
 Return true if there are no uses of this node. More...
 
bool hasOneUse () const
 Return true if there is exactly one use of this node. More...
 
size_t use_size () const
 Return the number of uses of this node. More...
 
int getNodeId () const
 Return the unique node id. More...
 
void setNodeId (int Id)
 Set unique node id. More...
 
unsigned getIROrder () const
 Return the node ordering. More...
 
void setIROrder (unsigned Order)
 Set the node ordering. More...
 
const DebugLocgetDebugLoc () const
 Return the source location info. More...
 
void setDebugLoc (DebugLoc dl)
 Set source location info. More...
 
use_iterator use_begin () const
 Provide iteration support to walk over all uses of an SDNode. More...
 
iterator_range< use_iteratoruses ()
 
iterator_range< use_iteratoruses () const
 
bool hasNUsesOfValue (unsigned NUses, unsigned Value) const
 Return true if there are exactly NUSES uses of the indicated value. More...
 
bool hasAnyUseOfValue (unsigned Value) const
 Return true if there are any use of the indicated value. More...
 
bool isOnlyUserOf (const SDNode *N) const
 Return true if this node is the only use of N. More...
 
bool isOperandOf (const SDNode *N) const
 Return true if this node is an operand of N. More...
 
bool isPredecessorOf (const SDNode *N) const
 Return true if this node is a predecessor of N. More...
 
bool hasPredecessor (const SDNode *N) const
 Return true if N is a predecessor of this node. More...
 
unsigned getNumOperands () const
 Return the number of values used by this operation. More...
 
uint64_t getConstantOperandVal (unsigned Num) const
 Helper method returns the integer value of a ConstantSDNode operand. More...
 
const SDValuegetOperand (unsigned Num) const
 
op_iterator op_begin () const
 
op_iterator op_end () const
 
ArrayRef< SDUseops () const
 
iterator_range< value_op_iteratorop_values () const
 
SDVTList getVTList () const
 
SDNodegetGluedNode () const
 If this node has a glue operand, return the node to which the glue operand points. More...
 
SDNodegetGluedUser () const
 If this node has a glue value with a user, return the user (there is at most one). More...
 
const SDNodeFlags getFlags () const
 
void setFlags (SDNodeFlags NewFlags)
 
bool isFast ()
 
void intersectFlagsWith (const SDNodeFlags Flags)
 Clear any flags in this node that aren't also set in Flags. More...
 
unsigned getNumValues () const
 Return the number of values defined/returned by this operator. More...
 
EVT getValueType (unsigned ResNo) const
 Return the type of a specified result. More...
 
MVT getSimpleValueType (unsigned ResNo) const
 Return the type of a specified result as a simple type. More...
 
unsigned getValueSizeInBits (unsigned ResNo) const
 Returns MVT::getSizeInBits(getValueType(ResNo)). More...
 
value_iterator value_begin () const
 
value_iterator value_end () const
 
std::string getOperationName (const SelectionDAG *G=nullptr) const
 Return the opcode of this operation for printing. More...
 
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. More...
 
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. More...
 
void dump () const
 Dump this node, for debugging. More...
 
void dumpr () const
 Dump (recursively) this node and its use-def subgraph. More...
 
void dump (const SelectionDAG *G) const
 Dump this node, for debugging. More...
 
void dumpr (const SelectionDAG *G) const
 Dump (recursively) this node and its use-def subgraph. More...
 
void dumprFull (const SelectionDAG *G=nullptr) const
 printrFull to dbgs(). More...
 
void dumprWithDepth (const SelectionDAG *G=nullptr, unsigned depth=100) const
 printrWithDepth to dbgs(). More...
 
void Profile (FoldingSetNodeID &ID) const
 Gather unique data for the node. More...
 
void addUse (SDUse &U)
 This method should only be used by the SDUse class. More...
 
- 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< ilist_detail::compute_node_options< SDNode, Options... >::type >
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. More...
 

Static Public Member Functions

static bool classof (const SDNode *N)
 
- Static Public Member Functions inherited from llvm::SDNode
static use_iterator use_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. More...
 
static bool areOnlyUsersOf (ArrayRef< const SDNode *> Nodes, const SDNode *N)
 Return true if all the users of N are contained in Nodes. More...
 
static const chargetIndexedModeName (ISD::MemIndexedMode AM)
 

Protected Attributes

MachineMemOperandMMO
 Memory reference information. More...
 
- Protected Attributes inherited from llvm::SDNode
union {
   char   RawSDNodeBits [sizeof(uint16_t)]
 
   SDNodeBitfields   SDNodeBits
 
   ConstantSDNodeBitfields   ConstantSDNodeBits
 
   MemSDNodeBitfields   MemSDNodeBits
 
   LSBaseSDNodeBitfields   LSBaseSDNodeBits
 
   LoadSDNodeBitfields   LoadSDNodeBits
 
   StoreSDNodeBitfields   StoreSDNodeBits
 
}; 
 

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
 Unique and persistent id per SDNode in the DAG. More...
 
- 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< ilist_detail::compute_node_options< SDNode, Options... >::type >
using self_iterator = ilist_iterator< ilist_detail::compute_node_options< SDNode, Options... >::type, false, false >
 
using const_self_iterator = ilist_iterator< ilist_detail::compute_node_options< SDNode, Options... >::type, false, true >
 
using reverse_self_iterator = ilist_iterator< ilist_detail::compute_node_options< SDNode, Options... >::type, true, false >
 
using const_reverse_self_iterator = ilist_iterator< ilist_detail::compute_node_options< SDNode, Options... >::type, true, true >
 
- Protected Member Functions inherited from llvm::SDNode
 SDNode (unsigned Opc, unsigned Order, DebugLoc dl, SDVTList VTs)
 Create an SDNode. More...
 
void DropOperands ()
 Release the operands and set this node to have zero operands. More...
 
- Protected Member Functions inherited from llvm::ilist_node_impl< ilist_detail::compute_node_options< SDNode, Options... >::type >
 ilist_node_impl ()=default
 
- Static Protected Member Functions inherited from llvm::SDNode
static SDVTList getSDVTList (EVT VT)
 

Detailed Description

This is an abstract virtual class for memory operations.

Definition at line 1244 of file SelectionDAGNodes.h.

Constructor & Destructor Documentation

◆ MemSDNode()

MemSDNode::MemSDNode ( unsigned  Opc,
unsigned  Order,
const DebugLoc dl,
SDVTList  VTs,
EVT  memvt,
MachineMemOperand MMO 
)

Member Function Documentation

◆ classof()

static bool llvm::MemSDNode::classof ( const SDNode N)
inlinestatic

◆ getAAInfo()

AAMDNodes llvm::MemSDNode::getAAInfo ( ) const
inline

◆ getAddressSpace()

unsigned llvm::MemSDNode::getAddressSpace ( ) const
inline

◆ getAlignment()

unsigned llvm::MemSDNode::getAlignment ( ) const
inline

Definition at line 1264 of file SelectionDAGNodes.h.

References llvm::MachineMemOperand::getAlignment().

Referenced by calculateByteProvider(), CombineBaseUpdate(), combineBVOfConsecutiveLoads(), combineLoad(), combineStore(), ConstantAddressBlock(), llvm::HexagonDAGToDAGISel::DetectUseSxtw(), EltsFromConsecutiveLoads(), llvm::MipsSETargetLowering::EmitInstrWithCustomInserter(), llvm::XCoreTargetLowering::EmitInstrWithCustomInserter(), llvm::TargetLowering::expandUnalignedLoad(), llvm::TargetLowering::expandUnalignedStore(), ExtendUsesToFormExtLoad(), foldBitcastedFPLogic(), getExpandedMinMaxOps(), getFPTernOp(), llvm::SelectionDAG::getIndexedLoad(), getLoadExtOrTrunc(), getParamsForOneTrueMaskedElt(), GetPromotionOpcode(), getVectorCompareInfo(), isTruncateOf(), isWordAligned(), LowerF128Load(), LowerF128Store(), lowerFP_TO_SINT_STORE(), llvm::HexagonTargetLowering::LowerLoad(), llvm::MipsTargetLowering::lowerLOAD(), llvm::NVPTXTargetLowering::LowerOperation(), llvm::HexagonTargetLowering::LowerStore(), llvm::MipsTargetLowering::lowerSTORE(), LowerSTORE(), LowerStore(), LowerTruncateVectorStore(), llvm::HexagonTargetLowering::LowerUnalignedLoad(), numVectorEltsOrZero(), llvm::PPCTargetLowering::PerformDAGCombine(), performIntToFpCombine(), llvm::AMDGPUTargetLowering::performLoadCombine(), llvm::AMDGPUTargetLowering::performStoreCombine(), PerformSTORECombine(), PerformVDUPCombine(), PerformVMOVRRDCombine(), PrepareCall(), ReorganizeVector(), ReplaceLoadVector(), llvm::R600TargetLowering::ReplaceNodeResults(), llvm::SparcTargetLowering::ReplaceNodeResults(), replaceShuffleOfInsert(), llvm::TargetLowering::scalarizeVectorLoad(), llvm::TargetLowering::scalarizeVectorStore(), ShrinkLoadReplaceStoreWithStore(), llvm::TargetLowering::SimplifySetCC(), SkipLoadExtensionForVMULL(), splitStores(), splitStoreSplat(), llvm::AMDGPUTargetLowering::SplitVectorLoad(), llvm::AMDGPUTargetLowering::SplitVectorStore(), and XFormVExtractWithShuffleIntoLoad().

◆ getBasePtr()

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

◆ getChain()

const SDValue& llvm::MemSDNode::getChain ( ) const
inline

Definition at line 1333 of file SelectionDAGNodes.h.

References llvm::SDValue::getOperand().

Referenced by llvm::SelectionDAG::areNonVolatileConsecutiveLoads(), llvm::AVRDAGToDAGISel::select< ISD::LOAD >(), llvm::AVRDAGToDAGISel::select< ISD::STORE >(), calculateByteProvider(), CollectOpsToWiden(), combineBVOfConsecutiveLoads(), combineBVOfVecSExt(), combineLoad(), combineMaskedLoad(), combineMaskedLoadConstantMask(), combineMaskedStore(), combineSIntToFP(), combineStore(), ConstantAddressBlock(), ConvertSelectToConcatVector(), EltsFromConsecutiveLoads(), llvm::MipsSETargetLowering::EmitInstrWithCustomInserter(), llvm::XCoreTargetLowering::EmitInstrWithCustomInserter(), llvm::TargetLowering::expandUnalignedLoad(), llvm::TargetLowering::expandUnalignedStore(), llvm::PPCTargetLowering::expandVSXLoadForLE(), llvm::PPCTargetLowering::expandVSXStoreForLE(), ExtendUsesToFormExtLoad(), findConsecutiveLoad(), foldBitcastedFPLogic(), foldExtendedSignBitTest(), FoldIntToFPToInt(), getAL(), getExpandedMinMaxOps(), GetFPLibCall(), getFPTernOp(), llvm::SelectionDAG::getIndexedLoad(), llvm::SelectionDAG::getIndexedStore(), getLoadExtOrTrunc(), GetPromotionOpcode(), getShiftAmountTyForConstant(), getVectorCompareInfo(), isAnyConstantBuildVector(), isFusableLoadOpStorePattern(), isOpcWithIntImmediate(), isSETCCorConvertedSETCC(), isStackPtrRelative(), isTruncateOf(), isValidIndexedLoad(), isWordAligned(), LowerF128Load(), LowerF128Store(), lowerFP_TO_SINT_STORE(), llvm::MipsTargetLowering::lowerLOAD(), LowerMLOAD(), LowerMSTORE(), LowerSTORE(), LowerStore(), LowerTruncateVectorStore(), lowerUnalignedIntStore(), llvm::HexagonTargetLowering::LowerUnalignedLoad(), lowerVectorShuffleAsBroadcast(), mayUseP9Setb(), numVectorEltsOrZero(), operator!=(), llvm::PPCTargetLowering::PerformDAGCombine(), performIntToFpCombine(), llvm::AMDGPUTargetLowering::performLoadCombine(), llvm::AMDGPUTargetLowering::performStoreCombine(), PerformSTORECombine(), PerformVMOVRRDCombine(), pickOpcodeForVT(), PrepareCall(), reduceMaskedLoadToScalarLoad(), reduceMaskedStoreToScalarStore(), ReorganizeVector(), llvm::R600TargetLowering::ReplaceNodeResults(), llvm::SparcTargetLowering::ReplaceNodeResults(), replaceShuffleOfInsert(), llvm::TargetLowering::scalarizeVectorLoad(), llvm::TargetLowering::scalarizeVectorStore(), llvm::AVRDAGToDAGISel::selectIndexedLoad(), llvm::HexagonDAGToDAGISel::SelectIndexedLoad(), llvm::HexagonDAGToDAGISel::SelectIndexedStore(), ShrinkLoadReplaceStoreWithStore(), simplifyDivRem(), llvm::TargetLowering::SimplifySetCC(), SkipLoadExtensionForVMULL(), splitStores(), splitStoreSplat(), llvm::AMDGPUTargetLowering::SplitVectorLoad(), llvm::AMDGPUTargetLowering::SplitVectorStore(), tryToFoldExtOfExtload(), and tryToFoldExtOfLoad().

◆ getMemOperand()

MachineMemOperand* llvm::MemSDNode::getMemOperand ( ) const
inline

Return a MachineMemOperand object describing the memory reference performed by operation.

Definition at line 1314 of file SelectionDAGNodes.h.

Referenced by adjustLoadValueTypeImpl(), llvm::AVRDAGToDAGISel::select< ISD::LOAD >(), llvm::AVRDAGToDAGISel::select< ISD::STORE >(), canLowerToLDG(), chainLoadsAndStoresForMemcpy(), CollectOpsToWiden(), CombineBaseUpdate(), combineBVOfVecSExt(), combineLoad(), combineMaskedLoad(), combineMaskedLoadConstantMask(), combineMaskedStore(), combineStore(), CombineVLDDUP(), ConstantAddressBlock(), createLoadLR(), createStoreLR(), EltsFromConsecutiveLoads(), llvm::MipsSETargetLowering::EmitInstrWithCustomInserter(), llvm::TargetLowering::expandUnalignedLoad(), llvm::TargetLowering::expandUnalignedStore(), llvm::PPCTargetLowering::expandVSXLoadForLE(), llvm::PPCTargetLowering::expandVSXStoreForLE(), ExtendUsesToFormExtLoad(), foldBitcastedFPLogic(), foldExtendedSignBitTest(), FoldIntToFPToInt(), getCodeAddrSpace(), getExpandedMinMaxOps(), GetFPLibCall(), getFPTernOp(), llvm::SelectionDAG::getIndexedLoad(), llvm::SelectionDAG::getIndexedStore(), getLoadExtOrTrunc(), GetPromotionOpcode(), getReductionSDNode(), getShiftAmountTyForConstant(), getVectorCompareInfo(), isAnyConstantBuildVector(), llvm::SITargetLowering::isMemOpHasNoClobberedMemOperand(), llvm::SITargetLowering::isMemOpUniform(), llvm::AVR::isProgramMemoryAccess(), llvm::AMDGPUTargetLowering::isSDNodeAlwaysUniform(), isSETCCorConvertedSETCC(), isStackPtrRelative(), isTruncateOf(), isWordAligned(), lowerAtomicArith(), lowerFP_TO_SINT_STORE(), LowerINTRINSIC_W_CHAIN(), LowerMLOAD(), LowerMSTORE(), LowerSTORE(), LowerStore(), LowerTruncateVectorStore(), llvm::HexagonTargetLowering::LowerUnalignedLoad(), lowerVectorShuffleAsBroadcast(), mayUseP9Setb(), numVectorEltsOrZero(), operator!=(), llvm::PPCTargetLowering::PerformDAGCombine(), performIntToFpCombine(), llvm::AMDGPUTargetLowering::performLoadCombine(), performNEONPostLDSTCombine(), performPostLD1Combine(), llvm::AMDGPUTargetLowering::performStoreCombine(), PerformSTORECombine(), PerformVDUPCombine(), PerformVMOVRRDCombine(), pickOpcodeForVT(), PrepareCall(), reduceMaskedLoadToScalarLoad(), reduceMaskedStoreToScalarStore(), ReplaceINTRINSIC_W_CHAIN(), ReplaceLoadVector(), llvm::R600TargetLowering::ReplaceNodeResults(), llvm::SparcTargetLowering::ReplaceNodeResults(), replaceShuffleOfInsert(), llvm::TargetLowering::scalarizeVectorLoad(), llvm::TargetLowering::scalarizeVectorStore(), llvm::HexagonDAGToDAGISel::SelectIndexedLoad(), llvm::HexagonDAGToDAGISel::SelectIndexedStore(), llvm::AMDGPUTargetLowering::shouldReduceLoadWidth(), ShrinkLoadReplaceStoreWithStore(), simplifyDivRem(), SkipLoadExtensionForVMULL(), splitStores(), splitStoreSplat(), llvm::AMDGPUTargetLowering::SplitVectorLoad(), llvm::AMDGPUTargetLowering::SplitVectorStore(), tryToFoldExtOfExtload(), and tryToFoldExtOfLoad().

◆ getMemoryVT()

EVT llvm::MemSDNode::getMemoryVT ( ) const
inline

Return the type of the in-memory value.

Definition at line 1310 of file SelectionDAGNodes.h.

Referenced by AddNodeIDCustom(), adjustLoadValueTypeImpl(), allUsesTruncate(), llvm::AVRDAGToDAGISel::select< ISD::LOAD >(), chainLoadsAndStoresForMemcpy(), checkValueWidth(), CollectOpsToWiden(), combineLoad(), combineMaskedLoad(), combineMaskedLoadConstantMask(), combineMaskedStore(), combineStore(), CombineVLDDUP(), llvm::SelectionDAG::computeKnownBits(), ConstantAddressBlock(), ConvertSelectToConcatVector(), createLoadLR(), createStoreLR(), llvm::HexagonDAGToDAGISel::DetectUseSxtw(), llvm::MipsSETargetLowering::EmitInstrWithCustomInserter(), llvm::XCoreTargetLowering::EmitInstrWithCustomInserter(), llvm::TargetLowering::expandUnalignedLoad(), llvm::TargetLowering::expandUnalignedStore(), ExtendUsesToFormExtLoad(), findConsecutiveLoad(), foldExtendedSignBitTest(), getAL(), getExpandedMinMaxOps(), GetFPLibCall(), getFPTernOp(), llvm::SelectionDAG::getIndexedLoad(), llvm::SelectionDAG::getIndexedStore(), getLoadExtOrTrunc(), getParamsForOneTrueMaskedElt(), llvm::HexagonTargetLowering::getPostIndexedAddressParts(), getReductionSDNode(), getShiftAmountTyForConstant(), getVectorCompareInfo(), isAnyConstantBuildVector(), isOpcWithIntImmediate(), isSETCCorConvertedSETCC(), isTruncateOf(), isValidIndexedLoad(), isWordAligned(), LowerINTRINSIC_W_CHAIN(), llvm::MSP430TargetLowering::LowerJumpTable(), llvm::MipsTargetLowering::lowerLOAD(), LowerLOAD(), LowerMLOAD(), LowerMSTORE(), llvm::NVPTXTargetLowering::LowerOperation(), llvm::HexagonTargetLowering::LowerStore(), llvm::MipsTargetLowering::lowerSTORE(), LowerSTORE(), LowerTruncateVectorStore(), llvm::HexagonTargetLowering::LowerUnalignedLoad(), mayUseP9Setb(), numVectorEltsOrZero(), operator!=(), PerformANDCombine(), llvm::PPCTargetLowering::PerformDAGCombine(), llvm::AMDGPUTargetLowering::performLoadCombine(), performNEONPostLDSTCombine(), performPostLD1Combine(), llvm::AMDGPUTargetLowering::performStoreCombine(), PerformSTORECombine(), PerformVDUPCombine(), pickOpcodeForVT(), PrepareCall(), ReorganizeVector(), ReplaceINTRINSIC_W_CHAIN(), ReplaceLoadVector(), llvm::R600TargetLowering::ReplaceNodeResults(), llvm::SparcTargetLowering::ReplaceNodeResults(), replaceShuffleOfInsert(), llvm::TargetLowering::scalarizeVectorLoad(), llvm::TargetLowering::scalarizeVectorStore(), selectI64Imm(), llvm::AVRDAGToDAGISel::selectIndexedLoad(), llvm::HexagonDAGToDAGISel::SelectIndexedLoad(), llvm::HexagonDAGToDAGISel::SelectIndexedStore(), llvm::AArch64TargetLowering::shouldReduceLoadWidth(), ShrinkLoadReplaceStoreWithStore(), simplifyDivRem(), llvm::TargetLowering::SimplifySetCC(), SkipLoadExtensionForVMULL(), llvm::AMDGPUTargetLowering::SplitVectorLoad(), llvm::AMDGPUTargetLowering::SplitVectorStore(), and tryToFoldExtOfExtload().

◆ getOrdering()

AtomicOrdering llvm::MemSDNode::getOrdering ( ) const
inline

Return the atomic ordering requirements for this memory operation.

For cmpxchg atomic operations, return the atomic ordering requirements when store occurs.

Definition at line 1307 of file SelectionDAGNodes.h.

References llvm::MachineMemOperand::getOrdering().

Referenced by pickOpcodeForVT().

◆ getOriginalAlignment()

unsigned llvm::MemSDNode::getOriginalAlignment ( ) const
inline

Returns alignment and volatility of the memory access.

Definition at line 1261 of file SelectionDAGNodes.h.

References llvm::MachineMemOperand::getBaseAlignment().

Referenced by ConvertSelectToConcatVector(), and replaceShuffleOfInsert().

◆ getPointerInfo()

const MachinePointerInfo& llvm::MemSDNode::getPointerInfo ( ) const
inline

◆ getRanges()

const MDNode* llvm::MemSDNode::getRanges ( ) const
inline

Returns the Ranges that describes the dereference.

Definition at line 1299 of file SelectionDAGNodes.h.

References llvm::MachineMemOperand::getRanges().

Referenced by llvm::SelectionDAG::computeKnownBits(), ConvertSelectToConcatVector(), and PrepareCall().

◆ getRawSubclassData()

unsigned llvm::MemSDNode::getRawSubclassData ( ) const
inline

Return the SubclassData value, without HasDebugValue.

This contains an encoding of the volatile flag, as well as bits used by subclasses. This function should only be used to compute a FoldingSetNodeID value. The HasDebugValue bit is masked out because CSE map needs to match nodes with debug info with nodes without debug info. Same is about isDivergent bit.

Definition at line 1274 of file SelectionDAGNodes.h.

References llvm::Data, and llvm::Intrinsic::memcpy.

Referenced by AddNodeIDCustom(), and llvm::SelectionDAG::getIndexedStore().

◆ getSrcValueOffset()

int64_t llvm::MemSDNode::getSrcValueOffset ( ) const
inline

◆ getSyncScopeID()

SyncScope::ID llvm::MemSDNode::getSyncScopeID ( ) const
inline

Returns the synchronization scope ID for this memory operation.

Definition at line 1302 of file SelectionDAGNodes.h.

References llvm::MachineMemOperand::getSyncScopeID().

◆ isDereferenceable()

bool llvm::MemSDNode::isDereferenceable ( ) const
inline

Definition at line 1289 of file SelectionDAGNodes.h.

Referenced by PrepareCall().

◆ isInvariant()

bool llvm::MemSDNode::isInvariant ( ) const
inline

◆ isNonTemporal()

bool llvm::MemSDNode::isNonTemporal ( ) const
inline

◆ isVolatile()

bool llvm::MemSDNode::isVolatile ( ) const
inline

◆ readMem()

bool llvm::MemSDNode::readMem ( ) const
inline

Definition at line 1257 of file SelectionDAGNodes.h.

References llvm::MachineMemOperand::isLoad().

Referenced by pickOpcodeForVT().

◆ refineAlignment()

void llvm::MemSDNode::refineAlignment ( const MachineMemOperand NewMMO)
inline

Update this MemSDNode's MachineMemOperand information to reflect the alignment of NewMMO, if it has a greater alignment.

This must only be used when the new alignment applies to all users of this MachineMemOperand.

Definition at line 1329 of file SelectionDAGNodes.h.

References llvm::MachineMemOperand::refineAlignment().

◆ writeMem()

bool llvm::MemSDNode::writeMem ( ) const
inline

Definition at line 1258 of file SelectionDAGNodes.h.

References llvm::MachineMemOperand::isStore().

Referenced by pickOpcodeForVT(), and replaceShuffleOfInsert().

Member Data Documentation

◆ MMO

MachineMemOperand* llvm::MemSDNode::MMO
protected

Memory reference information.

Definition at line 1251 of file SelectionDAGNodes.h.

Referenced by MemSDNode().


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