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:
- include/llvm/Transforms/Vectorize/SandboxVectorizer/DependencyGraph.h
- lib/Transforms/Vectorize/SandboxVectorizer/DependencyGraph.cpp