class SchedulingPriorityQueue
Declaration
class SchedulingPriorityQueue { /* full declaration omitted */ };
Description
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.
Declared at: llvm/include/llvm/CodeGen/ScheduleDAG.h:496
Method Overview
- public SchedulingPriorityQueue(bool rf = false)
- public virtual void addNode(const llvm::SUnit * SU)
- public virtual void dump(llvm::ScheduleDAG *) const
- public virtual bool empty() const
- public unsigned int getCurCycle() const
- public bool hasReadyFilter() const
- public virtual void initNodes(std::vector<SUnit> & SUnits)
- public virtual bool isBottomUp() const
- public virtual bool isReady(llvm::SUnit *) const
- public virtual llvm::SUnit * pop()
- public virtual void push(llvm::SUnit * U)
- public void push_all(const std::vector<SUnit *> & Nodes)
- public virtual void releaseState()
- public virtual void remove(llvm::SUnit * SU)
- public virtual void scheduledNode(llvm::SUnit *)
- public void setCurCycle(unsigned int Cycle)
- public virtual bool tracksRegPressure() const
- public virtual void unscheduledNode(llvm::SUnit *)
- public virtual void updateNode(const llvm::SUnit * SU)
- public virtual ~SchedulingPriorityQueue()
Methods
¶SchedulingPriorityQueue(bool rf = false)
SchedulingPriorityQueue(bool rf = false)
Declared at: llvm/include/llvm/CodeGen/ScheduleDAG.h:503
Parameters
- bool rf = false
¶virtual void addNode(const llvm::SUnit* SU)
virtual void addNode(const llvm::SUnit* SU)
Declared at: llvm/include/llvm/CodeGen/ScheduleDAG.h:510
Parameters
- const llvm::SUnit* SU
¶virtual void dump(llvm::ScheduleDAG*) const
virtual void dump(llvm::ScheduleDAG*) const
Declared at: llvm/include/llvm/CodeGen/ScheduleDAG.h:537
Parameters
¶virtual bool empty() const
virtual bool empty() const
Declared at: llvm/include/llvm/CodeGen/ScheduleDAG.h:514
¶unsigned int getCurCycle() const
unsigned int getCurCycle() const
Declared at: llvm/include/llvm/CodeGen/ScheduleDAG.h:550
¶bool hasReadyFilter() const
bool hasReadyFilter() const
Declared at: llvm/include/llvm/CodeGen/ScheduleDAG.h:516
¶virtual void initNodes(std::vector<SUnit>& SUnits)
virtual void initNodes(std::vector<SUnit>& SUnits)
Declared at: llvm/include/llvm/CodeGen/ScheduleDAG.h:509
Parameters
- std::vector<SUnit>& SUnits
¶virtual bool isBottomUp() const
virtual bool isBottomUp() const
Declared at: llvm/include/llvm/CodeGen/ScheduleDAG.h:507
¶virtual bool isReady(llvm::SUnit*) const
virtual bool isReady(llvm::SUnit*) const
Declared at: llvm/include/llvm/CodeGen/ScheduleDAG.h:520
Parameters
¶virtual llvm::SUnit* pop()
virtual llvm::SUnit* pop()
Declared at: llvm/include/llvm/CodeGen/ScheduleDAG.h:533
¶virtual void push(llvm::SUnit* U)
virtual void push(llvm::SUnit* U)
Declared at: llvm/include/llvm/CodeGen/ScheduleDAG.h:525
Parameters
- llvm::SUnit* U
¶void push_all(const std::vector<SUnit*>& Nodes)
void push_all(const std::vector<SUnit*>& Nodes)
Declared at: llvm/include/llvm/CodeGen/ScheduleDAG.h:527
Parameters
- const std::vector<SUnit*>& Nodes
¶virtual void releaseState()
virtual void releaseState()
Declared at: llvm/include/llvm/CodeGen/ScheduleDAG.h:512
¶virtual void remove(llvm::SUnit* SU)
virtual void remove(llvm::SUnit* SU)
Declared at: llvm/include/llvm/CodeGen/ScheduleDAG.h:535
Parameters
- llvm::SUnit* SU
¶virtual void scheduledNode(llvm::SUnit*)
virtual void scheduledNode(llvm::SUnit*)
Description
As each node is scheduled, this method is invoked. This allows the priority function to adjust the priority of related unscheduled nodes, for example.
Declared at: llvm/include/llvm/CodeGen/ScheduleDAG.h:542
Parameters
¶void setCurCycle(unsigned int Cycle)
void setCurCycle(unsigned int Cycle)
Declared at: llvm/include/llvm/CodeGen/ScheduleDAG.h:546
Parameters
- unsigned int Cycle
¶virtual bool tracksRegPressure() const
virtual bool tracksRegPressure() const
Declared at: llvm/include/llvm/CodeGen/ScheduleDAG.h:518
¶virtual void unscheduledNode(llvm::SUnit*)
virtual void unscheduledNode(llvm::SUnit*)
Declared at: llvm/include/llvm/CodeGen/ScheduleDAG.h:544
Parameters
¶virtual void updateNode(const llvm::SUnit* SU)
virtual void updateNode(const llvm::SUnit* SU)
Declared at: llvm/include/llvm/CodeGen/ScheduleDAG.h:511
Parameters
- const llvm::SUnit* SU
¶virtual ~SchedulingPriorityQueue()
virtual ~SchedulingPriorityQueue()
Declared at: llvm/include/llvm/CodeGen/ScheduleDAG.h:505