class LatencyPriorityQueue
Declaration
class LatencyPriorityQueue : public 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/LatencyPriorityQueue.h:32
Inherits from: SchedulingPriorityQueue
Method Overview
- public LatencyPriorityQueue()
- public void addNode(const llvm::SUnit * SU)
- public void dump(llvm::ScheduleDAG * DAG) const
- public bool empty() const
- public unsigned int getLatency(unsigned int NodeNum) const
- public unsigned int getNumSolelyBlockNodes(unsigned int NodeNum) const
- public void initNodes(std::vector<SUnit> & sunits)
- public bool isBottomUp() const
- public llvm::SUnit * pop()
- public void push(llvm::SUnit * U)
- public void releaseState()
- public void remove(llvm::SUnit * SU)
- public void scheduledNode(llvm::SUnit * SU)
- public void updateNode(const llvm::SUnit * SU)
Inherited from SchedulingPriorityQueue:
- public addNode
- public dump
- public empty
- public getCurCycle
- public hasReadyFilter
- public initNodes
- public isBottomUp
- public isReady
- public pop
- public push
- public push_all
- public releaseState
- public remove
- public scheduledNode
- public setCurCycle
- public tracksRegPressure
- public unscheduledNode
- public updateNode
Methods
¶LatencyPriorityQueue()
LatencyPriorityQueue()
Declared at: llvm/include/llvm/CodeGen/LatencyPriorityQueue.h:47
¶void addNode(const llvm::SUnit* SU)
void addNode(const llvm::SUnit* SU)
Declared at: llvm/include/llvm/CodeGen/LatencyPriorityQueue.h:57
Parameters
- const llvm::SUnit* SU
¶void dump(llvm::ScheduleDAG* DAG) const
void dump(llvm::ScheduleDAG* DAG) const
Declared at: llvm/include/llvm/CodeGen/LatencyPriorityQueue.h:87
Parameters
- llvm::ScheduleDAG* DAG
¶bool empty() const
bool empty() const
Declared at: llvm/include/llvm/CodeGen/LatencyPriorityQueue.h:78
¶unsigned int getLatency(
unsigned int NodeNum) const
unsigned int getLatency(
unsigned int NodeNum) const
Declared at: llvm/include/llvm/CodeGen/LatencyPriorityQueue.h:68
Parameters
- unsigned int NodeNum
¶unsigned int getNumSolelyBlockNodes(
unsigned int NodeNum) const
unsigned int getNumSolelyBlockNodes(
unsigned int NodeNum) const
Declared at: llvm/include/llvm/CodeGen/LatencyPriorityQueue.h:73
Parameters
- unsigned int NodeNum
¶void initNodes(std::vector<SUnit>& sunits)
void initNodes(std::vector<SUnit>& sunits)
Declared at: llvm/include/llvm/CodeGen/LatencyPriorityQueue.h:52
Parameters
- std::vector<SUnit>& sunits
¶bool isBottomUp() const
bool isBottomUp() const
Declared at: llvm/include/llvm/CodeGen/LatencyPriorityQueue.h:50
¶llvm::SUnit* pop()
llvm::SUnit* pop()
Declared at: llvm/include/llvm/CodeGen/LatencyPriorityQueue.h:82
¶void push(llvm::SUnit* U)
void push(llvm::SUnit* U)
Declared at: llvm/include/llvm/CodeGen/LatencyPriorityQueue.h:80
Parameters
- llvm::SUnit* U
¶void releaseState()
void releaseState()
Declared at: llvm/include/llvm/CodeGen/LatencyPriorityQueue.h:64
¶void remove(llvm::SUnit* SU)
void remove(llvm::SUnit* SU)
Declared at: llvm/include/llvm/CodeGen/LatencyPriorityQueue.h:84
Parameters
- llvm::SUnit* SU
¶void scheduledNode(llvm::SUnit* SU)
void scheduledNode(llvm::SUnit* SU)
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/LatencyPriorityQueue.h:94
Parameters
- llvm::SUnit* SU
¶void updateNode(const llvm::SUnit* SU)
void updateNode(const llvm::SUnit* SU)
Declared at: llvm/include/llvm/CodeGen/LatencyPriorityQueue.h:61
Parameters
- const llvm::SUnit* SU