LLVM 23.0.0git
llvm::sandboxir::SchedBundle Class Reference

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).
SchedBundleoperator= (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.
DGNodeback () const
iterator begin ()
iterator end ()
const_iterator begin () const
const_iterator end () const
LLVM_ABI DGNodegetTop () const
 \Returns the bundle node that comes before the others in program order.
LLVM_ABI DGNodegetBot () 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 (SchedDirection Dir) 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 &)

Detailed Description

The nodes that need to be scheduled back-to-back in a single scheduling cycle form a SchedBundle.

Definition at line 116 of file Scheduler.h.

Member Typedef Documentation

◆ const_iterator

◆ ContainerTy

Definition at line 118 of file Scheduler.h.

◆ iterator

Constructor & Destructor Documentation

◆ SchedBundle() [1/3]

llvm::sandboxir::SchedBundle::SchedBundle ( )
default

◆ SchedBundle() [2/3]

llvm::sandboxir::SchedBundle::SchedBundle ( ContainerTy && Nodes)
inline

Definition at line 130 of file Scheduler.h.

References llvm::move(), and N.

◆ SchedBundle() [3/3]

llvm::sandboxir::SchedBundle::SchedBundle ( const SchedBundle & Other)
delete

Copy CTOR (unimplemented).

References llvm::Other, and SchedBundle().

◆ ~SchedBundle()

llvm::sandboxir::SchedBundle::~SchedBundle ( )
inline

Definition at line 138 of file Scheduler.h.

References N.

Member Function Documentation

◆ back()

DGNode * llvm::sandboxir::SchedBundle::back ( ) const
inline

Definition at line 147 of file Scheduler.h.

◆ begin() [1/2]

iterator llvm::sandboxir::SchedBundle::begin ( )
inline

Definition at line 150 of file Scheduler.h.

◆ begin() [2/2]

const_iterator llvm::sandboxir::SchedBundle::begin ( ) const
inline

Definition at line 152 of file Scheduler.h.

◆ cluster()

void llvm::sandboxir::SchedBundle::cluster ( BasicBlock::iterator Where)

Move all bundle instructions to Where back-to-back.

Definition at line 45 of file Scheduler.cpp.

References I, and N.

◆ dump() [1/2]

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

Definition at line 60 of file Scheduler.cpp.

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

Referenced by dump().

◆ dump() [2/2]

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

Definition at line 55 of file Scheduler.cpp.

References N.

◆ empty()

bool llvm::sandboxir::SchedBundle::empty ( ) const
inline

Definition at line 142 of file Scheduler.h.

◆ end() [1/2]

iterator llvm::sandboxir::SchedBundle::end ( )
inline

Definition at line 151 of file Scheduler.h.

◆ end() [2/2]

const_iterator llvm::sandboxir::SchedBundle::end ( ) const
inline

Definition at line 153 of file Scheduler.h.

◆ getBot()

DGNode * llvm::sandboxir::SchedBundle::getBot ( ) const

\Returns the bundle node that comes after the others in program order.

Definition at line 36 of file Scheduler.cpp.

References llvm::sandboxir::Instruction::comesBefore(), llvm::drop_begin(), llvm::sandboxir::DGNode::getInstruction(), and N.

◆ getTop()

DGNode * llvm::sandboxir::SchedBundle::getTop ( ) const

\Returns the bundle node that comes before the others in program order.

Definition at line 27 of file Scheduler.cpp.

References llvm::drop_begin(), llvm::sandboxir::DGNode::getInstruction(), and N.

◆ isSingleton()

bool llvm::sandboxir::SchedBundle::isSingleton ( ) const
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 146 of file Scheduler.h.

◆ operator=()

SchedBundle & llvm::sandboxir::SchedBundle::operator= ( const SchedBundle & Other)
delete

Copy Assignment (unimplemented).

References llvm::Other, and SchedBundle().

◆ ready()

bool llvm::sandboxir::SchedBundle::ready ( SchedDirection Dir) const
inline

\Returns true if all nodes in the bundle are ready.

Definition at line 161 of file Scheduler.h.

References llvm::all_of(), llvm::sandboxir::BottomUp, and N.

◆ DGNode::setSchedBundle

References SchedBundle().


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