This class can compute a topological ordering for SUnits and provides methods for dynamically updating the ordering as new edges are added.

Synopsis

Declared in <llvm/CodeGen/ScheduleDAG.h>

class ScheduleDAGTopologicalSort;

Description

This allows a very fast implementation of IsReachable, for example.

Type Aliases

Name

Description

const_iterator

Const iterator over nodes in topological order.

const_reverse_iterator

Const reverse iterator over nodes in topological order.

iterator

Mutable iterator over nodes in topological order.

reverse_iterator

Mutable reverse iterator over nodes in topological order.

Member Functions

Name

Description

ScheduleDAGTopologicalSort [constructor]

Construct a topological sort helper for SUnits with exit node ExitSU.

AddPred

Updates the topological ordering to accommodate an edge to be added from SUnit X to SUnit Y.

AddPredQueued

Queues an update to the topological ordering to accommodate an edge to be added from SUnit X to SUnit Y.

AddSUnitWithoutPredecessors

Add a SUnit without predecessors to the end of the topological order. It also must be the first new node added to the DAG.

GetSubGraph

Returns SUs in both the successor and predecessor subtrees.

InitDAGTopologicalSorting

Creates the initial topological ordering from the DAG to be scheduled.

IsReachable

Checks if SU is reachable from TargetSU.

MarkDirty

Mark the ordering as temporarily broken, after a new node has been added.

RemovePred

Updates the topological ordering to accommodate an edge to be removed from the specified node N from the predecessors of the current node M.

WillCreateCycle

Returns true if addPred(TargetSU, SU) creates a cycle.

begin

begin overloads

end

end overloads

rbegin

rbegin overloads

rend

rend overloads

Created with MrDocs