class SchedulingPriorityQueue

Declaration

class 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/ScheduleDAG.h:496

Method Overview

Methods

SchedulingPriorityQueue(bool rf = false)

Declared at: llvm/include/llvm/CodeGen/ScheduleDAG.h:503

Parameters

bool rf = false

virtual void addNode(const llvm::SUnit* SU)

Declared at: llvm/include/llvm/CodeGen/ScheduleDAG.h:510

Parameters

const llvm::SUnit* SU

virtual void dump(llvm::ScheduleDAG*) const

Declared at: llvm/include/llvm/CodeGen/ScheduleDAG.h:537

Parameters

llvm::ScheduleDAG*

virtual bool empty() const

Declared at: llvm/include/llvm/CodeGen/ScheduleDAG.h:514

unsigned int getCurCycle() const

Declared at: llvm/include/llvm/CodeGen/ScheduleDAG.h:550

bool hasReadyFilter() const

Declared at: llvm/include/llvm/CodeGen/ScheduleDAG.h:516

virtual void initNodes(std::vector<SUnit>& SUnits)

Declared at: llvm/include/llvm/CodeGen/ScheduleDAG.h:509

Parameters

std::vector<SUnit>& SUnits

virtual bool isBottomUp() const

Declared at: llvm/include/llvm/CodeGen/ScheduleDAG.h:507

virtual bool isReady(llvm::SUnit*) const

Declared at: llvm/include/llvm/CodeGen/ScheduleDAG.h:520

Parameters

llvm::SUnit*

virtual llvm::SUnit* pop()

Declared at: llvm/include/llvm/CodeGen/ScheduleDAG.h:533

virtual void push(llvm::SUnit* U)

Declared at: llvm/include/llvm/CodeGen/ScheduleDAG.h:525

Parameters

llvm::SUnit* U

void push_all(const std::vector<SUnit*>& Nodes)

Declared at: llvm/include/llvm/CodeGen/ScheduleDAG.h:527

Parameters

const std::vector<SUnit*>& Nodes

virtual void releaseState()

Declared at: llvm/include/llvm/CodeGen/ScheduleDAG.h:512

virtual void remove(llvm::SUnit* SU)

Declared at: llvm/include/llvm/CodeGen/ScheduleDAG.h:535

Parameters

llvm::SUnit* SU

virtual void scheduledNode(llvm::SUnit*)

Description

As each node is scheduled, this method is invoked. This allows the priority function to adjust the priority of related unscheduled nodes, for example.

Declared at: llvm/include/llvm/CodeGen/ScheduleDAG.h:542

Parameters

llvm::SUnit*

void setCurCycle(unsigned int Cycle)

Declared at: llvm/include/llvm/CodeGen/ScheduleDAG.h:546

Parameters

unsigned int Cycle

virtual bool tracksRegPressure() const

Declared at: llvm/include/llvm/CodeGen/ScheduleDAG.h:518

virtual void unscheduledNode(llvm::SUnit*)

Declared at: llvm/include/llvm/CodeGen/ScheduleDAG.h:544

Parameters

llvm::SUnit*

virtual void updateNode(const llvm::SUnit* SU)

Declared at: llvm/include/llvm/CodeGen/ScheduleDAG.h:511

Parameters

const llvm::SUnit* SU

virtual ~SchedulingPriorityQueue()

Declared at: llvm/include/llvm/CodeGen/ScheduleDAG.h:505