class MemSDNode
Declaration
class MemSDNode : public SDNode { /* full declaration omitted */ };
Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1286
Inherits from: SDNode
Member Variables
- protected llvm::MachineMemOperand* MMO
- Memory reference information.
Inherited from SDNode:
Method Overview
- public MemSDNode(unsigned int Opc, unsigned int Order, const llvm::DebugLoc & dl, llvm::SDVTList VTs, llvm::EVT memvt, llvm::MachineMemOperand * MMO)
- public static bool classof(const llvm::SDNode * N)
- public llvm::AAMDNodes getAAInfo() const
- public unsigned int getAddressSpace() const
- public unsigned int getAlignment() const
- public const llvm::SDValue & getBasePtr() const
- public const llvm::SDValue & getChain() const
- public llvm::MachineMemOperand * getMemOperand() const
- public llvm::EVT getMemoryVT() const
- public llvm::AtomicOrdering getOrdering() const
- public unsigned int getOriginalAlignment() const
- public const llvm::MachinePointerInfo & getPointerInfo() const
- public const llvm::MDNode * getRanges() const
- public unsigned int getRawSubclassData() const
- public int64_t getSrcValueOffset() const
- public SyncScope::ID getSyncScopeID() const
- public bool isAtomic() const
- public bool isDereferenceable() const
- public bool isInvariant() const
- public bool isNonTemporal() const
- public bool isSimple() const
- public bool isUnordered() const
- public bool isVolatile() const
- public bool readMem() const
- public void refineAlignment(const llvm::MachineMemOperand * NewMMO)
- public bool writeMem() const
Inherited from SDNode:
- protected DropOperands
- public Profile
- public addUse
- public areOnlyUsersOf
- public dump
- public dump
- public dumpr
- public dumpr
- public dumprFull
- public dumprWithDepth
- public getConstantOperandAPInt
- public getConstantOperandVal
- public getDebugLoc
- public getFlags
- public getGluedNode
- public getGluedUser
- public getHasDebugValue
- public getIROrder
- public getIndexedModeName
- public getMachineOpcode
- public getMaxNumOperands
- public getNodeId
- public getNumOperands
- public getNumValues
- public getOpcode
- public getOperand
- public getOperationName
- protected getSDVTList
- public getSimpleValueType
- public getVTList
- public getValueSizeInBits
- public getValueType
- public hasAnyUseOfValue
- public hasNUsesOfValue
- public hasOneUse
- public hasPredecessor
- public hasPredecessorHelper
- public intersectFlagsWith
- public isDivergent
- public isFast
- public isMachineOpcode
- public isMemIntrinsic
- public isOnlyUserOf
- public isOperandOf
- public isPredecessorOf
- public isStrictFPOpcode
- public isTargetMemoryOpcode
- public isTargetOpcode
- public isTargetStrictFPOpcode
- public isUndef
- public op_begin
- public op_end
- public op_values
- public ops
- public print
- public print_details
- public print_types
- public printr
- public printrFull
- public printrWithDepth
- public setDebugLoc
- public setFlags
- public setHasDebugValue
- public setIROrder
- public setNodeId
- public use_begin
- public use_empty
- public use_end
- public use_size
- public uses
- public uses
- public value_begin
- public value_end
Inherited from FoldingSetBase::Node:
Methods
¶MemSDNode(unsigned int Opc,
unsigned int Order,
const llvm::DebugLoc& dl,
llvm::SDVTList VTs,
llvm::EVT memvt,
llvm::MachineMemOperand* MMO)
MemSDNode(unsigned int Opc,
unsigned int Order,
const llvm::DebugLoc& dl,
llvm::SDVTList VTs,
llvm::EVT memvt,
llvm::MachineMemOperand* MMO)
Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1296
Parameters
- unsigned int Opc
- unsigned int Order
- const llvm::DebugLoc& dl
- llvm::SDVTList VTs
- llvm::EVT memvt
- llvm::MachineMemOperand* MMO
¶static bool classof(const llvm::SDNode* N)
static bool classof(const llvm::SDNode* N)
Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1392
Parameters
- const llvm::SDNode* N
¶llvm::AAMDNodes getAAInfo() const
llvm::AAMDNodes getAAInfo() const
Description
Returns the AA info that describes the dereference.
Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1338
¶unsigned int getAddressSpace() const
unsigned int getAddressSpace() const
Description
Return the address space for the associated pointer
Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1374
¶unsigned int getAlignment() const
unsigned int getAlignment() const
Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1306
¶const llvm::SDValue& getBasePtr() const
const llvm::SDValue& getBasePtr() const
Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1387
¶const llvm::SDValue& getChain() const
const llvm::SDValue& getChain() const
Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1386
¶llvm::MachineMemOperand* getMemOperand() const
llvm::MachineMemOperand* getMemOperand() const
Description
Return a MachineMemOperand object describing the memory reference performed by operation.
Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1367
¶llvm::EVT getMemoryVT() const
llvm::EVT getMemoryVT() const
Description
Return the type of the in-memory value.
Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1363
¶llvm::AtomicOrdering getOrdering() const
llvm::AtomicOrdering getOrdering() const
Description
Return the atomic ordering requirements for this memory operation. For cmpxchg atomic operations, return the atomic ordering requirements when store occurs.
Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1349
¶unsigned int getOriginalAlignment() const
unsigned int getOriginalAlignment() const
Description
Returns alignment and volatility of the memory access
Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1303
¶const llvm::MachinePointerInfo& getPointerInfo()
const
const llvm::MachinePointerInfo& getPointerInfo()
const
Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1369
¶const llvm::MDNode* getRanges() const
const llvm::MDNode* getRanges() const
Description
Returns the Ranges that describes the dereference.
Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1341
¶unsigned int getRawSubclassData() const
unsigned int getRawSubclassData() const
Description
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.
Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1316
¶int64_t getSrcValueOffset() const
int64_t getSrcValueOffset() const
Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1335
¶SyncScope::ID getSyncScopeID() const
SyncScope::ID getSyncScopeID() const
Description
Returns the synchronization scope ID for this memory operation.
Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1344
¶bool isAtomic() const
bool isAtomic() const
Description
Return true if the memory operation ordering is Unordered or higher.
Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1352
¶bool isDereferenceable() const
bool isDereferenceable() const
Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1331
¶bool isInvariant() const
bool isInvariant() const
Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1332
¶bool isNonTemporal() const
bool isNonTemporal() const
Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1330
¶bool isSimple() const
bool isSimple() const
Description
Returns true if the memory operation is neither atomic or volatile.
Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1360
¶bool isUnordered() const
bool isUnordered() const
Description
Returns true if the memory operation doesn't imply any ordering constraints on surrounding memory operations beyond the normal memory aliasing rules.
Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1357
¶bool isVolatile() const
bool isVolatile() const
Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1329
¶bool readMem() const
bool readMem() const
Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1299
¶void refineAlignment(
const llvm::MachineMemOperand* NewMMO)
void refineAlignment(
const llvm::MachineMemOperand* NewMMO)
Description
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.
Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1382
Parameters
- const llvm::MachineMemOperand* NewMMO
¶bool writeMem() const
bool writeMem() const
Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1300