class MachineSDNode

Declaration

class MachineSDNode : public SDNode { /* full declaration omitted */ };

Description

An SDNode that represents everything that will be needed to construct a MachineInstr. These nodes are created during the instruction selection proper phase. Note that the only supported way to set the `memoperands` is by calling the `SelectionDAG::setNodeMemRefs` function as the memory management happens inside the DAG rather than in the node.

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

Inherits from: SDNode

Member Variables

private PointerUnion<llvm::MachineMemOperand*, llvm::MachineMemOperand**> MemRefs = {}
private int NumMemRefs = 0

Inherited from SDNode:

protected
public PersistentId

Method Overview

Inherited from SDNode:

Inherited from FoldingSetBase::Node:

Methods

MachineSDNode(unsigned int Opc,
              unsigned int Order,
              const llvm::DebugLoc& DL,
              llvm::SDVTList VTs)

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

Parameters

unsigned int Opc
unsigned int Order
const llvm::DebugLoc& DL
llvm::SDVTList VTs

static bool classof(const llvm::SDNode* N)

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

Parameters

const llvm::SDNode* N

void clearMemRefs()

Description

Clear out the memory reference descriptor list.

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

ArrayRef<llvm::MachineMemOperand*> memoperands()
    const

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

llvm::MachineSDNode::mmo_iterator
memoperands_begin() const

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

bool memoperands_empty() const

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

llvm::MachineSDNode::mmo_iterator
memoperands_end() const

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