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:

protected
public PersistentId

Method Overview

Inherited from SDNode:

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)

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)

Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1392

Parameters

const llvm::SDNode* N

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

Description

Return the address space for the associated pointer

Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1374

unsigned int getAlignment() const

Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1306

const llvm::SDValue& getBasePtr() const

Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1387

const llvm::SDValue& getChain() const

Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1386

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

Description

Return the type of the in-memory value.

Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1363

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

Description

Returns alignment and volatility of the memory access

Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1303

const llvm::MachinePointerInfo& getPointerInfo()
    const

Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1369

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

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

Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1335

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

Description

Return true if the memory operation ordering is Unordered or higher.

Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1352

bool isDereferenceable() const

Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1331

bool isInvariant() const

Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1332

bool isNonTemporal() const

Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1330

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

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

Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1329

bool readMem() const

Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1299

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

Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1300