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
Member Functions
Name |
Description |
|
Constructor |
Updates the topological ordering to accommodate an edge to be added from SUnit |
|
Queues an update to the topological ordering to accommodate an edge to be added from SUnit |
|
Add a SUnit without predecessors to the end of the topological order. It also must be the first new node added to the DAG. |
|
Returns an array of SUs that are both in the successor subtree of StartSU and in the predecessor subtree of TargetSU. StartSU and TargetSU are not in the array. Success is false if TargetSU is not in the successor subtree of StartSU, else it is true. |
|
Creates the initial topological ordering from the DAG to be scheduled. |
|
Checks if |
|
Mark the ordering as temporarily broken, after a new node has been added. |
|
Updates the topological ordering to accommodate an edge to be removed from the specified node |
|
Returns true if addPred(TargetSU, SU) creates a cycle. |
|
Created with MrDocs