class ResourcePriorityQueue

Declaration

class ResourcePriorityQueue : public SchedulingPriorityQueue { /* full declaration omitted */ };

Description

This interface is used to plug different priorities computation algorithms into the list scheduler. It implements the interface of a standard priority queue, where nodes are inserted in arbitrary order and returned in priority order. The computation of the priority and the representation of the queue are totally up to the implementation to decide.

Declared at: llvm/include/llvm/CodeGen/ResourcePriorityQueue.h:37

Inherits from: SchedulingPriorityQueue

Method Overview

Inherited from SchedulingPriorityQueue:

Methods

ResourcePriorityQueue(llvm::SelectionDAGISel* IS)

Declared at: llvm/include/llvm/CodeGen/ResourcePriorityQueue.h:77

Parameters

llvm::SelectionDAGISel* IS

int SUSchedulingCost(llvm::SUnit* SU)

Description

Single cost function reflecting benefit of scheduling SU in the current cycle.

Declared at: llvm/include/llvm/CodeGen/ResourcePriorityQueue.h:105

Parameters

llvm::SUnit* SU

void addNode(const llvm::SUnit* SU)

Declared at: llvm/include/llvm/CodeGen/ResourcePriorityQueue.h:83

Parameters

const llvm::SUnit* SU

bool empty() const

Declared at: llvm/include/llvm/CodeGen/ResourcePriorityQueue.h:114

unsigned int getLatency(
    unsigned int NodeNum) const

Declared at: llvm/include/llvm/CodeGen/ResourcePriorityQueue.h:93

Parameters

unsigned int NodeNum

unsigned int getNumSolelyBlockNodes(
    unsigned int NodeNum) const

Declared at: llvm/include/llvm/CodeGen/ResourcePriorityQueue.h:98

Parameters

unsigned int NodeNum

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

Declared at: llvm/include/llvm/CodeGen/ResourcePriorityQueue.h:81

Parameters

std::vector<SUnit>& sunits

void initNumRegDefsLeft(llvm::SUnit* SU)

Description

InitNumRegDefsLeft - Determine the # of regs defined by this node.

Declared at: llvm/include/llvm/CodeGen/ResourcePriorityQueue.h:109

Parameters

llvm::SUnit* SU

bool isBottomUp() const

Declared at: llvm/include/llvm/CodeGen/ResourcePriorityQueue.h:79

bool isResourceAvailable(llvm::SUnit* SU)

Declared at: llvm/include/llvm/CodeGen/ResourcePriorityQueue.h:124

Parameters

llvm::SUnit* SU

llvm::SUnit* pop()

Declared at: llvm/include/llvm/CodeGen/ResourcePriorityQueue.h:118

void push(llvm::SUnit* U)

Declared at: llvm/include/llvm/CodeGen/ResourcePriorityQueue.h:116

Parameters

llvm::SUnit* U

int rawRegPressureDelta(llvm::SUnit* SU,
                        unsigned int RCId)

Declared at: llvm/include/llvm/CodeGen/ResourcePriorityQueue.h:112

Parameters

llvm::SUnit* SU
unsigned int RCId

int regPressureDelta(llvm::SUnit* SU,
                     bool RawPressure = false)

Declared at: llvm/include/llvm/CodeGen/ResourcePriorityQueue.h:111

Parameters

llvm::SUnit* SU
bool RawPressure = false

void releaseState()

Declared at: llvm/include/llvm/CodeGen/ResourcePriorityQueue.h:89

void remove(llvm::SUnit* SU)

Declared at: llvm/include/llvm/CodeGen/ResourcePriorityQueue.h:120

Parameters

llvm::SUnit* SU

void reserveResources(llvm::SUnit* SU)

Declared at: llvm/include/llvm/CodeGen/ResourcePriorityQueue.h:125

Parameters

llvm::SUnit* SU

void scheduledNode(llvm::SUnit* SU)

Description

scheduledNode - Main resource tracking point.

Declared at: llvm/include/llvm/CodeGen/ResourcePriorityQueue.h:123

Parameters

llvm::SUnit* SU

void updateNode(const llvm::SUnit* SU)

Declared at: llvm/include/llvm/CodeGen/ResourcePriorityQueue.h:87

Parameters

const llvm::SUnit* SU

void updateNumRegDefsLeft(llvm::SUnit* SU)

Declared at: llvm/include/llvm/CodeGen/ResourcePriorityQueue.h:110

Parameters

llvm::SUnit* SU