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().