LLVM 20.0.0git
Public Member Functions | List of all members
llvm::sandboxir::Scheduler Class Reference

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
 

Detailed Description

The list scheduler.

Definition at line 111 of file Scheduler.h.

Constructor & Destructor Documentation

◆ Scheduler()

llvm::sandboxir::Scheduler::Scheduler ( AAResults AA,
Context Ctx 
)
inline

Definition at line 154 of file Scheduler.h.

◆ ~Scheduler()

llvm::sandboxir::Scheduler::~Scheduler ( )
inline

Definition at line 155 of file Scheduler.h.

Member Function Documentation

◆ clear()

void llvm::sandboxir::Scheduler::clear ( )
inline

Clear the scheduler's state, including the DAG.

Definition at line 163 of file Scheduler.h.

References llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::clear(), and llvm::sandboxir::DependencyGraph::clear().

Referenced by llvm::sandboxir::LegalityAnalysis::clear().

◆ dump() [1/2]

void llvm::sandboxir::Scheduler::dump ( ) const

Definition at line 229 of file Scheduler.cpp.

References llvm::dbgs(), and dump().

Referenced by dump().

◆ dump() [2/2]

void llvm::sandboxir::Scheduler::dump ( raw_ostream OS) const

Definition at line 225 of file Scheduler.cpp.

References llvm::sandboxir::ReadyListContainer::dump(), and OS.

◆ trySchedule()

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 187 of file Scheduler.cpp.

References llvm::all_of(), assert(), llvm::ArrayRef< T >::begin(), llvm::drop_begin(), llvm::sandboxir::DependencyGraph::extend(), llvm::sandboxir::VecUtils::getLowest(), llvm::sandboxir::DependencyGraph::getNode(), I, llvm::sandboxir::ReadyListContainer::insert(), llvm_unreachable, and N.

Referenced by llvm::sandboxir::LegalityAnalysis::canVectorize().


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