|
LLVM 22.0.0git
|
The nodes that need to be scheduled back-to-back in a single scheduling cycle form a SchedBundle. More...
#include "llvm/Transforms/Vectorize/SandboxVectorizer/Scheduler.h"
Public Types | |
| using | ContainerTy = SmallVector<DGNode *, 4> |
| using | iterator = ContainerTy::iterator |
| using | const_iterator = ContainerTy::const_iterator |
Public Member Functions | |
| SchedBundle ()=default | |
| SchedBundle (ContainerTy &&Nodes) | |
| SchedBundle (const SchedBundle &Other)=delete | |
| Copy CTOR (unimplemented). | |
| SchedBundle & | operator= (const SchedBundle &Other)=delete |
| Copy Assignment (unimplemented). | |
| ~SchedBundle () | |
| bool | empty () const |
| bool | isSingleton () const |
| Singleton bundles are created when scheduling instructions temporarily to fill in the schedule until we schedule the vector bundle. | |
| DGNode * | back () const |
| iterator | begin () |
| iterator | end () |
| const_iterator | begin () const |
| const_iterator | end () const |
| LLVM_ABI DGNode * | getTop () const |
| \Returns the bundle node that comes before the others in program order. | |
| LLVM_ABI DGNode * | getBot () const |
| \Returns the bundle node that comes after the others in program order. | |
| LLVM_ABI void | cluster (BasicBlock::iterator Where) |
Move all bundle instructions to Where back-to-back. | |
| bool | ready () const |
| \Returns true if all nodes in the bundle are ready. | |
| void | dump (raw_ostream &OS) const |
| LLVM_DUMP_METHOD void | dump () const |
Friends | |
| void | DGNode::setSchedBundle (SchedBundle &) |
The nodes that need to be scheduled back-to-back in a single scheduling cycle form a SchedBundle.
Definition at line 108 of file Scheduler.h.
Definition at line 141 of file Scheduler.h.
| using llvm::sandboxir::SchedBundle::ContainerTy = SmallVector<DGNode *, 4> |
Definition at line 110 of file Scheduler.h.
Definition at line 140 of file Scheduler.h.
|
default |
Referenced by DGNode::setSchedBundle, operator=(), and SchedBundle().
|
inline |
Definition at line 122 of file Scheduler.h.
References llvm::move(), and N.
|
delete |
Copy CTOR (unimplemented).
References llvm::Other, and SchedBundle().
|
inline |
Definition at line 130 of file Scheduler.h.
References N.
|
inline |
Definition at line 139 of file Scheduler.h.
|
inline |
Definition at line 142 of file Scheduler.h.
|
inline |
Definition at line 144 of file Scheduler.h.
| void llvm::sandboxir::SchedBundle::cluster | ( | BasicBlock::iterator | Where | ) |
Move all bundle instructions to Where back-to-back.
Definition at line 33 of file Scheduler.cpp.
| void llvm::sandboxir::SchedBundle::dump | ( | ) | const |
Definition at line 48 of file Scheduler.cpp.
References llvm::dbgs(), and dump().
Referenced by dump().
| void llvm::sandboxir::SchedBundle::dump | ( | raw_ostream & | OS | ) | const |
Definition at line 43 of file Scheduler.cpp.
References N.
|
inline |
Definition at line 134 of file Scheduler.h.
|
inline |
Definition at line 143 of file Scheduler.h.
|
inline |
Definition at line 145 of file Scheduler.h.
| DGNode * llvm::sandboxir::SchedBundle::getBot | ( | ) | const |
\Returns the bundle node that comes after the others in program order.
Definition at line 24 of file Scheduler.cpp.
References llvm::sandboxir::Instruction::comesBefore(), llvm::drop_begin(), llvm::sandboxir::DGNode::getInstruction(), and N.
| DGNode * llvm::sandboxir::SchedBundle::getTop | ( | ) | const |
\Returns the bundle node that comes before the others in program order.
Definition at line 15 of file Scheduler.cpp.
References llvm::drop_begin(), llvm::sandboxir::DGNode::getInstruction(), and N.
|
inline |
Singleton bundles are created when scheduling instructions temporarily to fill in the schedule until we schedule the vector bundle.
These are non-vector bundles containing just a single instruction.
Definition at line 138 of file Scheduler.h.
|
delete |
Copy Assignment (unimplemented).
References llvm::Other, and SchedBundle().
|
inline |
\Returns true if all nodes in the bundle are ready.
Definition at line 153 of file Scheduler.h.
References llvm::all_of(), and N.
|
friend |
References SchedBundle().