LLVM  13.0.0git
Public Types | Public Member Functions | List of all members
llvm::ReadyQueue Class Reference

Helpers for implementing custom MachineSchedStrategy classes. More...

#include "llvm/CodeGen/MachineScheduler.h"

Public Types

using iterator = std::vector< SUnit * >::iterator

Public Member Functions

 ReadyQueue (unsigned id, const Twine &name)
unsigned getID () const
StringRef getName () const
bool isInQueue (SUnit *SU) const
bool empty () const
void clear ()
unsigned size () const
iterator begin ()
iterator end ()
ArrayRef< SUnit * > elements ()
iterator find (SUnit *SU)
void push (SUnit *SU)
iterator remove (iterator I)
void dump () const

Detailed Description

Helpers for implementing custom MachineSchedStrategy classes.

These take care of the book-keeping associated with list scheduling heuristics. ReadyQueue encapsulates vector of "ready" SUnits with basic convenience methods for pushing and removing nodes. ReadyQueue's are uniquely identified by an ID. SUnit::NodeQueueId is a mask of the ReadyQueues the SUnit is in.

This is a convenience class that may be used by implementations of MachineSchedStrategy.

Definition at line 531 of file MachineScheduler.h.

Member Typedef Documentation

◆ iterator

using llvm::ReadyQueue::iterator = std::vector<SUnit*>::iterator

Definition at line 552 of file MachineScheduler.h.

Constructor & Destructor Documentation

◆ ReadyQueue()

llvm::ReadyQueue::ReadyQueue ( unsigned  id,
const Twine name 

Definition at line 537 of file MachineScheduler.h.

Member Function Documentation

◆ begin()

iterator llvm::ReadyQueue::begin ( )

◆ clear()

void llvm::ReadyQueue::clear ( )

Definition at line 548 of file MachineScheduler.h.

Referenced by llvm::SchedBoundary::reset().

◆ dump()

LLVM_DUMP_METHOD void ReadyQueue::dump ( ) const

◆ elements()

ArrayRef<SUnit*> llvm::ReadyQueue::elements ( )

Definition at line 558 of file MachineScheduler.h.

Referenced by computeRemLatency().

◆ empty()

bool llvm::ReadyQueue::empty ( ) const

◆ end()

iterator llvm::ReadyQueue::end ( )

◆ find()

iterator llvm::ReadyQueue::find ( SUnit SU)

Definition at line 560 of file MachineScheduler.h.

References llvm::find().

Referenced by llvm::SchedBoundary::removeReady().

◆ getID()

unsigned llvm::ReadyQueue::getID ( ) const

◆ getName()

StringRef llvm::ReadyQueue::getName ( ) const

◆ isInQueue()

bool llvm::ReadyQueue::isInQueue ( SUnit SU) const

Definition at line 544 of file MachineScheduler.h.

References llvm::SUnit::NodeQueueId.

Referenced by llvm::SchedBoundary::removeReady().

◆ push()

void llvm::ReadyQueue::push ( SUnit SU)

◆ remove()

iterator llvm::ReadyQueue::remove ( iterator  I)

◆ size()

unsigned llvm::ReadyQueue::size ( ) const

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