LLVM: llvm::SchedulingPriorityQueue Class Reference (original) (raw)

This interface is used to plug different priorities computation algorithms into the list scheduler. More...

#include "[llvm/CodeGen/ScheduleDAG.h](ScheduleDAG%5F8h%5Fsource.html)"

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 523 of file ScheduleDAG.h.

llvm::SchedulingPriorityQueue::SchedulingPriorityQueue ( bool rf = false) inline

~SchedulingPriorityQueue()

virtual llvm::SchedulingPriorityQueue::~SchedulingPriorityQueue ( ) virtualdefault

addNode()

virtual void llvm::SchedulingPriorityQueue::addNode ( const SUnit * SU) pure virtual

dump()

virtual void llvm::SchedulingPriorityQueue::dump ( ScheduleDAG * ) const inlinevirtual

empty()

virtual bool llvm::SchedulingPriorityQueue::empty ( ) const pure virtual

getCurCycle()

unsigned llvm::SchedulingPriorityQueue::getCurCycle ( ) const inline

hasReadyFilter()

bool llvm::SchedulingPriorityQueue::hasReadyFilter ( ) const inline

initNodes()

virtual void llvm::SchedulingPriorityQueue::initNodes ( std::vector< SUnit > & SUnits) pure virtual

isBottomUp()

virtual bool llvm::SchedulingPriorityQueue::isBottomUp ( ) const pure virtual

isReady()

virtual bool llvm::SchedulingPriorityQueue::isReady ( SUnit * ) const inlinevirtual

pop()

virtual SUnit * llvm::SchedulingPriorityQueue::pop ( ) pure virtual

push()

virtual void llvm::SchedulingPriorityQueue::push ( SUnit * U) pure virtual

push_all()

void llvm::SchedulingPriorityQueue::push_all ( const std::vector< SUnit * > & Nodes) inline

releaseState()

virtual void llvm::SchedulingPriorityQueue::releaseState ( ) pure virtual

remove()

virtual void llvm::SchedulingPriorityQueue::remove ( SUnit * SU) pure virtual

scheduledNode()

virtual void llvm::SchedulingPriorityQueue::scheduledNode ( SUnit * ) inlinevirtual

setCurCycle()

void llvm::SchedulingPriorityQueue::setCurCycle ( unsigned Cycle) inline

tracksRegPressure()

virtual bool llvm::SchedulingPriorityQueue::tracksRegPressure ( ) const inlinevirtual

unscheduledNode()

virtual void llvm::SchedulingPriorityQueue::unscheduledNode ( SUnit * ) inlinevirtual

updateNode()

virtual void llvm::SchedulingPriorityQueue::updateNode ( const SUnit * SU) pure virtual

The documentation for this class was generated from the following files: