class SwingSchedulerDAG::Circuits
Declaration
class SwingSchedulerDAG::Circuits { /* full declaration omitted */ };
Description
Helper class to implement Johnson's circuit finding algorithm.
Declared at: llvm/include/llvm/CodeGen/MachinePipeliner.h:161
Member Variables
- private std::vector<SUnit>& SUnits
- private SetVector<llvm::SUnit*> Stack
- private llvm::BitVector Blocked
- private SmallVector<SmallPtrSet<llvm::SUnit*, 4>, 10> B
- private SmallVector<SmallVector<int, 4>, 16> AdjK
- private std::vector<int>* Node2Idx
- private unsigned int NumPaths
- private static unsigned int MaxPaths
Method Overview
- public Circuits(std::vector<SUnit> & SUs, llvm::ScheduleDAGTopologicalSort & Topo)
- public bool circuit(int V, int S, llvm::SwingSchedulerDAG::NodeSetType & NodeSets, bool HasBackedge = false)
- public void createAdjacencyStructure(llvm::SwingSchedulerDAG * DAG)
- public void reset()
- public void unblock(int U)
- public ~Circuits()
Methods
¶Circuits(std::vector<SUnit>& SUs,
llvm::ScheduleDAGTopologicalSort& Topo)
Circuits(std::vector<SUnit>& SUs,
llvm::ScheduleDAGTopologicalSort& Topo)
Declared at: llvm/include/llvm/CodeGen/MachinePipeliner.h:173
Parameters
- std::vector<SUnit>& SUs
- llvm::ScheduleDAGTopologicalSort& Topo
¶bool circuit(int V,
int S,
llvm::SwingSchedulerDAG::NodeSetType&
NodeSets,
bool HasBackedge = false)
bool circuit(int V,
int S,
llvm::SwingSchedulerDAG::NodeSetType&
NodeSets,
bool HasBackedge = false)
Description
Identify an elementary circuit in the dependence graph starting at the specified node.
Declared at: llvm/include/llvm/CodeGen/MachinePipeliner.h:192
Parameters
- int V
- int S
- llvm::SwingSchedulerDAG::NodeSetType& NodeSets
- bool HasBackedge = false
¶void createAdjacencyStructure(
llvm::SwingSchedulerDAG* DAG)
void createAdjacencyStructure(
llvm::SwingSchedulerDAG* DAG)
Description
Create the adjacency structure of the nodes in the graph.
Declared at: llvm/include/llvm/CodeGen/MachinePipeliner.h:191
Parameters
¶void reset()
void reset()
Description
Reset the data structures used in the circuit algorithm.
Declared at: llvm/include/llvm/CodeGen/MachinePipeliner.h:184
¶void unblock(int U)
void unblock(int U)
Description
Unblock a node in the circuit finding algorithm.
Declared at: llvm/include/llvm/CodeGen/MachinePipeliner.h:193
Parameters
- int U
¶~Circuits()
~Circuits()
Declared at: llvm/include/llvm/CodeGen/MachinePipeliner.h:181