LLVM API Documentation

Public Member Functions
llvm::ResourcePriorityQueue Class Reference

#include <ResourcePriorityQueue.h>

Inheritance diagram for llvm::ResourcePriorityQueue:
Inheritance graph
[legend]
Collaboration diagram for llvm::ResourcePriorityQueue:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 ResourcePriorityQueue (SelectionDAGISel *IS)
 ~ResourcePriorityQueue ()
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
signed SUSchedulingCost (SUnit *SU)
void initNumRegDefsLeft (SUnit *SU)
void updateNumRegDefsLeft (SUnit *SU)
signed regPressureDelta (SUnit *SU, bool RawPressure=false)
signed rawRegPressureDelta (SUnit *SU, unsigned RCId)
bool empty () const override
void push (SUnit *U) override
SUnitpop () override
void remove (SUnit *SU) override
void dump (ScheduleDAG *DAG) const override
void scheduledNode (SUnit *Node) override
 scheduledNode - Main resource tracking point.
bool isResourceAvailable (SUnit *SU)
void reserveResources (SUnit *SU)
 Keep track of available resources.

Detailed Description

Definition at line 38 of file ResourcePriorityQueue.h.


Constructor & Destructor Documentation

Definition at line 80 of file ResourcePriorityQueue.h.


Member Function Documentation

void llvm::ResourcePriorityQueue::addNode ( const SUnit SU) [inline, override, virtual]

Implements llvm::SchedulingPriorityQueue.

Definition at line 88 of file ResourcePriorityQueue.h.

void ResourcePriorityQueue::dump ( ScheduleDAG DAG) const [override, virtual]
bool llvm::ResourcePriorityQueue::empty ( ) const [inline, override, virtual]

Implements llvm::SchedulingPriorityQueue.

Definition at line 119 of file ResourcePriorityQueue.h.

Referenced by dump(), and pop().

Definition at line 98 of file ResourcePriorityQueue.h.

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

Definition at line 103 of file ResourcePriorityQueue.h.

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

void ResourcePriorityQueue::initNodes ( std::vector< SUnit > &  sunits) [override, virtual]

Initialize nodes.

Implements llvm::SchedulingPriorityQueue.

Definition at line 171 of file ResourcePriorityQueue.cpp.

References initNumRegDefsLeft(), and llvm::SUnit::NodeQueueId.

bool llvm::ResourcePriorityQueue::isBottomUp ( ) const [inline, override, virtual]

Implements llvm::SchedulingPriorityQueue.

Definition at line 84 of file ResourcePriorityQueue.h.

SUnit * ResourcePriorityQueue::pop ( ) [override, virtual]

Main access point - returns next instructions to be placed in scheduling sequence.

Implements llvm::SchedulingPriorityQueue.

Definition at line 601 of file ResourcePriorityQueue.cpp.

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

Referenced by dump().

void ResourcePriorityQueue::push ( SUnit U) [override, virtual]
signed ResourcePriorityQueue::regPressureDelta ( SUnit SU,
bool  RawPressure = false 
)

Estimates change in reg pressure from this SU. It is achieved by trivial tracking of defined and used vregs in dependent instructions. The RawPressure flag makes this function to ignore existing reg file sizes, and report raw def/use balance.

Definition at line 363 of file ResourcePriorityQueue.cpp.

References llvm::TargetRegisterClass::getID(), llvm::SUnit::getNode(), I, llvm::SDNode::isMachineOpcode(), rawRegPressureDelta(), llvm::TargetRegisterInfo::regclass_begin(), and llvm::TargetRegisterInfo::regclass_end().

Referenced by SUSchedulingCost().

void llvm::ResourcePriorityQueue::releaseState ( ) [inline, override, virtual]

Implements llvm::SchedulingPriorityQueue.

Definition at line 94 of file ResourcePriorityQueue.h.

void ResourcePriorityQueue::remove ( SUnit SU) [override, virtual]

Implements llvm::SchedulingPriorityQueue.

Definition at line 635 of file ResourcePriorityQueue.cpp.

References I, and std::swap().

void ResourcePriorityQueue::scheduledNode ( SUnit Node) [override, virtual]
void llvm::ResourcePriorityQueue::updateNode ( const SUnit SU) [inline, override, virtual]

Implements llvm::SchedulingPriorityQueue.

Definition at line 92 of file ResourcePriorityQueue.h.


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