LLVM API Documentation
#include <ScheduleDAG.h>
Public Member Functions | |
SchedulingPriorityQueue (bool rf=false) | |
virtual | ~SchedulingPriorityQueue () |
virtual bool | isBottomUp () const =0 |
virtual void | initNodes (std::vector< SUnit > &SUnits)=0 |
virtual void | addNode (const SUnit *SU)=0 |
virtual void | updateNode (const SUnit *SU)=0 |
virtual void | releaseState ()=0 |
virtual bool | empty () const =0 |
bool | hasReadyFilter () const |
virtual bool | tracksRegPressure () const |
virtual bool | isReady (SUnit *) const |
virtual void | push (SUnit *U)=0 |
void | push_all (const std::vector< SUnit * > &Nodes) |
virtual SUnit * | pop ()=0 |
virtual void | remove (SUnit *SU)=0 |
virtual void | dump (ScheduleDAG *) const |
virtual void | scheduledNode (SUnit *) |
virtual void | unscheduledNode (SUnit *) |
void | setCurCycle (unsigned Cycle) |
unsigned | getCurCycle () const |
SchedulingPriorityQueue - This interface is used to plug different priorities computation algorithms into the list scheduler. It implements the interface of a standard priority queue, where nodes are inserted in arbitrary order and returned in priority order. The computation of the priority and the representation of the queue are totally up to the implementation to decide.
Definition at line 495 of file ScheduleDAG.h.
llvm::SchedulingPriorityQueue::SchedulingPriorityQueue | ( | bool | rf = false | ) | [inline] |
Definition at line 500 of file ScheduleDAG.h.
virtual llvm::SchedulingPriorityQueue::~SchedulingPriorityQueue | ( | ) | [inline, virtual] |
Definition at line 502 of file ScheduleDAG.h.
virtual void llvm::SchedulingPriorityQueue::addNode | ( | const SUnit * | SU | ) | [pure virtual] |
Implemented in llvm::ResourcePriorityQueue, and llvm::LatencyPriorityQueue.
virtual void llvm::SchedulingPriorityQueue::dump | ( | ScheduleDAG * | ) | const [inline, virtual] |
Reimplemented in llvm::ResourcePriorityQueue, and llvm::LatencyPriorityQueue.
Definition at line 533 of file ScheduleDAG.h.
virtual bool llvm::SchedulingPriorityQueue::empty | ( | ) | const [pure virtual] |
Implemented in llvm::ResourcePriorityQueue, and llvm::LatencyPriorityQueue.
unsigned llvm::SchedulingPriorityQueue::getCurCycle | ( | ) | const [inline] |
Definition at line 547 of file ScheduleDAG.h.
bool llvm::SchedulingPriorityQueue::hasReadyFilter | ( | ) | const [inline] |
Definition at line 513 of file ScheduleDAG.h.
virtual void llvm::SchedulingPriorityQueue::initNodes | ( | std::vector< SUnit > & | SUnits | ) | [pure virtual] |
Implemented in llvm::ResourcePriorityQueue, and llvm::LatencyPriorityQueue.
virtual bool llvm::SchedulingPriorityQueue::isBottomUp | ( | ) | const [pure virtual] |
Implemented in llvm::ResourcePriorityQueue, and llvm::LatencyPriorityQueue.
virtual bool llvm::SchedulingPriorityQueue::isReady | ( | SUnit * | ) | const [inline, virtual] |
Definition at line 517 of file ScheduleDAG.h.
virtual SUnit* llvm::SchedulingPriorityQueue::pop | ( | ) | [pure virtual] |
Implemented in llvm::ResourcePriorityQueue, and llvm::LatencyPriorityQueue.
virtual void llvm::SchedulingPriorityQueue::push | ( | SUnit * | U | ) | [pure virtual] |
Implemented in llvm::ResourcePriorityQueue, and llvm::LatencyPriorityQueue.
Referenced by push_all().
void llvm::SchedulingPriorityQueue::push_all | ( | const std::vector< SUnit * > & | Nodes | ) | [inline] |
Definition at line 523 of file ScheduleDAG.h.
virtual void llvm::SchedulingPriorityQueue::releaseState | ( | ) | [pure virtual] |
Implemented in llvm::ResourcePriorityQueue, and llvm::LatencyPriorityQueue.
virtual void llvm::SchedulingPriorityQueue::remove | ( | SUnit * | SU | ) | [pure virtual] |
Implemented in llvm::ResourcePriorityQueue, and llvm::LatencyPriorityQueue.
virtual void llvm::SchedulingPriorityQueue::scheduledNode | ( | SUnit * | ) | [inline, virtual] |
scheduledNode - As each node is scheduled, this method is invoked. This allows the priority function to adjust the priority of related unscheduled nodes, for example.
Reimplemented in llvm::ResourcePriorityQueue, and llvm::LatencyPriorityQueue.
Definition at line 539 of file ScheduleDAG.h.
void llvm::SchedulingPriorityQueue::setCurCycle | ( | unsigned | Cycle | ) | [inline] |
Definition at line 543 of file ScheduleDAG.h.
virtual bool llvm::SchedulingPriorityQueue::tracksRegPressure | ( | ) | const [inline, virtual] |
Definition at line 515 of file ScheduleDAG.h.
virtual void llvm::SchedulingPriorityQueue::unscheduledNode | ( | SUnit * | ) | [inline, virtual] |
Definition at line 541 of file ScheduleDAG.h.
virtual void llvm::SchedulingPriorityQueue::updateNode | ( | const SUnit * | SU | ) | [pure virtual] |
Implemented in llvm::ResourcePriorityQueue, and llvm::LatencyPriorityQueue.