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

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)

Declared at: llvm/include/llvm/CodeGen/MachinePipeliner.h:172

Parameters

std::vector<SUnit>& SUs
llvm::ScheduleDAGTopologicalSort& Topo

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

Parameters

int V
int S
llvm::SwingSchedulerDAG::NodeSetType& NodeSets
bool HasBackedge = false

void createAdjacencyStructure(
    llvm::SwingSchedulerDAG* DAG)

Description

Create the adjacency structure of the nodes in the graph.

Declared at: llvm/include/llvm/CodeGen/MachinePipeliner.h:190

Parameters

llvm::SwingSchedulerDAG* DAG

void reset()

Description

Reset the data structures used in the circuit algorithm.

Declared at: llvm/include/llvm/CodeGen/MachinePipeliner.h:183

void unblock(int U)

Description

Unblock a node in the circuit finding algorithm.

Declared at: llvm/include/llvm/CodeGen/MachinePipeliner.h:192

Parameters

int U

~Circuits()

Declared at: llvm/include/llvm/CodeGen/MachinePipeliner.h:180