LLVM 20.0.0git
|
The list scheduler. More...
#include "llvm/Transforms/Vectorize/SandboxVectorizer/Scheduler.h"
Public Member Functions | |
Scheduler (AAResults &AA, Context &Ctx) | |
~Scheduler () | |
bool | trySchedule (ArrayRef< Instruction * > Instrs) |
Tries to build a schedule that includes all of Instrs scheduled at the same scheduling cycle. | |
void | clear () |
Clear the scheduler's state, including the DAG. | |
void | dump (raw_ostream &OS) const |
LLVM_DUMP_METHOD void | dump () const |
The list scheduler.
Definition at line 111 of file Scheduler.h.
Definition at line 156 of file Scheduler.h.
|
inline |
Definition at line 157 of file Scheduler.h.
|
inline |
Clear the scheduler's state, including the DAG.
Definition at line 165 of file Scheduler.h.
References assert(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::clear(), llvm::sandboxir::DependencyGraph::clear(), llvm::sandboxir::ReadyListContainer::clear(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::empty(), llvm::sandboxir::DependencyGraph::empty(), and llvm::sandboxir::ReadyListContainer::empty().
Referenced by llvm::sandboxir::LegalityAnalysis::clear().
void llvm::sandboxir::Scheduler::dump | ( | ) | const |
Definition at line 244 of file Scheduler.cpp.
References llvm::dbgs(), and dump().
Referenced by dump().
void llvm::sandboxir::Scheduler::dump | ( | raw_ostream & | OS | ) | const |
Definition at line 240 of file Scheduler.cpp.
References llvm::sandboxir::ReadyListContainer::dump(), and OS.
bool llvm::sandboxir::Scheduler::trySchedule | ( | ArrayRef< Instruction * > | Instrs | ) |
Tries to build a schedule that includes all of Instrs
scheduled at the same scheduling cycle.
This essentially checks that there are no dependencies among Instrs
. This function may involve scheduling intermediate instructions or canceling and re-scheduling if needed. \Returns true on success, false otherwise.
Definition at line 189 of file Scheduler.cpp.
References llvm::all_of(), llvm::any_of(), assert(), llvm::ArrayRef< T >::begin(), llvm::drop_begin(), llvm::sandboxir::DependencyGraph::extend(), llvm::sandboxir::DependencyGraph::getInterval(), llvm::sandboxir::VecUtils::getLowest(), llvm::sandboxir::DependencyGraph::getNode(), I, llvm::sandboxir::ReadyListContainer::insert(), llvm_unreachable, and N.
Referenced by llvm::sandboxir::LegalityAnalysis::canVectorize().