LLVM 18.0.0git
|
This interface is used to plug different priorities computation algorithms into the list scheduler. More...
#include "llvm/CodeGen/ScheduleDAG.h"
Public Member Functions | |
SchedulingPriorityQueue (bool rf=false) | |
virtual | ~SchedulingPriorityQueue ()=default |
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 *) |
As each node is scheduled, this method is invoked. | |
virtual void | unscheduledNode (SUnit *) |
void | setCurCycle (unsigned Cycle) |
unsigned | getCurCycle () const |
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 496 of file ScheduleDAG.h.
|
inline |
Definition at line 503 of file ScheduleDAG.h.
|
virtualdefault |
Implemented in llvm::LatencyPriorityQueue, and llvm::ResourcePriorityQueue.
|
inlinevirtual |
Reimplemented in llvm::LatencyPriorityQueue.
Definition at line 536 of file ScheduleDAG.h.
|
pure virtual |
Implemented in llvm::LatencyPriorityQueue, and llvm::ResourcePriorityQueue.
|
inline |
Definition at line 549 of file ScheduleDAG.h.
|
inline |
Definition at line 516 of file ScheduleDAG.h.
|
pure virtual |
Implemented in llvm::LatencyPriorityQueue, and llvm::ResourcePriorityQueue.
|
pure virtual |
Implemented in llvm::LatencyPriorityQueue, and llvm::ResourcePriorityQueue.
Definition at line 520 of file ScheduleDAG.h.
References assert().
|
pure virtual |
Implemented in llvm::LatencyPriorityQueue, and llvm::ResourcePriorityQueue.
|
pure virtual |
Implemented in llvm::LatencyPriorityQueue, and llvm::ResourcePriorityQueue.
Referenced by push_all().
Definition at line 527 of file ScheduleDAG.h.
References push().
|
pure virtual |
Implemented in llvm::LatencyPriorityQueue, and llvm::ResourcePriorityQueue.
|
pure virtual |
Implemented in llvm::LatencyPriorityQueue, and llvm::ResourcePriorityQueue.
|
inlinevirtual |
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::LatencyPriorityQueue, and llvm::ResourcePriorityQueue.
Definition at line 541 of file ScheduleDAG.h.
|
inline |
Definition at line 545 of file ScheduleDAG.h.
|
inlinevirtual |
Definition at line 518 of file ScheduleDAG.h.
|
inlinevirtual |
Definition at line 543 of file ScheduleDAG.h.
Implemented in llvm::LatencyPriorityQueue, and llvm::ResourcePriorityQueue.