|
LLVM
4.0.0
|
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 () |
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 515 of file MachineScheduler.h.
| typedef std::vector<SUnit*>::iterator llvm::ReadyQueue::iterator |
Definition at line 536 of file MachineScheduler.h.
Definition at line 521 of file MachineScheduler.h.
|
inline |
Definition at line 538 of file MachineScheduler.h.
Referenced by llvm::ConvergingVLIWScheduler::pickNodeFromQueue(), llvm::GenericScheduler::pickNodeFromQueue(), llvm::PostGenericScheduler::pickNodeFromQueue(), llvm::SchedBoundary::pickOnlyChoice(), llvm::ConvergingVLIWScheduler::readyQueueVerboseDump(), and llvm::SchedBoundary::releasePending().
|
inline |
Definition at line 532 of file MachineScheduler.h.
Referenced by llvm::SchedBoundary::reset().
| LLVM_DUMP_METHOD void ReadyQueue::dump | ( | ) |
Definition at line 508 of file MachineScheduler.cpp.
References llvm::dbgs(), and i.
Referenced by llvm::ConvergingVLIWScheduler::pickNodeFromQueue(), and llvm::SchedBoundary::pickOnlyChoice().
Definition at line 542 of file MachineScheduler.h.
Referenced by llvm::GenericSchedulerBase::setPolicy().
|
inline |
Definition at line 530 of file MachineScheduler.h.
Referenced by llvm::GCNMaxOccupancySchedStrategy::pickNode(), llvm::SchedBoundary::pickOnlyChoice(), and llvm::SchedBoundary::releasePending().
|
inline |
Definition at line 540 of file MachineScheduler.h.
Referenced by llvm::ConvergingVLIWScheduler::pickNodeFromQueue(), llvm::GenericScheduler::pickNodeFromQueue(), llvm::PostGenericScheduler::pickNodeFromQueue(), llvm::SchedBoundary::pickOnlyChoice(), and llvm::ConvergingVLIWScheduler::readyQueueVerboseDump().
Definition at line 544 of file MachineScheduler.h.
References llvm::find().
Referenced by llvm::SchedBoundary::removeReady().
|
inline |
Definition at line 523 of file MachineScheduler.h.
Referenced by llvm::SchedBoundary::isTop(), llvm::ConvergingVLIWScheduler::pickNodeFromQueue(), and llvm::ConvergingVLIWScheduler::SchedulingCost().
|
inline |
Definition at line 525 of file MachineScheduler.h.
Referenced by llvm::SchedBoundary::bumpCycle(), llvm::SchedBoundary::bumpNode(), llvm::SchedBoundary::dumpScheduledState(), llvm::SchedBoundary::findMaxLatency(), llvm::SchedBoundary::getOtherResourceCount(), llvm::ConvergingVLIWScheduler::readyQueueVerboseDump(), llvm::GenericSchedulerBase::setPolicy(), and llvm::ConvergingVLIWScheduler::traceCandidate().
Definition at line 528 of file MachineScheduler.h.
References llvm::SUnit::NodeQueueId.
Referenced by llvm::SchedBoundary::removeReady().
|
inline |
Definition at line 546 of file MachineScheduler.h.
References llvm::SUnit::NodeQueueId.
Referenced by llvm::SchedBoundary::pickOnlyChoice(), llvm::SchedBoundary::releaseNode(), and llvm::SchedBoundary::releasePending().
Definition at line 551 of file MachineScheduler.h.
References I.
Referenced by llvm::SchedBoundary::pickOnlyChoice(), llvm::SchedBoundary::releasePending(), and llvm::SchedBoundary::removeReady().
|
inline |
Definition at line 534 of file MachineScheduler.h.
Referenced by llvm::SchedBoundary::pickOnlyChoice(), llvm::SchedBoundary::releaseNode(), and llvm::SchedBoundary::releasePending().
1.8.6