LLVM 20.0.0git
|
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 |
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.
using llvm::ReadyQueue::iterator = std::vector<SUnit*>::iterator |
Definition at line 570 of file MachineScheduler.h.
Definition at line 555 of file MachineScheduler.h.
|
inline |
|
inline |
Definition at line 566 of file MachineScheduler.h.
Referenced by llvm::SchedBoundary::reset().
LLVM_DUMP_METHOD void ReadyQueue::dump | ( | ) | const |
Definition at line 670 of file MachineScheduler.cpp.
References llvm::dbgs().
Referenced by llvm::ConvergingVLIWScheduler::pickNodeFromQueue(), and llvm::SchedBoundary::pickOnlyChoice().
Definition at line 576 of file MachineScheduler.h.
Referenced by computeRemLatency().
|
inline |
Definition at line 564 of file MachineScheduler.h.
Referenced by llvm::ConvergingVLIWScheduler::pickNode(), llvm::GCNSchedStrategy::pickNode(), llvm::SchedBoundary::pickOnlyChoice(), and llvm::SchedBoundary::releasePending().
|
inline |
Definition at line 574 of file MachineScheduler.h.
Referenced by llvm::ConvergingVLIWScheduler::pickNodeFromQueue(), llvm::SchedBoundary::pickOnlyChoice(), and llvm::ConvergingVLIWScheduler::readyQueueVerboseDump().
Definition at line 578 of file MachineScheduler.h.
References llvm::find().
Referenced by llvm::SchedBoundary::removeReady().
|
inline |
Definition at line 557 of file MachineScheduler.h.
Referenced by llvm::SchedBoundary::isTop(), llvm::ConvergingVLIWScheduler::VLIWSchedBoundary::isTop(), llvm::ConvergingVLIWScheduler::pickNodeFromQueue(), llvm::ConvergingVLIWScheduler::SchedulingCost(), and llvm::HexagonConvergingVLIWScheduler::SchedulingCost().
|
inline |
Definition at line 559 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 562 of file MachineScheduler.h.
References llvm::SUnit::NodeQueueId.
Referenced by llvm::SchedBoundary::removeReady().
|
inline |
Definition at line 580 of file MachineScheduler.h.
References llvm::SUnit::NodeQueueId.
Referenced by llvm::SchedBoundary::pickOnlyChoice(), and llvm::SchedBoundary::releaseNode().
Definition at line 585 of file MachineScheduler.h.
References I.
Referenced by llvm::SchedBoundary::pickOnlyChoice(), llvm::SchedBoundary::releaseNode(), and llvm::SchedBoundary::removeReady().
|
inline |
Definition at line 568 of file MachineScheduler.h.
Referenced by llvm::SchedBoundary::pickOnlyChoice(), llvm::SchedBoundary::releaseNode(), and llvm::SchedBoundary::releasePending().