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

Member Typedef Documentation

◆ const_iterator

◆ ContainerTy

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

References N.

Member Function Documentation

◆ back()

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

Definition at line 139 of file Scheduler.h.

◆ begin() [1/2]

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

Definition at line 142 of file Scheduler.h.

◆ begin() [2/2]

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

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

◆ end() [1/2]

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

Definition at line 143 of file Scheduler.h.

◆ end() [2/2]

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

Definition at line 145 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 138 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 ( ) const
inline

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

Definition at line 153 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: