LLVM 24.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).
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 (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 128 of file Scheduler.h.

Member Typedef Documentation

◆ const_iterator

◆ ContainerTy

Definition at line 130 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 142 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 150 of file Scheduler.h.

References N.

Member Function Documentation

◆ back()

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

Definition at line 159 of file Scheduler.h.

◆ begin() [1/2]

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

Definition at line 162 of file Scheduler.h.

◆ begin() [2/2]

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

Definition at line 164 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 33 of file Scheduler.cpp.

References I, and N.

◆ dump() [1/2]

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

Definition at line 48 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 43 of file Scheduler.cpp.

References N.

◆ empty()

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

Definition at line 154 of file Scheduler.h.

◆ end() [1/2]

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

Definition at line 163 of file Scheduler.h.

◆ end() [2/2]

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

Definition at line 165 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 24 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 15 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 158 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 173 of file Scheduler.h.

References llvm::all_of(), and N.

◆ DGNode::setSchedBundle

References SchedBundle().


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