64 const DesignFlowManagerConstRef _design_flow_manager,
83 switch(relationship_type)
87 relationships.insert(std::make_pair(USE_COUNTING,
SAME_FUNCTION));
103 return relationships;
109 const auto TM =
AppM->get_tree_manager();
111 const auto fd = GetPointer<function_decl>(TM->GetTreeNode(
function_id));
112 const auto sl = GetPointer<statement_list>(
GET_NODE(fd->body));
113 for(
const auto&
block : sl->list_of_bloc)
115 const auto& stmt_list =
block.second->CGetStmtList();
118 const auto last_stmt = stmt_list.back();
119 auto gc = GetPointer<gimple_cond>(
GET_NODE(last_stmt));
121 (
GET_NODE(gc->op0)->get_kind() != ssa_name_K && !GetPointer<cst_node>(
GET_NODE(gc->op0)))))
124 auto new_gc_cond = tree_man->ExtractCondition(last_stmt,
block.second,
function_id);
125 TM->ReplaceTreeNode(last_stmt, gc->op0, new_gc_cond);
#define GET_NODE(t)
Macro used to hide implementation details when accessing a tree_node from another tree_node...
#define DEBUG_LEVEL_VERY_PEDANTIC
extremely verbose debugging print is performed.
#define INDENT_DBG_MEX(dbgLevel, curDbgLevel, mex)
We are producing a debug version of the program, so the message is printed;.
File containing functions and utilities to support the printing of debug messagges.
Step successfully executed.
#define GET_CLASS(obj)
Macro returning the actual type of an object.
Definition of the class representing a generic C application.
RelationshipType
The relationship type.
Source must be executed to satisfy target.
Data structure describing a basic block at tree level.
Auxiliary methods for manipulating string.
#define THROW_UNREACHABLE(str_expr)
helper function used to specify that some points should never be reached
static bool IsBooleanType(const tree_nodeConstRef &type)
Return true if the treenode is of bool type.
Target must be reexecuted.
Classes specification of the tree_node data structures.
const ParameterConstRef parameters
Set of input parameters.
DesignFlowStep_Status
The status of a step.
Class defining some useful functions to create tree nodes and to manipulate the tree manager...
This struct specifies the block node.
This file collects some utility functions.
const unsigned int function_id
The index of the function to be analyzed.
const application_managerRef AppM
The application manager.
Class specification of the tree_reindex support class.
Template borrowed from the ANTLR library by Terence Parr (http://www.jGuru.com - Software rights: htt...
refcount< const tree_manipulation > tree_manipulationConstRef
this class is used to manage the command-line or XML options.
int debug_level
The debug level.
This class creates a layer to add nodes and to manipulate the tree_nodes manager. ...
Class specification of the manager of the tree structures extracted from the raw file.
A brief description of the C++ Header File.
const FunctionBehaviorRef function_behavior
The function behavior of the function to be analyzed.