LLVM 20.0.0git
Public Types | Public Member Functions | List of all members
llvm::ReadyQueue Class Reference

Helpers for implementing custom MachineSchedStrategy classes. More...

#include "llvm/CodeGen/MachineScheduler.h"

Public Types

using iterator = std::vector< SUnit * >::iterator
 

Public Member Functions

 ReadyQueue (unsigned id, const Twine &name)
 
unsigned getID () const
 
StringRef getName () const
 
bool isInQueue (SUnit *SU) const
 
bool empty () const
 
void clear ()
 
unsigned size () const
 
iterator begin ()
 
iterator end ()
 
ArrayRef< SUnit * > elements ()
 
iterator find (SUnit *SU)
 
void push (SUnit *SU)
 
iterator remove (iterator I)
 
void dump () const
 

Detailed Description

Helpers for implementing custom MachineSchedStrategy classes.

These take care of the book-keeping associated with list scheduling heuristics. ReadyQueue encapsulates vector of "ready" SUnits with basic convenience methods for pushing and removing nodes. ReadyQueue's are uniquely identified by an ID. SUnit::NodeQueueId is a mask of the ReadyQueues the SUnit is in.

This is a convenience class that may be used by implementations of MachineSchedStrategy.

Definition at line 549 of file MachineScheduler.h.

Member Typedef Documentation

◆ iterator

using llvm::ReadyQueue::iterator = std::vector<SUnit*>::iterator

Definition at line 570 of file MachineScheduler.h.

Constructor & Destructor Documentation

◆ ReadyQueue()

llvm::ReadyQueue::ReadyQueue ( unsigned  id,
const Twine name 
)
inline

Definition at line 555 of file MachineScheduler.h.

Member Function Documentation

◆ begin()

iterator llvm::ReadyQueue::begin ( )
inline

◆ clear()

void llvm::ReadyQueue::clear ( )
inline

Definition at line 566 of file MachineScheduler.h.

Referenced by llvm::SchedBoundary::reset().

◆ dump()

LLVM_DUMP_METHOD void ReadyQueue::dump ( ) const

◆ elements()

ArrayRef< SUnit * > llvm::ReadyQueue::elements ( )
inline

Definition at line 576 of file MachineScheduler.h.

Referenced by computeRemLatency().

◆ empty()

bool llvm::ReadyQueue::empty ( ) const
inline

◆ end()

iterator llvm::ReadyQueue::end ( )
inline

◆ find()

iterator llvm::ReadyQueue::find ( SUnit SU)
inline

Definition at line 578 of file MachineScheduler.h.

References llvm::find().

Referenced by llvm::SchedBoundary::removeReady().

◆ getID()

unsigned llvm::ReadyQueue::getID ( ) const
inline

◆ getName()

StringRef llvm::ReadyQueue::getName ( ) const
inline

◆ isInQueue()

bool llvm::ReadyQueue::isInQueue ( SUnit SU) const
inline

Definition at line 562 of file MachineScheduler.h.

References llvm::SUnit::NodeQueueId.

Referenced by llvm::SchedBoundary::removeReady().

◆ push()

void llvm::ReadyQueue::push ( SUnit SU)
inline

◆ remove()

iterator llvm::ReadyQueue::remove ( iterator  I)
inline

◆ size()

unsigned llvm::ReadyQueue::size ( ) const
inline

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