LLVM
8.0.1
|
This is an abstract virtual class for memory operations. More...
#include "llvm/CodeGen/SelectionDAGNodes.h"
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 MDNode * | getRanges () 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... | |
MachineMemOperand * | getMemOperand () const |
Return a MachineMemOperand object describing the memory reference performed by operation. More... | |
const MachinePointerInfo & | getPointerInfo () 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 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. 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 DebugLoc & | getDebugLoc () 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_iterator > | uses () |
iterator_range< use_iterator > | uses () 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 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. More... | |
SDNode * | getGluedUser () 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 char * | getIndexedModeName (ISD::MemIndexedMode AM) |
Protected Attributes | |
MachineMemOperand * | MMO |
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 | |
}; | |
This is an abstract virtual class for memory operations.
Definition at line 1244 of file SelectionDAGNodes.h.
MemSDNode::MemSDNode | ( | unsigned | Opc, |
unsigned | Order, | ||
const DebugLoc & | dl, | ||
SDVTList | VTs, | ||
EVT | memvt, | ||
MachineMemOperand * | MMO | ||
) |
Definition at line 8663 of file SelectionDAG.cpp.
References assert(), llvm::MachineMemOperand::getSize(), llvm::EVT::getStoreSize(), llvm::MachineMemOperand::isDereferenceable(), llvm::MachineMemOperand::isInvariant(), llvm::MachineMemOperand::isNonTemporal(), llvm::MachineMemOperand::isVolatile(), llvm::SDNode::MemSDNodeBits, and MMO.
Definition at line 1339 of file SelectionDAGNodes.h.
References llvm::ISD::ATOMIC_CMP_SWAP, llvm::ISD::ATOMIC_CMP_SWAP_WITH_SUCCESS, llvm::ISD::ATOMIC_LOAD, llvm::ISD::ATOMIC_LOAD_ADD, llvm::ISD::ATOMIC_LOAD_AND, llvm::ISD::ATOMIC_LOAD_CLR, llvm::ISD::ATOMIC_LOAD_MAX, llvm::ISD::ATOMIC_LOAD_MIN, llvm::ISD::ATOMIC_LOAD_NAND, llvm::ISD::ATOMIC_LOAD_OR, llvm::ISD::ATOMIC_LOAD_SUB, llvm::ISD::ATOMIC_LOAD_UMAX, llvm::ISD::ATOMIC_LOAD_UMIN, llvm::ISD::ATOMIC_LOAD_XOR, llvm::ISD::ATOMIC_STORE, llvm::ISD::ATOMIC_SWAP, llvm::SDNode::getOpcode(), llvm::SDNode::isMemIntrinsic(), llvm::SDNode::isTargetMemoryOpcode(), llvm::ISD::LOAD, llvm::ISD::MGATHER, llvm::ISD::MLOAD, llvm::ISD::MSCATTER, llvm::ISD::MSTORE, llvm::ISD::PREFETCH, and llvm::ISD::STORE.
|
inline |
Returns the AA info that describes the dereference.
Definition at line 1296 of file SelectionDAGNodes.h.
References llvm::MachineMemOperand::getAAInfo().
Referenced by ConvertSelectToConcatVector(), llvm::MipsSETargetLowering::EmitInstrWithCustomInserter(), llvm::TargetLowering::expandUnalignedLoad(), llvm::TargetLowering::expandUnalignedStore(), ExtendUsesToFormExtLoad(), foldBitcastedFPLogic(), getExpandedMinMaxOps(), llvm::SelectionDAG::getIndexedLoad(), getLoadExtOrTrunc(), GetPromotionOpcode(), getVectorCompareInfo(), isTruncateOf(), LowerSTORE(), numVectorEltsOrZero(), llvm::PPCTargetLowering::PerformDAGCombine(), PerformSTORECombine(), PrepareCall(), llvm::R600TargetLowering::ReplaceNodeResults(), llvm::SparcTargetLowering::ReplaceNodeResults(), replaceShuffleOfInsert(), llvm::TargetLowering::scalarizeVectorLoad(), llvm::TargetLowering::scalarizeVectorStore(), and ShrinkLoadReplaceStoreWithStore().
|
inline |
Return the address space for the associated pointer.
Definition at line 1321 of file SelectionDAGNodes.h.
Referenced by calculateByteProvider(), combineLoad(), combineStore(), ConstantAddressBlock(), llvm::XCoreTargetLowering::EmitInstrWithCustomInserter(), foldBitcastedFPLogic(), getFPTernOp(), getLoadExtOrTrunc(), llvm::SITargetLowering::isSDNodeSourceOfDivergence(), isStackPtrRelative(), isWordAligned(), llvm::NVPTXTargetLowering::LowerOperation(), LowerTruncateVectorStore(), llvm::HexagonTargetLowering::LowerUnalignedLoad(), llvm::R600TargetLowering::PerformDAGCombine(), llvm::AMDGPUTargetLowering::performLoadCombine(), llvm::AMDGPUTargetLowering::performStoreCombine(), pickOpcodeForVT(), llvm::R600TargetLowering::ReplaceNodeResults(), llvm::AMDGPUTargetLowering::shouldReduceLoadWidth(), ShrinkLoadReplaceStoreWithStore(), and simplifyDivRem().
|
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().
Definition at line 1334 of file SelectionDAGNodes.h.
References llvm::SDValue::getOpcode(), llvm::SDValue::getOperand(), and llvm::ISD::STORE.
Referenced by getFPTernOp(), isConsecutiveLSLoc(), isStackPtrRelative(), llvm::BaseIndexOffset::match(), pickOpcodeForVT(), replaceShuffleOfInsert(), llvm::AArch64TargetLowering::shouldReduceLoadWidth(), ShrinkLoadReplaceStoreWithStore(), and simplifyDivRem().
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().
|
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().
|
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().
|
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().
|
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().
|
inline |
Definition at line 1316 of file SelectionDAGNodes.h.
References llvm::MachineMemOperand::getPointerInfo().
Referenced by AddNodeIDCustom(), calculateByteProvider(), combineBVOfConsecutiveLoads(), combineLoad(), combineStore(), ConstantAddressBlock(), ConvertSelectToConcatVector(), EltsFromConsecutiveLoads(), llvm::XCoreTargetLowering::EmitInstrWithCustomInserter(), llvm::TargetLowering::expandUnalignedLoad(), llvm::TargetLowering::expandUnalignedStore(), ExtendUsesToFormExtLoad(), foldBitcastedFPLogic(), getExpandedMinMaxOps(), llvm::SelectionDAG::getIndexedLoad(), llvm::SelectionDAG::getIndexedStore(), getLoadExtOrTrunc(), GetPromotionOpcode(), getVectorCompareInfo(), isDispSafeForFrameIndex(), isTruncateOf(), isWordAligned(), LowerF128Load(), lowerFP_TO_SINT_STORE(), LowerSTORE(), LowerStore(), numVectorEltsOrZero(), llvm::PPCTargetLowering::PerformDAGCombine(), performIntToFpCombine(), PerformSTORECombine(), PerformVMOVRRDCombine(), PrepareCall(), reduceMaskedLoadToScalarLoad(), reduceMaskedStoreToScalarStore(), llvm::R600TargetLowering::ReplaceNodeResults(), llvm::SparcTargetLowering::ReplaceNodeResults(), replaceShuffleOfInsert(), llvm::TargetLowering::scalarizeVectorLoad(), llvm::TargetLowering::scalarizeVectorStore(), ShrinkLoadReplaceStoreWithStore(), llvm::TargetLowering::SimplifySetCC(), SkipLoadExtensionForVMULL(), splitStores(), and splitStoreSplat().
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().
|
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().
|
inline |
Definition at line 1293 of file SelectionDAGNodes.h.
References llvm::MachineMemOperand::getOffset().
Referenced by numVectorEltsOrZero(), replaceShuffleOfInsert(), and ShrinkLoadReplaceStoreWithStore().
|
inline |
Returns the synchronization scope ID for this memory operation.
Definition at line 1302 of file SelectionDAGNodes.h.
References llvm::MachineMemOperand::getSyncScopeID().
|
inline |
Definition at line 1289 of file SelectionDAGNodes.h.
Referenced by PrepareCall().
|
inline |
Definition at line 1290 of file SelectionDAGNodes.h.
Referenced by canLowerToLDG(), getLoadExtOrTrunc(), PrepareCall(), replaceShuffleOfInsert(), and llvm::AMDGPUTargetLowering::shouldReduceLoadWidth().
|
inline |
Definition at line 1288 of file SelectionDAGNodes.h.
Referenced by combineLoad(), EltsFromConsecutiveLoads(), isFusableLoadOpStorePattern(), PrepareCall(), llvm::HexagonDAGToDAGISel::SelectIndexedLoad(), llvm::HexagonDAGToDAGISel::SelectIndexedStore(), and ShrinkLoadReplaceStoreWithStore().
|
inline |
Definition at line 1287 of file SelectionDAGNodes.h.
Referenced by llvm::SelectionDAG::areNonVolatileConsecutiveLoads(), calculateByteProvider(), combineSIntToFP(), combineStore(), llvm::XCoreTargetLowering::EmitInstrWithCustomInserter(), ExtendUsesToFormExtLoad(), getLoadExtOrTrunc(), isCalleeLoad(), isSlicingProfitable(), isTruncateOf(), isWordAligned(), numVectorEltsOrZero(), llvm::PPCTargetLowering::PerformDAGCombine(), llvm::AMDGPUTargetLowering::performLoadCombine(), llvm::AMDGPUTargetLowering::performStoreCombine(), PerformSTORECombine(), pickOpcodeForVT(), PrepareCall(), replaceShuffleOfInsert(), scalarizeExtractedBinop(), ShrinkLoadReplaceStoreWithStore(), simplifyDivRem(), llvm::TargetLowering::SimplifySetCC(), splitStores(), tryToFoldExtOfExtload(), and XFormVExtractWithShuffleIntoLoad().
|
inline |
Definition at line 1257 of file SelectionDAGNodes.h.
References llvm::MachineMemOperand::isLoad().
Referenced by pickOpcodeForVT().
|
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().
|
inline |
Definition at line 1258 of file SelectionDAGNodes.h.
References llvm::MachineMemOperand::isStore().
Referenced by pickOpcodeForVT(), and replaceShuffleOfInsert().
|
protected |
Memory reference information.
Definition at line 1251 of file SelectionDAGNodes.h.
Referenced by MemSDNode().