LLVM 22.0.0git
llvm::LatencyPriorityQueue Class Reference

#include "llvm/CodeGen/LatencyPriorityQueue.h"

Inheritance diagram for llvm::LatencyPriorityQueue:
[legend]

Public Member Functions

 LatencyPriorityQueue ()
bool isBottomUp () const override
void initNodes (std::vector< SUnit > &sunits) override
void addNode (const SUnit *SU) override
void updateNode (const SUnit *SU) override
void releaseState () override
unsigned getLatency (unsigned NodeNum) const
unsigned getNumSolelyBlockNodes (unsigned NodeNum) const
bool empty () const override
void push (SUnit *U) override
SUnitpop () override
void remove (SUnit *SU) override
LLVM_DUMP_METHOD void dump (ScheduleDAG *DAG) const override
void scheduledNode (SUnit *SU) override
 As each node is scheduled, this method is invoked.
Public Member Functions inherited from llvm::SchedulingPriorityQueue
 SchedulingPriorityQueue (bool rf=false)
virtual ~SchedulingPriorityQueue ()=default
bool hasReadyFilter () const
virtual bool tracksRegPressure () const
virtual bool isReady (SUnit *) const
void push_all (const std::vector< SUnit * > &Nodes)
virtual void unscheduledNode (SUnit *)
void setCurCycle (unsigned Cycle)
unsigned getCurCycle () const

Detailed Description

Definition at line 32 of file LatencyPriorityQueue.h.

Constructor & Destructor Documentation

◆ LatencyPriorityQueue()

llvm::LatencyPriorityQueue::LatencyPriorityQueue ( )
inline

Definition at line 47 of file LatencyPriorityQueue.h.

Member Function Documentation

◆ addNode()

void llvm::LatencyPriorityQueue::addNode ( const SUnit * SU)
inlineoverridevirtual

Implements llvm::SchedulingPriorityQueue.

Definition at line 57 of file LatencyPriorityQueue.h.

◆ dump()

LLVM_DUMP_METHOD void LatencyPriorityQueue::dump ( ScheduleDAG * DAG) const
overridevirtual

◆ empty()

bool llvm::LatencyPriorityQueue::empty ( ) const
inlineoverridevirtual

Implements llvm::SchedulingPriorityQueue.

Definition at line 78 of file LatencyPriorityQueue.h.

Referenced by pop().

◆ getLatency()

unsigned llvm::LatencyPriorityQueue::getLatency ( unsigned NodeNum) const
inline

Definition at line 68 of file LatencyPriorityQueue.h.

References assert().

◆ getNumSolelyBlockNodes()

unsigned llvm::LatencyPriorityQueue::getNumSolelyBlockNodes ( unsigned NodeNum) const
inline

Definition at line 73 of file LatencyPriorityQueue.h.

References assert().

◆ initNodes()

void llvm::LatencyPriorityQueue::initNodes ( std::vector< SUnit > & sunits)
inlineoverridevirtual

Implements llvm::SchedulingPriorityQueue.

Definition at line 52 of file LatencyPriorityQueue.h.

◆ isBottomUp()

bool llvm::LatencyPriorityQueue::isBottomUp ( ) const
inlineoverridevirtual

Implements llvm::SchedulingPriorityQueue.

Definition at line 50 of file LatencyPriorityQueue.h.

◆ pop()

SUnit * LatencyPriorityQueue::pop ( )
overridevirtual

Implements llvm::SchedulingPriorityQueue.

Definition at line 115 of file LatencyPriorityQueue.cpp.

References empty(), I, and std::swap().

◆ push()

void LatencyPriorityQueue::push ( SUnit * U)
overridevirtual

◆ releaseState()

void llvm::LatencyPriorityQueue::releaseState ( )
inlineoverridevirtual

Implements llvm::SchedulingPriorityQueue.

Definition at line 64 of file LatencyPriorityQueue.h.

◆ remove()

void LatencyPriorityQueue::remove ( SUnit * SU)
overridevirtual

Implements llvm::SchedulingPriorityQueue.

Definition at line 129 of file LatencyPriorityQueue.cpp.

References assert(), llvm::find(), I, and std::swap().

◆ scheduledNode()

void LatencyPriorityQueue::scheduledNode ( SUnit * )
overridevirtual

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 from llvm::SchedulingPriorityQueue.

Definition at line 89 of file LatencyPriorityQueue.cpp.

References llvm::SDep::getSUnit(), and llvm::SUnit::Succs.

◆ updateNode()

void llvm::LatencyPriorityQueue::updateNode ( const SUnit * SU)
inlineoverridevirtual

Implements llvm::SchedulingPriorityQueue.

Definition at line 61 of file LatencyPriorityQueue.h.


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