43 #ifndef OPERATIONS_CFG_COMPUTATION_HPP 44 #define OPERATIONS_CFG_COMPUTATION_HPP 120 void connect_start_nodes(
const operations_graph_constructorRef ogc,
const std::string& next,
bool true_edge =
false,
121 bool false_edge =
false,
unsigned int nodeid = 0);
132 const tree_nodeRef tn,
const std::string& f_name,
unsigned int bb_index);
DesignFlowStep_Status InternalExec() override
Computes the operations CFG graph data structure.
class providing methods to manage an operations graph.
RelationshipType
The relationship type.
This class manages the tree structures extracted from the raw file.
~operations_cfg_computation() override
Destructor.
std::map< unsigned int, std::string > label_decl_map
relation between label declaration and first statement id
void connect_start_nodes(const operations_graph_constructorRef ogc, const std::string &next, bool true_edge=false, bool false_edge=false, unsigned int nodeid=0)
Connect start_node with the next node.
void build_operation_recursive(const tree_managerRef TM, const operations_graph_constructorRef ogc, const tree_nodeRef tn, const std::string &f_name, unsigned int bb_index)
Builds recursively the operation for a given tree node.
This class contains the base representation for a generic frontend flow step which works on a single ...
void clean_start_nodes()
Clean the list of start nodes.
redefinition of map to manage ordered/unordered structures
Abstract pure class for the tree structure.
void Initialize() override
Initialize the step (i.e., like a constructor, but executed just before exec.
operations_cfg_computation(const ParameterConstRef _parameters, const application_managerRef AppM, unsigned int function_id, const DesignFlowManagerConstRef design_flow_manager)
Constructor.
REF_FORWARD_DECL(operations_cfg_computation)
std::string actual_name
store the name of the current vertex
std::map< unsigned int, std::string > first_statement
relation between basic block and first statement id
const Wrefcount< const DesignFlowManager > design_flow_manager
The design flow manager.
DesignFlowStep_Status
The status of a step.
bool empty_start_nodes() const
Return true if start_node is empty.
Template definition of refcount.
const unsigned int function_id
The index of the function to be analyzed.
void insert_start_node(const std::string &start_node)
Insert a start node to the list of start nodes.
const application_managerRef AppM
The application manager.
Compute the control flow graph for the operations.
std::string get_first_node(const tree_nodeRef &tn, const std::string &f_name) const
Return the name of the first node given a tree node.
void init_start_nodes(const std::string &start_node)
Initialize the list of start nodes.
const CustomUnorderedSet< std::pair< FrontendFlowStepType, FunctionRelationship > > ComputeFrontendRelationships(const DesignFlowStep::RelationshipType relationship_type) const override
Return the set of analyses in relationship with this design step.
std::list< std::string > start_nodes
store the name of the nodes at which the next node should be attached.