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

Member Variables

private unsigned int CurCycle = 0
private bool HasReadyFilter

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 anchor()

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

virtual void dump(llvm::ScheduleDAG*) const

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

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

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

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

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

Parameters

llvm::SUnit*

void setCurCycle(unsigned int Cycle)

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

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

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