LLVM API Documentation
Abstact virtual class for operations for memory operations. More...
#include <SelectionDAGNodes.h>


Public Member Functions | |
| MemSDNode (unsigned Opc, DebugLoc dl, SDVTList VTs, EVT MemoryVT, MachineMemOperand *MMO) | |
| MemSDNode (unsigned Opc, DebugLoc dl, SDVTList VTs, const SDValue *Ops, unsigned NumOps, EVT MemoryVT, MachineMemOperand *MMO) | |
| bool | readMem () const |
| bool | writeMem () const |
| unsigned | getOriginalAlignment () const |
| Returns alignment and volatility of the memory access. | |
| unsigned | getAlignment () const |
| unsigned | getRawSubclassData () const |
| bool | isVolatile () const |
| bool | isNonTemporal () const |
| bool | isInvariant () const |
| AtomicOrdering | getOrdering () const |
| SynchronizationScope | getSynchScope () const |
| const Value * | getSrcValue () const |
| Returns the SrcValue and offset that describes the location of the access. | |
| int64_t | getSrcValueOffset () const |
| const MDNode * | getTBAAInfo () const |
| Returns the TBAAInfo that describes the dereference. | |
| const MDNode * | getRanges () const |
| Returns the Ranges that describes the dereference. | |
| EVT | getMemoryVT () const |
| getMemoryVT - Return the type of the in-memory value. | |
| MachineMemOperand * | getMemOperand () const |
| const MachinePointerInfo & | getPointerInfo () const |
| unsigned | getAddressSpace () const |
| getAddressSpace - Return the address space for the associated pointer | |
| void | refineAlignment (const MachineMemOperand *NewMMO) |
| const SDValue & | getChain () const |
| const SDValue & | getBasePtr () const |
Static Public Member Functions | |
| static bool | classof (const SDNode *N) |
Protected Attributes | |
| MachineMemOperand * | MMO |
| MMO - Memory reference information. | |
Abstact virtual class for operations for memory operations.
Definition at line 894 of file SelectionDAGNodes.h.
| MemSDNode::MemSDNode | ( | unsigned | Opc, |
| DebugLoc | dl, | ||
| SDVTList | VTs, | ||
| EVT | MemoryVT, | ||
| MachineMemOperand * | MMO | ||
| ) |
Definition at line 5921 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, |
| DebugLoc | dl, | ||
| SDVTList | VTs, | ||
| const SDValue * | Ops, | ||
| unsigned | NumOps, | ||
| EVT | MemoryVT, | ||
| MachineMemOperand * | MMO | ||
| ) |
Definition at line 5932 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.
Reimplemented in llvm::StoreSDNode, llvm::LoadSDNode, llvm::LSBaseSDNode, llvm::MemIntrinsicSDNode, and llvm::AtomicSDNode.
Definition at line 981 of file SelectionDAGNodes.h.
References llvm::ISD::ATOMIC_CMP_SWAP, 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::isTargetMemoryOpcode(), llvm::ISD::LOAD, llvm::ISD::PREFETCH, and llvm::ISD::STORE.
| unsigned llvm::MemSDNode::getAddressSpace | ( | ) | const [inline] |
getAddressSpace - Return the address space for the associated pointer
Definition at line 963 of file SelectionDAGNodes.h.
References llvm::MachinePointerInfo::getAddrSpace(), and getPointerInfo().
| unsigned llvm::MemSDNode::getAlignment | ( | ) | const [inline] |
Definition at line 917 of file SelectionDAGNodes.h.
References llvm::MachineMemOperand::getAlignment(), and MMO.
Referenced by adjustSubwordCmp(), EltsFromConsecutiveLoads(), ExpandUnalignedLoad(), ExpandUnalignedStore(), llvm::SelectionDAG::getIndexedLoad(), lowerFP_TO_SINT_STORE(), PerformLOADCombine(), PerformSTORECombine(), PerformVMOVRRDCombine(), ShrinkLoadReplaceStoreWithStore(), llvm::TargetLowering::SimplifySetCC(), SkipLoadExtensionForVMULL(), and XFormVExtractWithShuffleIntoLoad().
| const SDValue& llvm::MemSDNode::getBasePtr | ( | ) | const [inline] |
Reimplemented in llvm::StoreSDNode, llvm::LoadSDNode, and llvm::AtomicSDNode.
Definition at line 976 of file SelectionDAGNodes.h.
References llvm::SDNode::getOpcode(), llvm::SDNode::getOperand(), and llvm::ISD::STORE.
| const SDValue& llvm::MemSDNode::getChain | ( | ) | const [inline] |
Definition at line 975 of file SelectionDAGNodes.h.
References llvm::SDNode::getOperand().
Referenced by adjustSubwordCmp(), EltsFromConsecutiveLoads(), ExpandUnalignedLoad(), ExpandUnalignedStore(), llvm::SelectionDAG::getIndexedLoad(), llvm::SelectionDAG::getIndexedStore(), llvm::SelectionDAG::isConsecutiveLoad(), isLoadIncOrDecStore(), lowerFP_TO_SINT_STORE(), lowerUnalignedIntStore(), llvm::PPCTargetLowering::PerformDAGCombine(), PerformLOADCombine(), PerformSINT_TO_FPCombine(), PerformSTORECombine(), PerformVMOVRRDCombine(), ShrinkLoadReplaceStoreWithStore(), llvm::TargetLowering::SimplifySetCC(), and SkipLoadExtensionForVMULL().
| MachineMemOperand* llvm::MemSDNode::getMemOperand | ( | ) | const [inline] |
getMemOperand - Return a MachineMemOperand object describing the memory reference performed by operation.
Definition at line 956 of file SelectionDAGNodes.h.
References MMO.
Referenced by CombineBaseUpdate(), CombineVLDDUP(), createLoadLR(), createStoreLR(), llvm::SelectionDAG::getIndexedStore(), llvm::PPCTargetLowering::PerformDAGCombine(), ReplaceINTRINSIC_W_CHAIN(), and ReplaceLoadVector().
| EVT llvm::MemSDNode::getMemoryVT | ( | ) | const [inline] |
getMemoryVT - Return the type of the in-memory value.
Definition at line 952 of file SelectionDAGNodes.h.
Referenced by AddNodeIDCustom(), adjustSubwordCmp(), CombineBaseUpdate(), CombineVLDDUP(), llvm::SelectionDAG::ComputeMaskedBits(), createLoadLR(), createStoreLR(), ExpandUnalignedLoad(), ExpandUnalignedStore(), llvm::SelectionDAG::getIndexedLoad(), llvm::SelectionDAG::getIndexedStore(), isLoadIncOrDecStore(), isValidIndexedLoad(), llvm::PPCTargetLowering::PerformDAGCombine(), PerformLOADCombine(), PerformSTORECombine(), ReplaceINTRINSIC_W_CHAIN(), ReplaceLoadVector(), llvm::TargetLowering::SimplifySetCC(), and SkipLoadExtensionForVMULL().
| AtomicOrdering llvm::MemSDNode::getOrdering | ( | ) | const [inline] |
Definition at line 934 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 914 of file SelectionDAGNodes.h.
References llvm::MachineMemOperand::getBaseAlignment(), and MMO.
| const MachinePointerInfo& llvm::MemSDNode::getPointerInfo | ( | ) | const [inline] |
Definition at line 958 of file SelectionDAGNodes.h.
References llvm::MachineMemOperand::getPointerInfo(), and MMO.
Referenced by AddNodeIDCustom(), adjustSubwordCmp(), EltsFromConsecutiveLoads(), ExpandUnalignedLoad(), ExpandUnalignedStore(), getAddressSpace(), llvm::SelectionDAG::getIndexedLoad(), llvm::SelectionDAG::getIndexedStore(), lowerFP_TO_SINT_STORE(), PerformLOADCombine(), PerformSTORECombine(), PerformVMOVRRDCombine(), ShrinkLoadReplaceStoreWithStore(), llvm::TargetLowering::SimplifySetCC(), and SkipLoadExtensionForVMULL().
| const MDNode* llvm::MemSDNode::getRanges | ( | ) | const [inline] |
Returns the Ranges that describes the dereference.
Definition at line 949 of file SelectionDAGNodes.h.
References llvm::MachineMemOperand::getRanges(), and MMO.
Referenced by llvm::SelectionDAG::ComputeMaskedBits().
| 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 924 of file SelectionDAGNodes.h.
References llvm::SDNode::SubclassData.
Referenced by AddNodeIDCustom(), and llvm::SelectionDAG::getIndexedStore().
| const Value* llvm::MemSDNode::getSrcValue | ( | ) | const [inline] |
Returns the SrcValue and offset that describes the location of the access.
Definition at line 942 of file SelectionDAGNodes.h.
References llvm::MachineMemOperand::getValue(), and MMO.
Referenced by getCodeAddrSpace().
| int64_t llvm::MemSDNode::getSrcValueOffset | ( | ) | const [inline] |
Definition at line 943 of file SelectionDAGNodes.h.
References llvm::MachineMemOperand::getOffset(), and MMO.
| SynchronizationScope llvm::MemSDNode::getSynchScope | ( | ) | const [inline] |
Definition at line 937 of file SelectionDAGNodes.h.
References llvm::SDNode::SubclassData.
| const MDNode* llvm::MemSDNode::getTBAAInfo | ( | ) | const [inline] |
Returns the TBAAInfo that describes the dereference.
Definition at line 946 of file SelectionDAGNodes.h.
References llvm::MachineMemOperand::getTBAAInfo(), and MMO.
Referenced by PerformSTORECombine().
| bool llvm::MemSDNode::isInvariant | ( | ) | const [inline] |
Definition at line 932 of file SelectionDAGNodes.h.
References llvm::SDNode::SubclassData.
Referenced by EltsFromConsecutiveLoads(), ExpandUnalignedLoad(), PerformLOADCombine(), PerformSTORECombine(), PerformVMOVRRDCombine(), and SkipLoadExtensionForVMULL().
| bool llvm::MemSDNode::isNonTemporal | ( | ) | const [inline] |
Definition at line 931 of file SelectionDAGNodes.h.
References llvm::SDNode::SubclassData.
Referenced by adjustSubwordCmp(), EltsFromConsecutiveLoads(), ExpandUnalignedLoad(), ExpandUnalignedStore(), llvm::SelectionDAG::getIndexedLoad(), isLoadIncOrDecStore(), lowerFP_TO_SINT_STORE(), MemSDNode(), PerformLOADCombine(), PerformSTORECombine(), PerformVMOVRRDCombine(), and SkipLoadExtensionForVMULL().
| bool llvm::MemSDNode::isVolatile | ( | ) | const [inline] |
Definition at line 930 of file SelectionDAGNodes.h.
References llvm::SDNode::SubclassData.
Referenced by adjustSubwordCmp(), EltsFromConsecutiveLoads(), ExpandUnalignedLoad(), ExpandUnalignedStore(), llvm::SelectionDAG::getIndexedLoad(), isCalleeLoad(), lowerFP_TO_SINT_STORE(), MemSDNode(), PerformLOADCombine(), PerformSINT_TO_FPCombine(), PerformSTORECombine(), PerformVMOVRRDCombine(), llvm::TargetLowering::SimplifySetCC(), SkipLoadExtensionForVMULL(), and XFormVExtractWithShuffleIntoLoad().
| bool llvm::MemSDNode::readMem | ( | ) | const [inline] |
Definition at line 910 of file SelectionDAGNodes.h.
References llvm::MachineMemOperand::isLoad(), and MMO.
| 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 971 of file SelectionDAGNodes.h.
References MMO, and llvm::MachineMemOperand::refineAlignment().
| bool llvm::MemSDNode::writeMem | ( | ) | const [inline] |
Definition at line 911 of file SelectionDAGNodes.h.
References llvm::MachineMemOperand::isStore(), and MMO.
MachineMemOperand* llvm::MemSDNode::MMO [protected] |
MMO - Memory reference information.
Definition at line 901 of file SelectionDAGNodes.h.
Referenced by getAlignment(), getMemOperand(), getOriginalAlignment(), getPointerInfo(), getRanges(), getSrcValue(), getSrcValueOffset(), getTBAAInfo(), MemSDNode(), readMem(), refineAlignment(), and writeMem().