LLVM API Documentation

Public Member Functions
llvm::SchedulingPriorityQueue Class Reference

#include <ScheduleDAG.h>

Inheritance diagram for llvm::SchedulingPriorityQueue:
Inheritance graph
[legend]

List of all members.

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 SUnitpop ()=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

Detailed Description

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


Constructor & Destructor Documentation

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

Definition at line 505 of file ScheduleDAG.h.

virtual llvm::SchedulingPriorityQueue::~SchedulingPriorityQueue ( ) [inline, virtual]

Definition at line 507 of file ScheduleDAG.h.


Member Function Documentation

virtual void llvm::SchedulingPriorityQueue::addNode ( const SUnit SU) [pure virtual]
virtual void llvm::SchedulingPriorityQueue::dump ( ScheduleDAG ) const [inline, virtual]

Reimplemented in llvm::ResourcePriorityQueue, and llvm::LatencyPriorityQueue.

Definition at line 538 of file ScheduleDAG.h.

virtual bool llvm::SchedulingPriorityQueue::empty ( ) const [pure virtual]
unsigned llvm::SchedulingPriorityQueue::getCurCycle ( ) const [inline]

Definition at line 552 of file ScheduleDAG.h.

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

Definition at line 518 of file ScheduleDAG.h.

virtual void llvm::SchedulingPriorityQueue::initNodes ( std::vector< SUnit > &  SUnits) [pure virtual]
virtual bool llvm::SchedulingPriorityQueue::isBottomUp ( ) const [pure virtual]
virtual bool llvm::SchedulingPriorityQueue::isReady ( SUnit ) const [inline, virtual]

Definition at line 522 of file ScheduleDAG.h.

virtual SUnit* llvm::SchedulingPriorityQueue::pop ( ) [pure virtual]
virtual void llvm::SchedulingPriorityQueue::push ( SUnit U) [pure virtual]
void llvm::SchedulingPriorityQueue::push_all ( const std::vector< SUnit * > &  Nodes) [inline]

Definition at line 528 of file ScheduleDAG.h.

References I, and push().

virtual void llvm::SchedulingPriorityQueue::releaseState ( ) [pure virtual]
virtual void llvm::SchedulingPriorityQueue::remove ( SUnit SU) [pure virtual]
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 544 of file ScheduleDAG.h.

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

Definition at line 548 of file ScheduleDAG.h.

virtual bool llvm::SchedulingPriorityQueue::tracksRegPressure ( ) const [inline, virtual]

Definition at line 520 of file ScheduleDAG.h.

virtual void llvm::SchedulingPriorityQueue::unscheduledNode ( SUnit ) [inline, virtual]

Definition at line 546 of file ScheduleDAG.h.

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

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