P4C
The P4 Compiler
 
Loading...
Searching...
No Matches
graphs::ControlGraphs Class Reference
Inheritance diagram for graphs::ControlGraphs:

Classes

class  ControlStack
 

Public Member Functions

 ControlGraphs (P4::ReferenceMap *refMap, P4::TypeMap *typeMap, const cstring &graphsDir)
 
bool preorder (const IR::AssignmentStatement *statement) override
 
bool preorder (const IR::BlockStatement *statement) override
 
bool preorder (const IR::ControlBlock *block) override
 
bool preorder (const IR::ExitStatement *) override
 
bool preorder (const IR::IfStatement *statement) override
 
bool preorder (const IR::Key *key) override
 
bool preorder (const IR::MethodCallStatement *statement) override
 
bool preorder (const IR::P4Action *action) override
 
bool preorder (const IR::P4Control *cont) override
 
bool preorder (const IR::P4Table *table) override
 
bool preorder (const IR::PackageBlock *block) override
 
bool preorder (const IR::ReturnStatement *) override
 
bool preorder (const IR::SwitchStatement *statement) override
 
- Public Member Functions inherited from graphs::Graphs
vertex_t add_and_connect_vertex (const cstring &name, VertexType type)
 
void add_edge (const vertex_t &from, const vertex_t &to, const cstring &name)
 
void add_edge (const vertex_t &from, const vertex_t &to, const cstring &name, unsigned cluster_id)
 used to connect subgraphs
 
vertex_t add_vertex (const cstring &name, VertexType type)
 
std::optional< vertex_t > merge_other_statements_into_vertex ()
 

Public Attributes

std::vector< Graph * > controlGraphsArray {}
 

Additional Inherited Members

- Public Types inherited from graphs::Graphs
using edgeProperties
 
using Graph = boost::subgraph<Graph_>
 
using Graph_
 
using graphProperties
 
using GraphvizAttributes = std::map<cstring, cstring>
 
using Parents = std::vector<std::pair<vertex_t, EdgeTypeIface *>>
 
using vertex_t = boost::graph_traits<Graph>::vertex_descriptor
 
using vertexProperties = boost::property<boost::vertex_attribute_t, GraphvizAttributes, Vertex>
 
enum class  VertexType {
  TABLE , KEY , ACTION , CONDITION ,
  SWITCH , STATEMENTS , CONTROL , OTHER ,
  STATE , EMPTY
}
 
- Protected Attributes inherited from graphs::Graphs
vertex_t exit_v {}
 
Graph * g {nullptr}
 
Parents parents {}
 
vertex_t start_v {}
 
std::vector< const IR::Statement * > statementsStack {}