LLVM API Documentation

Public Types | Public Member Functions
llvm::ReadyQueue Class Reference

#include <MachineScheduler.h>

List of all members.

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


Member Typedef Documentation

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

Definition at line 496 of file MachineScheduler.h.


Constructor & Destructor Documentation

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

Definition at line 481 of file MachineScheduler.h.


Member Function Documentation

void llvm::ReadyQueue::clear ( ) [inline]

Definition at line 492 of file MachineScheduler.h.

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

Definition at line 502 of file MachineScheduler.h.

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

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

Definition at line 504 of file MachineScheduler.h.

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

unsigned llvm::ReadyQueue::getID ( ) const [inline]
bool llvm::ReadyQueue::isInQueue ( SUnit SU) const [inline]

Definition at line 488 of file MachineScheduler.h.

References llvm::SUnit::NodeQueueId.

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

void llvm::ReadyQueue::push ( SUnit SU) [inline]
unsigned llvm::ReadyQueue::size ( ) const [inline]

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