LLVM API Documentation

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | List of all members
llvm::SchedulingPriorityQueue Class Referenceabstract

#include <ScheduleDAG.h>

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

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

Constructor & Destructor Documentation

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

Definition at line 486 of file ScheduleDAG.h.

virtual llvm::SchedulingPriorityQueue::~SchedulingPriorityQueue ( )
inlinevirtual

Definition at line 488 of file ScheduleDAG.h.

Member Function Documentation

virtual void llvm::SchedulingPriorityQueue::addNode ( const SUnit SU)
pure virtual
virtual void llvm::SchedulingPriorityQueue::dump ( ScheduleDAG ) const
inlinevirtual

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

Definition at line 519 of file ScheduleDAG.h.

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

Definition at line 533 of file ScheduleDAG.h.

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

Definition at line 499 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
inlinevirtual

Definition at line 503 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 509 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 )
inlinevirtual

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

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

Definition at line 529 of file ScheduleDAG.h.

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

Definition at line 501 of file ScheduleDAG.h.

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

Definition at line 527 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: