LLVM API Documentation
Abstact virtual class for operations for memory operations. More...
#include <SelectionDAGNodes.h>
Abstact virtual class for operations for memory operations.
Definition at line 1064 of file SelectionDAGNodes.h.
MemSDNode::MemSDNode | ( | unsigned | Opc, |
unsigned | Order, | ||
DebugLoc | dl, | ||
SDVTList | VTs, | ||
EVT | MemoryVT, | ||
MachineMemOperand * | MMO | ||
) |
Definition at line 6225 of file SelectionDAG.cpp.
References encodeMemSDNodeFlags(), llvm::MachineMemOperand::getSize(), llvm::EVT::getStoreSize(), llvm::MachineMemOperand::isInvariant(), llvm::MachineMemOperand::isNonTemporal(), isNonTemporal(), llvm::MachineMemOperand::isVolatile(), isVolatile(), MMO, llvm::SDNode::SubclassData, and llvm::ISD::UNINDEXED.
MemSDNode::MemSDNode | ( | unsigned | Opc, |
unsigned | Order, | ||
DebugLoc | dl, | ||
SDVTList | VTs, | ||
ArrayRef< SDValue > | Ops, | ||
EVT | MemoryVT, | ||
MachineMemOperand * | MMO | ||
) |
Definition at line 6239 of file SelectionDAG.cpp.
References encodeMemSDNodeFlags(), llvm::MachineMemOperand::getSize(), llvm::EVT::getStoreSize(), llvm::MachineMemOperand::isInvariant(), llvm::MachineMemOperand::isNonTemporal(), llvm::MachineMemOperand::isVolatile(), isVolatile(), MMO, llvm::SDNode::SubclassData, and llvm::ISD::UNINDEXED.
static bool llvm::MemSDNode::classof | ( | const SDNode * | N | ) | [inline, static] |
Reimplemented in llvm::StoreSDNode, llvm::LoadSDNode, llvm::LSBaseSDNode, llvm::MemIntrinsicSDNode, and llvm::AtomicSDNode.
Definition at line 1150 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_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::PREFETCH, and llvm::ISD::STORE.
AAMDNodes llvm::MemSDNode::getAAInfo | ( | ) | const [inline] |
Returns the AA info that describes the dereference.
Definition at line 1115 of file SelectionDAGNodes.h.
Referenced by ExpandUnalignedLoad(), ExpandUnalignedStore(), and PerformSTORECombine().
unsigned llvm::MemSDNode::getAddressSpace | ( | ) | const [inline] |
getAddressSpace - Return the address space for the associated pointer
Definition at line 1132 of file SelectionDAGNodes.h.
Referenced by ExpandUnalignedStore(), llvm::AMDGPUTargetLowering::LowerLOAD(), llvm::AMDGPUTargetLowering::LowerSTORE(), and llvm::SITargetLowering::PerformDAGCombine().
unsigned llvm::MemSDNode::getAlignment | ( | ) | const [inline] |
Definition at line 1087 of file SelectionDAGNodes.h.
Referenced by EltsFromConsecutiveLoads(), ExpandUnalignedLoad(), ExpandUnalignedStore(), llvm::SelectionDAG::getIndexedLoad(), LowerF128Load(), LowerF128Store(), lowerFP_TO_SINT_STORE(), llvm::MipsTargetLowering::lowerLOAD(), llvm::MipsTargetLowering::lowerSTORE(), llvm::PPCTargetLowering::PerformDAGCombine(), performIntToFpCombine(), PerformLOADCombine(), performSTORECombine(), PerformSTORECombine(), PerformVMOVRRDCombine(), ReplaceLoadVector(), replaceSplatVectorStore(), llvm::AMDGPUTargetLowering::ScalarizeVectorLoad(), llvm::AMDGPUTargetLowering::ScalarizeVectorStore(), ShrinkLoadReplaceStoreWithStore(), llvm::TargetLowering::SimplifySetCC(), SkipLoadExtensionForVMULL(), llvm::AMDGPUTargetLowering::SplitVectorLoad(), llvm::AMDGPUTargetLowering::SplitVectorStore(), and XFormVExtractWithShuffleIntoLoad().
const SDValue& llvm::MemSDNode::getBasePtr | ( | ) | const [inline] |
Reimplemented in llvm::StoreSDNode, llvm::LoadSDNode, and llvm::AtomicSDNode.
Definition at line 1145 of file SelectionDAGNodes.h.
References llvm::SDNode::getOpcode(), llvm::SDNode::getOperand(), and llvm::ISD::STORE.
Referenced by isConsecutiveLSLoc(), and llvm::SITargetLowering::PerformDAGCombine().
const SDValue& llvm::MemSDNode::getChain | ( | ) | const [inline] |
Definition at line 1144 of file SelectionDAGNodes.h.
References llvm::SDNode::getOperand().
Referenced by EltsFromConsecutiveLoads(), ExpandUnalignedLoad(), ExpandUnalignedStore(), findConsecutiveLoad(), llvm::SelectionDAG::getIndexedLoad(), llvm::SelectionDAG::getIndexedStore(), llvm::SelectionDAG::isConsecutiveLoad(), isLoadIncOrDecStore(), LowerF128Load(), LowerF128Store(), lowerFP_TO_SINT_STORE(), llvm::AMDGPUTargetLowering::LowerLOAD(), llvm::MipsTargetLowering::lowerLOAD(), llvm::AMDGPUTargetLowering::LowerSTORE(), lowerUnalignedIntStore(), NarrowVectorLoadToElement(), llvm::PPCTargetLowering::PerformDAGCombine(), performIntToFpCombine(), PerformLOADCombine(), PerformSINT_TO_FPCombine(), performSTORECombine(), PerformSTORECombine(), PerformVMOVRRDCombine(), replaceSplatVectorStore(), llvm::AMDGPUTargetLowering::ScalarizeVectorLoad(), llvm::AMDGPUTargetLowering::ScalarizeVectorStore(), ShrinkLoadReplaceStoreWithStore(), llvm::TargetLowering::SimplifySetCC(), SkipLoadExtensionForVMULL(), llvm::AMDGPUTargetLowering::SplitVectorLoad(), and llvm::AMDGPUTargetLowering::SplitVectorStore().
MachineMemOperand* llvm::MemSDNode::getMemOperand | ( | ) | const [inline] |
getMemOperand - Return a MachineMemOperand object describing the memory reference performed by operation.
Definition at line 1125 of file SelectionDAGNodes.h.
Referenced by CombineBaseUpdate(), CombineVLDDUP(), createLoadLR(), createStoreLR(), ExpandUnalignedLoad(), getCodeAddrSpace(), llvm::SelectionDAG::getIndexedStore(), llvm::AMDGPUTargetLowering::LowerLOAD(), NarrowVectorLoadToElement(), llvm::PPCTargetLowering::PerformDAGCombine(), performNEONPostLDSTCombine(), performPostLD1Combine(), ReplaceINTRINSIC_W_CHAIN(), ReplaceLoadVector(), llvm::AMDGPUTargetLowering::ScalarizeVectorLoad(), llvm::AMDGPUTargetLowering::ScalarizeVectorStore(), llvm::AMDGPUTargetLowering::SplitVectorLoad(), and llvm::AMDGPUTargetLowering::SplitVectorStore().
EVT llvm::MemSDNode::getMemoryVT | ( | ) | const [inline] |
getMemoryVT - Return the type of the in-memory value.
Definition at line 1121 of file SelectionDAGNodes.h.
Referenced by AddNodeIDCustom(), checkValueWidth(), CombineBaseUpdate(), CombineVLDDUP(), llvm::SelectionDAG::computeKnownBits(), createLoadLR(), createStoreLR(), ExpandUnalignedLoad(), ExpandUnalignedStore(), findConsecutiveLoad(), llvm::SelectionDAG::getIndexedLoad(), llvm::SelectionDAG::getIndexedStore(), isLoadIncOrDecStore(), isValidIndexedLoad(), llvm::AMDGPUTargetLowering::LowerLOAD(), llvm::MipsTargetLowering::lowerLOAD(), llvm::AMDGPUTargetLowering::LowerSTORE(), llvm::MipsTargetLowering::lowerSTORE(), PerformANDCombine(), llvm::PPCTargetLowering::PerformDAGCombine(), PerformLOADCombine(), performNEONPostLDSTCombine(), performPostLD1Combine(), PerformSTORECombine(), ReplaceINTRINSIC_W_CHAIN(), ReplaceLoadVector(), llvm::AMDGPUTargetLowering::ScalarizeVectorLoad(), llvm::AMDGPUTargetLowering::ScalarizeVectorStore(), llvm::TargetLowering::SimplifySetCC(), SkipLoadExtensionForVMULL(), llvm::AMDGPUTargetLowering::SplitVectorLoad(), and llvm::AMDGPUTargetLowering::SplitVectorStore().
AtomicOrdering llvm::MemSDNode::getOrdering | ( | ) | const [inline] |
Definition at line 1104 of file SelectionDAGNodes.h.
References llvm::SDNode::SubclassData.
unsigned llvm::MemSDNode::getOriginalAlignment | ( | ) | const [inline] |
Returns alignment and volatility of the memory access.
Definition at line 1084 of file SelectionDAGNodes.h.
const MachinePointerInfo& llvm::MemSDNode::getPointerInfo | ( | ) | const [inline] |
Definition at line 1127 of file SelectionDAGNodes.h.
Referenced by AddNodeIDCustom(), EltsFromConsecutiveLoads(), ExpandUnalignedLoad(), ExpandUnalignedStore(), llvm::SelectionDAG::getIndexedLoad(), llvm::SelectionDAG::getIndexedStore(), LowerF128Load(), lowerFP_TO_SINT_STORE(), performIntToFpCombine(), PerformLOADCombine(), performSTORECombine(), PerformSTORECombine(), PerformVMOVRRDCombine(), replaceSplatVectorStore(), ShrinkLoadReplaceStoreWithStore(), llvm::TargetLowering::SimplifySetCC(), and SkipLoadExtensionForVMULL().
const MDNode* llvm::MemSDNode::getRanges | ( | ) | const [inline] |
Returns the Ranges that describes the dereference.
Definition at line 1118 of file SelectionDAGNodes.h.
Referenced by llvm::SelectionDAG::computeKnownBits().
unsigned llvm::MemSDNode::getRawSubclassData | ( | ) | const [inline] |
getRawSubclassData - Return the SubclassData value, which 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.
Definition at line 1094 of file SelectionDAGNodes.h.
References llvm::SDNode::SubclassData.
Referenced by AddNodeIDCustom(), and llvm::SelectionDAG::getIndexedStore().
int64_t llvm::MemSDNode::getSrcValueOffset | ( | ) | const [inline] |
Definition at line 1112 of file SelectionDAGNodes.h.
SynchronizationScope llvm::MemSDNode::getSynchScope | ( | ) | const [inline] |
Definition at line 1107 of file SelectionDAGNodes.h.
References llvm::SDNode::SubclassData.
bool llvm::MemSDNode::isInvariant | ( | ) | const [inline] |
Definition at line 1102 of file SelectionDAGNodes.h.
References llvm::SDNode::SubclassData.
Referenced by EltsFromConsecutiveLoads(), ExpandUnalignedLoad(), performIntToFpCombine(), PerformLOADCombine(), PerformSTORECombine(), PerformVMOVRRDCombine(), llvm::AMDGPUTargetLowering::ScalarizeVectorLoad(), SkipLoadExtensionForVMULL(), and llvm::AMDGPUTargetLowering::SplitVectorLoad().
bool llvm::MemSDNode::isNonTemporal | ( | ) | const [inline] |
Definition at line 1101 of file SelectionDAGNodes.h.
References llvm::SDNode::SubclassData.
Referenced by EltsFromConsecutiveLoads(), ExpandUnalignedLoad(), ExpandUnalignedStore(), llvm::SelectionDAG::getIndexedLoad(), isLoadIncOrDecStore(), lowerFP_TO_SINT_STORE(), MemSDNode(), performIntToFpCombine(), PerformLOADCombine(), performSTORECombine(), PerformSTORECombine(), PerformVMOVRRDCombine(), replaceSplatVectorStore(), llvm::AMDGPUTargetLowering::ScalarizeVectorLoad(), llvm::AMDGPUTargetLowering::ScalarizeVectorStore(), SkipLoadExtensionForVMULL(), llvm::AMDGPUTargetLowering::SplitVectorLoad(), and llvm::AMDGPUTargetLowering::SplitVectorStore().
bool llvm::MemSDNode::isVolatile | ( | ) | const [inline] |
Definition at line 1100 of file SelectionDAGNodes.h.
References llvm::SDNode::SubclassData.
Referenced by EltsFromConsecutiveLoads(), ExpandUnalignedLoad(), ExpandUnalignedStore(), llvm::SelectionDAG::getIndexedLoad(), isCalleeLoad(), lowerFP_TO_SINT_STORE(), MemSDNode(), performIntToFpCombine(), PerformLOADCombine(), PerformSINT_TO_FPCombine(), performSTORECombine(), PerformSTORECombine(), PerformVMOVRRDCombine(), replaceSplatVectorStore(), llvm::AMDGPUTargetLowering::ScalarizeVectorLoad(), llvm::AMDGPUTargetLowering::ScalarizeVectorStore(), llvm::TargetLowering::SimplifySetCC(), SkipLoadExtensionForVMULL(), llvm::AMDGPUTargetLowering::SplitVectorLoad(), llvm::AMDGPUTargetLowering::SplitVectorStore(), and XFormVExtractWithShuffleIntoLoad().
bool llvm::MemSDNode::readMem | ( | ) | const [inline] |
Definition at line 1080 of file SelectionDAGNodes.h.
void llvm::MemSDNode::refineAlignment | ( | const MachineMemOperand * | NewMMO | ) | [inline] |
refineAlignment - 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 1140 of file SelectionDAGNodes.h.
bool llvm::MemSDNode::writeMem | ( | ) | const [inline] |
Definition at line 1081 of file SelectionDAGNodes.h.
MachineMemOperand* llvm::MemSDNode::MMO [protected] |
MMO - Memory reference information.
Definition at line 1071 of file SelectionDAGNodes.h.
Referenced by MemSDNode().