4#include <unordered_map>
5#include <unordered_set>
24 std::unordered_map<graph::Vertex, structured_control_flow::ControlFlowNode*, boost::hash<graph::Vertex>> nodes_;
25 std::unordered_map<structured_control_flow::ControlFlowNode*, structured_control_flow::ControlFlowNode*> dom_tree_;
26 std::unordered_map<structured_control_flow::ControlFlowNode*, structured_control_flow::ControlFlowNode*> pdom_tree_;
33 resolve_real_ancestor(
const std::unordered_map<graph::Vertex, graph::Vertex>& tree,
graph::Vertex start)
const;
38 std::string
name()
const override {
39 return "ControlFlowAnalysis";
44 std::unordered_set<structured_control_flow::ControlFlowNode*>
exits()
const;
46 const std::unordered_map<structured_control_flow::ControlFlowNode*, structured_control_flow::ControlFlowNode*>&
49 const std::unordered_map<structured_control_flow::ControlFlowNode*, structured_control_flow::ControlFlowNode*>&
Definition structured_sdfg.h:30
Analysis(StructuredSDFG &sdfg)
std::unordered_set< structured_control_flow::ControlFlowNode * > exits() const
ControlFlowAnalysis(StructuredSDFG &sdfg)
const std::unordered_map< structured_control_flow::ControlFlowNode *, structured_control_flow::ControlFlowNode * > & dom_tree() const
bool dominates(structured_control_flow::ControlFlowNode &a, structured_control_flow::ControlFlowNode &b) const
const std::unordered_map< structured_control_flow::ControlFlowNode *, structured_control_flow::ControlFlowNode * > & pdom_tree() const
bool post_dominates(structured_control_flow::ControlFlowNode &a, structured_control_flow::ControlFlowNode &b) const
void run(analysis::AnalysisManager &analysis_manager) override
std::string name() const override
Definition control_flow_analysis.h:38
friend class AnalysisManager
Definition control_flow_analysis.h:16
Base class for all structured control flow nodes in a StructuredSDFG.
Definition control_flow_node.h:44
boost::graph_traits< Graph >::vertex_descriptor Vertex
Definition graph.h:25
boost::adjacency_list< boost::listS, boost::listS, boost::bidirectionalS > Graph
Definition graph.h:24