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

#include "llvm/CodeGen/LatencyPriorityQueue.h"

Inheritance diagram for llvm::LatencyPriorityQueue:
Inheritance graph
[legend]
Collaboration diagram for llvm::LatencyPriorityQueue:
Collaboration 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. More...
 
- 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 33 of file LatencyPriorityQueue.h.

Constructor & Destructor Documentation

◆ LatencyPriorityQueue()

llvm::LatencyPriorityQueue::LatencyPriorityQueue ( )
inline

Definition at line 48 of file LatencyPriorityQueue.h.

Member Function Documentation

◆ addNode()

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

Implements llvm::SchedulingPriorityQueue.

Definition at line 58 of file LatencyPriorityQueue.h.

◆ dump()

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

Reimplemented from llvm::SchedulingPriorityQueue.

Definition at line 145 of file LatencyPriorityQueue.cpp.

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

◆ empty()

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

Implements llvm::SchedulingPriorityQueue.

Definition at line 79 of file LatencyPriorityQueue.h.

References llvm::dump(), and LLVM_DUMP_METHOD.

◆ getLatency()

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

Definition at line 69 of file LatencyPriorityQueue.h.

References assert().

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

◆ getNumSolelyBlockNodes()

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

Definition at line 74 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 53 of file LatencyPriorityQueue.h.

◆ isBottomUp()

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

Implements llvm::SchedulingPriorityQueue.

Definition at line 51 of file LatencyPriorityQueue.h.

◆ pop()

SUnit * LatencyPriorityQueue::pop ( )
overridevirtual

Implements llvm::SchedulingPriorityQueue.

Definition at line 121 of file LatencyPriorityQueue.cpp.

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

◆ push()

void LatencyPriorityQueue::push ( SUnit U)
overridevirtual

Implements llvm::SchedulingPriorityQueue.

Definition at line 74 of file LatencyPriorityQueue.cpp.

References E, I, llvm::SUnit::NodeNum, and llvm::SUnit::Succs.

◆ releaseState()

void llvm::LatencyPriorityQueue::releaseState ( )
inlineoverridevirtual

Implements llvm::SchedulingPriorityQueue.

Definition at line 65 of file LatencyPriorityQueue.h.

◆ remove()

void LatencyPriorityQueue::remove ( SUnit SU)
overridevirtual

Implements llvm::SchedulingPriorityQueue.

Definition at line 135 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 93 of file LatencyPriorityQueue.cpp.

References E, I, llvm::SUnit::isAvailable, and llvm::SUnit::Succs.

◆ updateNode()

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

Implements llvm::SchedulingPriorityQueue.

Definition at line 62 of file LatencyPriorityQueue.h.


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