LLVM API Documentation
#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 () |
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.
typedef std::vector<SUnit*>::iterator llvm::ReadyQueue::iterator |
Definition at line 496 of file MachineScheduler.h.
llvm::ReadyQueue::ReadyQueue | ( | unsigned | id, |
const Twine & | name | ||
) | [inline] |
Definition at line 481 of file MachineScheduler.h.
iterator llvm::ReadyQueue::begin | ( | ) | [inline] |
void llvm::ReadyQueue::clear | ( | ) | [inline] |
Definition at line 492 of file MachineScheduler.h.
Referenced by llvm::SchedBoundary::reset().
LLVM_DUMP_METHOD void ReadyQueue::dump | ( | ) |
Definition at line 490 of file MachineScheduler.cpp.
References llvm::dbgs().
Referenced by llvm::ConvergingVLIWScheduler::pickNodeFromQueue(), llvm::GenericScheduler::pickNodeFromQueue(), llvm::PostGenericScheduler::pickNodeFromQueue(), and llvm::SchedBoundary::releasePending().
ArrayRef<SUnit*> llvm::ReadyQueue::elements | ( | ) | [inline] |
Definition at line 502 of file MachineScheduler.h.
Referenced by llvm::GenericSchedulerBase::setPolicy().
bool llvm::ReadyQueue::empty | ( | ) | const [inline] |
Definition at line 490 of file MachineScheduler.h.
Referenced by llvm::SchedBoundary::pickOnlyChoice(), and llvm::SchedBoundary::releasePending().
iterator llvm::ReadyQueue::end | ( | ) | [inline] |
Definition at line 500 of file MachineScheduler.h.
Referenced by llvm::ConvergingVLIWScheduler::pickNodeFromQueue(), llvm::GenericScheduler::pickNodeFromQueue(), llvm::PostGenericScheduler::pickNodeFromQueue(), and llvm::SchedBoundary::pickOnlyChoice().
iterator llvm::ReadyQueue::find | ( | SUnit * | SU | ) | [inline] |
Definition at line 504 of file MachineScheduler.h.
Referenced by llvm::SchedBoundary::removeReady().
unsigned llvm::ReadyQueue::getID | ( | ) | const [inline] |
Definition at line 483 of file MachineScheduler.h.
Referenced by llvm::SchedBoundary::isTop(), and llvm::ConvergingVLIWScheduler::SchedulingCost().
StringRef llvm::ReadyQueue::getName | ( | ) | const [inline] |
Definition at line 485 of file MachineScheduler.h.
Referenced by llvm::SchedBoundary::bumpCycle(), llvm::SchedBoundary::bumpNode(), llvm::SchedBoundary::dumpScheduledState(), llvm::SchedBoundary::findMaxLatency(), llvm::SchedBoundary::getOtherResourceCount(), llvm::GenericSchedulerBase::setPolicy(), and llvm::ConvergingVLIWScheduler::traceCandidate().
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] |
Definition at line 508 of file MachineScheduler.h.
References llvm::SUnit::NodeQueueId.
Referenced by llvm::SchedBoundary::pickOnlyChoice(), llvm::SchedBoundary::releaseNode(), and llvm::SchedBoundary::releasePending().
iterator llvm::ReadyQueue::remove | ( | iterator | I | ) | [inline] |
Definition at line 513 of file MachineScheduler.h.
References I.
Referenced by llvm::SchedBoundary::pickOnlyChoice(), llvm::SchedBoundary::releasePending(), and llvm::SchedBoundary::removeReady().
unsigned llvm::ReadyQueue::size | ( | ) | const [inline] |
Definition at line 494 of file MachineScheduler.h.
Referenced by llvm::SchedBoundary::pickOnlyChoice(), and llvm::SchedBoundary::releasePending().