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

Helpers for implementing custom MachineSchedStrategy classes. More...

#include <MachineScheduler.h>

Public Types

typedef std::vector< SUnit * >
::iterator 
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 ()
 

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 474 of file MachineScheduler.h.

Member Typedef Documentation

typedef std::vector<SUnit*>::iterator llvm::ReadyQueue::iterator

Definition at line 495 of file MachineScheduler.h.

Constructor & Destructor Documentation

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

Definition at line 480 of file MachineScheduler.h.

Member Function Documentation

iterator llvm::ReadyQueue::begin ( )
inline
void llvm::ReadyQueue::clear ( )
inline

Definition at line 491 of file MachineScheduler.h.

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

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

Definition at line 501 of file MachineScheduler.h.

Referenced by llvm::GenericSchedulerBase::setPolicy().

bool llvm::ReadyQueue::empty ( ) const
inline
iterator llvm::ReadyQueue::end ( )
inline
iterator llvm::ReadyQueue::find ( SUnit SU)
inline

Definition at line 503 of file MachineScheduler.h.

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

unsigned llvm::ReadyQueue::getID ( ) const
inline
StringRef llvm::ReadyQueue::getName ( ) const
inline
bool llvm::ReadyQueue::isInQueue ( SUnit SU) const
inline

Definition at line 487 of file MachineScheduler.h.

References llvm::SUnit::NodeQueueId.

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

void llvm::ReadyQueue::push ( SUnit SU)
inline
iterator llvm::ReadyQueue::remove ( iterator  I)
inline
unsigned llvm::ReadyQueue::size ( ) const
inline

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