LLVM 20.0.0git
Public Types | Public Member Functions | List of all members
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 ()
 
bool empty () const
 
DGNodeback () const
 
iterator begin ()
 
iterator end ()
 
const_iterator begin () const
 
const_iterator end () const
 
DGNodegetTop () const
 \Returns the bundle node that comes before the others in program order.
 
DGNodegetBot () const
 \Returns the bundle node that comes after the others in program order.
 
void cluster (BasicBlock::iterator Where)
 Move all bundle instructions to Where back-to-back.
 
void dump (raw_ostream &OS) const
 
LLVM_DUMP_METHOD void dump () const
 

Detailed Description

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

Definition at line 65 of file Scheduler.h.

Member Typedef Documentation

◆ const_iterator

Definition at line 89 of file Scheduler.h.

◆ ContainerTy

Definition at line 67 of file Scheduler.h.

◆ iterator

Definition at line 88 of file Scheduler.h.

Constructor & Destructor Documentation

◆ SchedBundle() [1/2]

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

◆ SchedBundle() [2/2]

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

Definition at line 78 of file Scheduler.h.

References N.

◆ ~SchedBundle()

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

Definition at line 82 of file Scheduler.h.

References N.

Member Function Documentation

◆ back()

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

◆ begin() [1/2]

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

◆ begin() [2/2]

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

◆ 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 llvm::sandboxir::BBIterator::getNodeParent(), 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, and OS.

◆ empty()

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

Definition at line 86 of file Scheduler.h.

References llvm::SmallVectorBase< Size_T >::empty().

◆ end() [1/2]

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

Definition at line 91 of file Scheduler.h.

References llvm::SmallVectorTemplateCommon< T, typename >::end().

◆ end() [2/2]

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

Definition at line 93 of file Scheduler.h.

References llvm::SmallVectorTemplateCommon< T, typename >::end().

◆ 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::SmallVectorTemplateCommon< T, typename >::front(), 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::SmallVectorTemplateCommon< T, typename >::front(), llvm::sandboxir::DGNode::getInstruction(), and N.


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