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


Public Member Functions | |
| MemSDNode (unsigned Opc, unsigned Order, DebugLoc dl, SDVTList VTs, EVT MemoryVT, MachineMemOperand *MMO) | |
| MemSDNode (unsigned Opc, unsigned Order, 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. More... | |
| 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. More... | |
| int64_t | getSrcValueOffset () const |
| const MDNode * | getTBAAInfo () const |
| Returns the TBAAInfo that describes the dereference. More... | |
| const MDNode * | getRanges () const |
| Returns the Ranges that describes the dereference. More... | |
| EVT | getMemoryVT () const |
| getMemoryVT - Return the type of the in-memory value. More... | |
| MachineMemOperand * | getMemOperand () const |
| const MachinePointerInfo & | getPointerInfo () const |
| unsigned | getAddressSpace () const |
| getAddressSpace - Return the address space for the associated pointer More... | |
| void | refineAlignment (const MachineMemOperand *NewMMO) |
| const SDValue & | getChain () const |
| const SDValue & | getBasePtr () const |
Public Member Functions inherited from llvm::SDNode | |
| unsigned | getOpcode () const |
| bool | isTargetOpcode () const |
| bool | isTargetMemoryOpcode () const |
| bool | isMachineOpcode () const |
| unsigned | getMachineOpcode () const |
| bool | getHasDebugValue () const |
| getHasDebugValue - get this bit. More... | |
| void | setHasDebugValue (bool b) |
| setHasDebugValue - set this bit. More... | |
| bool | use_empty () const |
| bool | hasOneUse () const |
| size_t | use_size () const |
| int | getNodeId () const |
| void | setNodeId (int Id) |
| setNodeId - Set unique node id. More... | |
| unsigned | getIROrder () const |
| void | setIROrder (unsigned Order) |
| const DebugLoc | getDebugLoc () const |
| getDebugLoc - Return the source location info. More... | |
| void | setDebugLoc (const DebugLoc dl) |
| use_iterator | use_begin () const |
| bool | hasNUsesOfValue (unsigned NUses, unsigned Value) const |
| bool | hasAnyUseOfValue (unsigned Value) const |
| bool | isOnlyUserOf (SDNode *N) const |
| bool | isOperandOf (SDNode *N) const |
| bool | isPredecessorOf (const SDNode *N) const |
| bool | hasPredecessor (const SDNode *N) const |
| bool | hasPredecessorHelper (const SDNode *N, SmallPtrSet< const SDNode *, 32 > &Visited, SmallVectorImpl< const SDNode * > &Worklist) const |
| unsigned | getNumOperands () const |
| uint64_t | getConstantOperandVal (unsigned Num) const |
| const SDValue & | getOperand (unsigned Num) const |
| op_iterator | op_begin () const |
| op_iterator | op_end () const |
| SDVTList | getVTList () const |
| SDNode * | getGluedNode () const |
| const SDNode * | getGluedMachineNode () const |
| SDNode * | getGluedUser () const |
| unsigned | getNumValues () const |
| EVT | getValueType (unsigned ResNo) const |
| MVT | getSimpleValueType (unsigned ResNo) const |
| unsigned | getValueSizeInBits (unsigned ResNo) const |
| value_iterator | value_begin () const |
| value_iterator | value_end () const |
| std::string | getOperationName (const SelectionDAG *G=0) const |
| 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=0) const |
| void | printr (raw_ostream &OS, const SelectionDAG *G=0) const |
| void | printrFull (raw_ostream &O, const SelectionDAG *G=0) const |
| void | printrWithDepth (raw_ostream &O, const SelectionDAG *G=0, unsigned depth=100) const |
| void | dump () const |
| dump - Dump this node, for debugging. More... | |
| void | dumpr () const |
| dumpr - Dump (recursively) this node and its use-def subgraph. More... | |
| void | dump (const SelectionDAG *G) const |
| void | dumpr (const SelectionDAG *G) const |
| void | dumprFull (const SelectionDAG *G=0) const |
| void | dumprWithDepth (const SelectionDAG *G=0, unsigned depth=100) const |
| void | Profile (FoldingSetNodeID &ID) const |
| void | addUse (SDUse &U) |
Public Member Functions inherited from llvm::FoldingSetImpl::Node | |
| Node () | |
| void * | getNextInBucket () const |
| void | SetNextInBucket (void *N) |
Public Member Functions inherited from llvm::ilist_node< SDNode > | |
| SDNode * | getPrevNode () |
| Get the previous node, or 0 for the list head. More... | |
| const SDNode * | getPrevNode () const |
| Get the previous node, or 0 for the list head. More... | |
| SDNode * | getNextNode () |
| Get the next node, or 0 for the list tail. More... | |
| const SDNode * | getNextNode () const |
| Get the next node, or 0 for the list tail. 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 const char * | getIndexedModeName (ISD::MemIndexedMode AM) |
Protected Attributes | |
| MachineMemOperand * | MMO |
| MMO - Memory reference information. More... | |
Protected Attributes inherited from llvm::SDNode | |
| uint16_t | SubclassData: 14 |
Additional Inherited Members | |
Public Types inherited from llvm::SDNode | |
| typedef SDUse * | op_iterator |
| typedef const EVT * | value_iterator |
Protected Member Functions inherited from llvm::SDNode | |
| SDNode (unsigned Opc, unsigned Order, const DebugLoc dl, SDVTList VTs, const SDValue *Ops, unsigned NumOps) | |
| SDNode (unsigned Opc, unsigned Order, const DebugLoc dl, SDVTList VTs) | |
| void | InitOperands (SDUse *Ops, const SDValue &Op0) |
| InitOperands - Initialize the operands list of this with 1 operand. More... | |
| void | InitOperands (SDUse *Ops, const SDValue &Op0, const SDValue &Op1) |
| InitOperands - Initialize the operands list of this with 2 operands. More... | |
| void | InitOperands (SDUse *Ops, const SDValue &Op0, const SDValue &Op1, const SDValue &Op2) |
| InitOperands - Initialize the operands list of this with 3 operands. More... | |
| void | InitOperands (SDUse *Ops, const SDValue &Op0, const SDValue &Op1, const SDValue &Op2, const SDValue &Op3) |
| InitOperands - Initialize the operands list of this with 4 operands. More... | |
| void | InitOperands (SDUse *Ops, const SDValue *Vals, unsigned N) |
| InitOperands - Initialize the operands list of this with N operands. More... | |
| void | DropOperands () |
Protected Member Functions inherited from llvm::ilist_node< SDNode > | |
| ilist_node () | |
Static Protected Member Functions inherited from llvm::SDNode | |
| static SDVTList | getSDVTList (EVT VT) |
Abstact virtual class for operations for memory operations.
Definition at line 971 of file SelectionDAGNodes.h.
| MemSDNode::MemSDNode | ( | unsigned | Opc, |
| unsigned | Order, | ||
| DebugLoc | dl, | ||
| SDVTList | VTs, | ||
| EVT | MemoryVT, | ||
| MachineMemOperand * | MMO | ||
| ) |
Definition at line 6059 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, | ||
| const SDValue * | Ops, | ||
| unsigned | NumOps, | ||
| EVT | MemoryVT, | ||
| MachineMemOperand * | MMO | ||
| ) |
Definition at line 6070 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.
Definition at line 1059 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.
|
inline |
getAddressSpace - Return the address space for the associated pointer
Definition at line 1041 of file SelectionDAGNodes.h.
References llvm::MachinePointerInfo::getAddrSpace(), and getPointerInfo().
Referenced by ExpandUnalignedStore(), llvm::SITargetLowering::LowerOperation(), and llvm::AMDGPUTargetLowering::LowerSTORE().
|
inline |
Definition at line 995 of file SelectionDAGNodes.h.
References llvm::MachineMemOperand::getAlignment(), and MMO.
Referenced by adjustSubwordCmp(), EltsFromConsecutiveLoads(), ExpandUnalignedLoad(), ExpandUnalignedStore(), llvm::SelectionDAG::getIndexedLoad(), LowerF128Load(), LowerF128Store(), lowerFP_TO_SINT_STORE(), llvm::MipsTargetLowering::lowerLOAD(), llvm::MipsTargetLowering::lowerSTORE(), llvm::PPCTargetLowering::PerformDAGCombine(), PerformLOADCombine(), PerformSTORECombine(), PerformVMOVRRDCombine(), ShrinkLoadReplaceStoreWithStore(), llvm::TargetLowering::SimplifySetCC(), SkipLoadExtensionForVMULL(), llvm::AMDGPUTargetLowering::SplitVectorLoad(), llvm::AMDGPUTargetLowering::SplitVectorStore(), and XFormVExtractWithShuffleIntoLoad().
|
inline |
Definition at line 1054 of file SelectionDAGNodes.h.
References llvm::SDNode::getOpcode(), llvm::SDNode::getOperand(), and llvm::ISD::STORE.
Referenced by isConsecutiveLS().
|
inline |
Definition at line 1053 of file SelectionDAGNodes.h.
References llvm::SDNode::getOperand().
Referenced by adjustSubwordCmp(), EltsFromConsecutiveLoads(), ExpandUnalignedLoad(), ExpandUnalignedStore(), findConsecutiveLoad(), llvm::SelectionDAG::getIndexedLoad(), llvm::SelectionDAG::getIndexedStore(), llvm::SelectionDAG::isConsecutiveLoad(), isLoadIncOrDecStore(), LowerF128Load(), LowerF128Store(), lowerFP_TO_SINT_STORE(), llvm::MipsTargetLowering::lowerLOAD(), llvm::SITargetLowering::LowerOperation(), lowerUnalignedIntStore(), llvm::PPCTargetLowering::PerformDAGCombine(), PerformLOADCombine(), PerformSINT_TO_FPCombine(), PerformSTORECombine(), PerformVMOVRRDCombine(), ShrinkLoadReplaceStoreWithStore(), llvm::TargetLowering::SimplifySetCC(), SkipLoadExtensionForVMULL(), llvm::AMDGPUTargetLowering::SplitVectorLoad(), and llvm::AMDGPUTargetLowering::SplitVectorStore().
|
inline |
getMemOperand - Return a MachineMemOperand object describing the memory reference performed by operation.
Definition at line 1034 of file SelectionDAGNodes.h.
References MMO.
Referenced by CombineBaseUpdate(), CombineVLDDUP(), createLoadLR(), createStoreLR(), ExpandUnalignedLoad(), llvm::SelectionDAG::getIndexedStore(), llvm::PPCTargetLowering::PerformDAGCombine(), ReplaceINTRINSIC_W_CHAIN(), ReplaceLoadVector(), llvm::AMDGPUTargetLowering::SplitVectorLoad(), and llvm::AMDGPUTargetLowering::SplitVectorStore().
|
inline |
getMemoryVT - Return the type of the in-memory value.
Definition at line 1030 of file SelectionDAGNodes.h.
Referenced by AddNodeIDCustom(), adjustSubwordCmp(), CombineBaseUpdate(), CombineVLDDUP(), llvm::SelectionDAG::ComputeMaskedBits(), createLoadLR(), createStoreLR(), ExpandUnalignedLoad(), ExpandUnalignedStore(), findConsecutiveLoad(), llvm::SelectionDAG::getIndexedLoad(), llvm::SelectionDAG::getIndexedStore(), isConsecutiveLS(), isLoadIncOrDecStore(), isNaturalMemoryOperand(), isValidIndexedLoad(), llvm::MipsTargetLowering::lowerLOAD(), llvm::MipsTargetLowering::lowerSTORE(), llvm::PPCTargetLowering::PerformDAGCombine(), PerformLOADCombine(), PerformSTORECombine(), ReplaceINTRINSIC_W_CHAIN(), ReplaceLoadVector(), llvm::TargetLowering::SimplifySetCC(), SkipLoadExtensionForVMULL(), llvm::AMDGPUTargetLowering::SplitVectorLoad(), and llvm::AMDGPUTargetLowering::SplitVectorStore().
|
inline |
Definition at line 1012 of file SelectionDAGNodes.h.
References llvm::SDNode::SubclassData.
|
inline |
Returns alignment and volatility of the memory access.
Definition at line 992 of file SelectionDAGNodes.h.
References llvm::MachineMemOperand::getBaseAlignment(), and MMO.
|
inline |
Definition at line 1036 of file SelectionDAGNodes.h.
References llvm::MachineMemOperand::getPointerInfo(), and MMO.
Referenced by AddNodeIDCustom(), adjustSubwordCmp(), EltsFromConsecutiveLoads(), ExpandUnalignedLoad(), ExpandUnalignedStore(), getAddressSpace(), llvm::SelectionDAG::getIndexedLoad(), llvm::SelectionDAG::getIndexedStore(), LowerF128Load(), lowerFP_TO_SINT_STORE(), llvm::PPCTargetLowering::PerformDAGCombine(), PerformLOADCombine(), PerformSTORECombine(), PerformVMOVRRDCombine(), ShrinkLoadReplaceStoreWithStore(), llvm::TargetLowering::SimplifySetCC(), and SkipLoadExtensionForVMULL().
|
inline |
Returns the Ranges that describes the dereference.
Definition at line 1027 of file SelectionDAGNodes.h.
References llvm::MachineMemOperand::getRanges(), and MMO.
Referenced by llvm::SelectionDAG::ComputeMaskedBits().
|
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 1002 of file SelectionDAGNodes.h.
References llvm::SDNode::SubclassData.
Referenced by AddNodeIDCustom(), and llvm::SelectionDAG::getIndexedStore().
|
inline |
Returns the SrcValue and offset that describes the location of the access.
Definition at line 1020 of file SelectionDAGNodes.h.
References llvm::MachineMemOperand::getValue(), and MMO.
Referenced by getCodeAddrSpace().
|
inline |
Definition at line 1021 of file SelectionDAGNodes.h.
References llvm::MachineMemOperand::getOffset(), and MMO.
|
inline |
Definition at line 1015 of file SelectionDAGNodes.h.
References llvm::SDNode::SubclassData.
|
inline |
Returns the TBAAInfo that describes the dereference.
Definition at line 1024 of file SelectionDAGNodes.h.
References llvm::MachineMemOperand::getTBAAInfo(), and MMO.
Referenced by ExpandUnalignedLoad(), ExpandUnalignedStore(), and PerformSTORECombine().
|
inline |
Definition at line 1010 of file SelectionDAGNodes.h.
References llvm::SDNode::SubclassData.
Referenced by EltsFromConsecutiveLoads(), ExpandUnalignedLoad(), llvm::PPCTargetLowering::PerformDAGCombine(), PerformLOADCombine(), PerformSTORECombine(), PerformVMOVRRDCombine(), and SkipLoadExtensionForVMULL().
|
inline |
Definition at line 1009 of file SelectionDAGNodes.h.
References llvm::SDNode::SubclassData.
Referenced by adjustSubwordCmp(), EltsFromConsecutiveLoads(), ExpandUnalignedLoad(), ExpandUnalignedStore(), llvm::SelectionDAG::getIndexedLoad(), isLoadIncOrDecStore(), lowerFP_TO_SINT_STORE(), MemSDNode(), llvm::PPCTargetLowering::PerformDAGCombine(), PerformLOADCombine(), PerformSTORECombine(), PerformVMOVRRDCombine(), SkipLoadExtensionForVMULL(), llvm::AMDGPUTargetLowering::SplitVectorLoad(), and llvm::AMDGPUTargetLowering::SplitVectorStore().
|
inline |
Definition at line 1008 of file SelectionDAGNodes.h.
References llvm::SDNode::SubclassData.
Referenced by adjustSubwordCmp(), EltsFromConsecutiveLoads(), ExpandUnalignedLoad(), ExpandUnalignedStore(), llvm::SelectionDAG::getIndexedLoad(), isCalleeLoad(), lowerFP_TO_SINT_STORE(), MemSDNode(), llvm::PPCTargetLowering::PerformDAGCombine(), PerformLOADCombine(), PerformSINT_TO_FPCombine(), PerformSTORECombine(), PerformVMOVRRDCombine(), llvm::TargetLowering::SimplifySetCC(), SkipLoadExtensionForVMULL(), llvm::AMDGPUTargetLowering::SplitVectorLoad(), llvm::AMDGPUTargetLowering::SplitVectorStore(), and XFormVExtractWithShuffleIntoLoad().
|
inline |
Definition at line 988 of file SelectionDAGNodes.h.
References llvm::MachineMemOperand::isLoad(), and MMO.
|
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 1049 of file SelectionDAGNodes.h.
References MMO, and llvm::MachineMemOperand::refineAlignment().
Referenced by llvm::PPCTargetLowering::PerformDAGCombine().
|
inline |
Definition at line 989 of file SelectionDAGNodes.h.
References llvm::MachineMemOperand::isStore(), and MMO.
|
protected |
MMO - Memory reference information.
Definition at line 978 of file SelectionDAGNodes.h.
Referenced by getAlignment(), getMemOperand(), getOriginalAlignment(), getPointerInfo(), getRanges(), getSrcValue(), getSrcValueOffset(), getTBAAInfo(), MemSDNode(), readMem(), refineAlignment(), and writeMem().