LLVM 19.0.0git
Public Member Functions | List of all members
llvm::LatencyPriorityQueue Class Reference

#include "llvm/CodeGen/LatencyPriorityQueue.h"

Inheritance diagram for llvm::LatencyPriorityQueue:
Inheritance graph
[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
 
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 *)
 As each node is scheduled, this method is invoked.
 
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

Reimplemented from llvm::SchedulingPriorityQueue.

Definition at line 139 of file LatencyPriorityQueue.cpp.

References llvm::dbgs(), and llvm::ScheduleDAG::dumpNode().

◆ 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().

Referenced by llvm::latency_sort::operator()().

◆ getNumSolelyBlockNodes()

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

Definition at line 73 of file LatencyPriorityQueue.h.

References assert().

Referenced by llvm::latency_sort::operator()().

◆ 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: