LLVM: llvm::sandboxir::MemDGNode Class Reference (original) (raw)

A DependencyGraph Node for instructions that may read/write memory, or have some ordering constraints, like with stacksave/stackrestore and alloca/inalloca. More...

#include "[llvm/Transforms/Vectorize/SandboxVectorizer/DependencyGraph.h](DependencyGraph%5F8h%5Fsource.html)"

Public Member Functions
MemDGNode (Instruction *I)
iterator preds_begin (DependencyGraph &DAG) override
iterator preds_end (DependencyGraph &DAG) override
MemDGNode * getPrevNode () const
\Returns the previous Mem DGNode in instruction order.
MemDGNode * getNextNode () const
\Returns the next Mem DGNode in instruction order.
void addMemPred (MemDGNode *PredN)
Adds the mem dependency edge PredN->this.
void removeMemPred (MemDGNode *PredN)
Removes the memory dependency PredN->this.
bool hasMemPred (DGNode *N) const
\Returns true if there is a memory dependency N->this.
iterator_range< DenseSet< MemDGNode * >::const_iterator > memPreds () const
\Returns all memory dependency predecessors. Used by tests.
iterator_range< DenseSet< MemDGNode * >::const_iterator > memSuccs () const
\Returns all memory dependency successors.
void print (raw_ostream &OS, bool PrintDeps=true) const override
Public Member Functions inherited from llvm::sandboxir::DGNode
DGNode (Instruction *I)
DGNode (const DGNode &Other)=delete
virtual ~DGNode ()
unsigned getNumUnscheduledSuccs () const
\Returns the number of unscheduled successors.
void decrUnscheduledSuccs ()
void incrUnscheduledSuccs ()
void resetScheduleState ()
bool ready () const
\Returns true if all dependent successors have been scheduled.
bool scheduled () const
\Returns true if this node has been scheduled.
void setScheduled (bool NewVal)
SchedBundle * getSchedBundle () const
\Returns the scheduling bundle that this node belongs to, or nullptr.
bool comesBefore (const DGNode *Other)
\Returns true if this is before Other in program order.
iterator preds_begin (DependencyGraph &DAG) const
iterator preds_end (DependencyGraph &DAG) const
iterator_range< iterator > preds (DependencyGraph &DAG) const
\Returns a range of DAG predecessors nodes.
Instruction * getInstruction () const
LLVM_DUMP_METHOD void dump () const
Static Public Member Functions
static bool classof (const DGNode *Other)
Static Public Member Functions inherited from llvm::sandboxir::DGNode
static bool isStackSaveOrRestoreIntrinsic (Instruction *I)
static bool isMemIntrinsic (IntrinsicInst *I)
\Returns true if intrinsic I touches memory.
static bool isMemDepCandidate (Instruction *I)
We consider I as a Memory Dependency Candidate instruction if it reads/write memory or if it has side-effects.
static bool isFenceLike (Instruction *I)
\Returns true if I is fence like. It excludes non-mem intrinsics.
static bool isMemDepNodeCandidate (Instruction *I)
\Returns true if I is a memory dependency candidate instruction.
Friends
class PredIterator
class DependencyGraph
Additional Inherited Members
Public Types inherited from llvm::sandboxir::DGNode
using iterator = PredIterator
Protected Member Functions inherited from llvm::sandboxir::DGNode
void setSchedBundle (SchedBundle &SB)
void clearSchedBundle ()
DGNode (Instruction *I, DGNodeID ID)
Protected Attributes inherited from llvm::sandboxir::DGNode
Instruction * I
DGNodeID SubclassID
For isa/dyn_cast etc.
unsigned UnscheduledSuccs = 0
The number of unscheduled successors.
bool Scheduled = false
This is true if this node has been scheduled.
SchedBundle * SB = nullptr
The scheduler bundle that this node belongs to.

A DependencyGraph Node for instructions that may read/write memory, or have some ordering constraints, like with stacksave/stackrestore and alloca/inalloca.

Definition at line 221 of file DependencyGraph.h.

llvm::sandboxir::MemDGNode::MemDGNode ( Instruction * I) inline

addMemPred()

void llvm::sandboxir::MemDGNode::addMemPred ( MemDGNode * PredN) inline

classof()

bool llvm::sandboxir::MemDGNode::classof ( const DGNode * Other) inlinestatic

getNextNode()

MemDGNode * llvm::sandboxir::MemDGNode::getNextNode ( ) const inline

getPrevNode()

MemDGNode * llvm::sandboxir::MemDGNode::getPrevNode ( ) const inline

hasMemPred()

bool llvm::sandboxir::MemDGNode::hasMemPred ( DGNode * N) const inline

memPreds()

memSuccs()

preds_begin()

preds_end()

print()

void llvm::sandboxir::MemDGNode::print ( raw_ostream & OS, bool PrintDeps = true ) const overridevirtual

removeMemPred()

void llvm::sandboxir::MemDGNode::removeMemPred ( MemDGNode * PredN) inline

DependencyGraph

PredIterator


The documentation for this class was generated from the following files: