LLVM 24.0.0git
llvm::sandboxir::Scheduler Class Reference

The list scheduler. More...

#include "llvm/Transforms/Vectorize/SandboxVectorizer/Scheduler.h"

Public Member Functions

 Scheduler (AAResults &AA, Context &Ctx, SchedDirection Dir)
 ~Scheduler ()
LLVM_ABI bool trySchedule (BndlRef< 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

Friends

class SchedulerInternalsAttorney
class DependencyGraph

Detailed Description

The list scheduler.

Definition at line 302 of file Scheduler.h.

Constructor & Destructor Documentation

◆ Scheduler()

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

Definition at line 380 of file Scheduler.h.

References I.

◆ ~Scheduler()

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

Definition at line 389 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 402 of file Scheduler.h.

References assert().

◆ dump() [1/2]

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

Definition at line 541 of file Scheduler.cpp.

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

Referenced by dump().

◆ dump() [2/2]

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

◆ trySchedule()

bool llvm::sandboxir::Scheduler::trySchedule ( BndlRef< 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 452 of file Scheduler.cpp.

References llvm::all_of(), llvm::any_of(), assert(), llvm::ArrayRef< T >::begin(), llvm::sandboxir::BottomUp, llvm::drop_begin(), llvm::sandboxir::VecUtils::getHighest(), llvm::sandboxir::VecUtils::getLowest(), llvm::sandboxir::SchedulingPoint::getNext(), llvm::sandboxir::SchedulingPoint::getPrev(), I, llvm_unreachable, N, and llvm::sandboxir::TopDown.

◆ DependencyGraph

friend class DependencyGraph
friend

Definition at line 331 of file Scheduler.h.

References DependencyGraph, I, and LLVM_ABI.

Referenced by DependencyGraph.

◆ SchedulerInternalsAttorney

friend class SchedulerInternalsAttorney
friend

Definition at line 310 of file Scheduler.h.

References llvm::sandboxir::BasicBlock(), LLVM_ABI, N, and SchedulerInternalsAttorney.

Referenced by SchedulerInternalsAttorney.


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