PIPS
icfg.h
Go to the documentation of this file.
1 /* Warning! Do not modify this file that is automatically generated! */
2 /* Modify src/Libs/icfg/icfg-local.h instead, to add your own modifications. */
3 
4 /* header file built by cproto */
5 
6 #ifndef icfg_header_included
7 #define icfg_header_included
8 /* icfg-local.h */
9 /*
10 
11  $Id: icfg-local.h 23065 2016-03-02 09:05:50Z coelho $
12 
13  Copyright 1989-2016 MINES ParisTech
14 
15  This file is part of PIPS.
16 
17  PIPS is free software: you can redistribute it and/or modify it
18  under the terms of the GNU General Public License as published by
19  the Free Software Foundation, either version 3 of the License, or
20  any later version.
21 
22  PIPS is distributed in the hope that it will be useful, but WITHOUT ANY
23  WARRANTY; without even the implied warranty of MERCHANTABILITY or
24  FITNESS FOR A PARTICULAR PURPOSE.
25 
26  See the GNU General Public License for more details.
27 
28  You should have received a copy of the GNU General Public License
29  along with PIPS. If not, see <http://www.gnu.org/licenses/>.
30 
31 */
32 /*
33  icfg.h -- acronym
34  include file for Interprocedural Control Flow Graph
35  */
36 
37 #define ICFG_NOT_FOUND NULL
38 #define ICFG_OPTIONS "tcdDIFl"
39 
40 #define ICFG_CALLEES_TOPO_SORT "ICFG_CALLEES_TOPO_SORT"
41 #define ICFG_DRAW "ICFG_DRAW"
42 #define ICFG_DEBUG "ICFG_DEBUG"
43 #define ICFG_DEBUG_LEVEL "ICFG_DEBUG_LEVEL"
44 #define ICFG_DOs "ICFG_DOs"
45 #define ICFG_IFs "ICFG_IFs"
46 #define ICFG_DV "ICFG_DV"
47 #define ICFG_FLOATs "ICFG_FLOATs"
48 #define ICFG_SHORT_NAMES "ICFG_SHORT_NAMES"
49 
50 #include "dg.h"
51 
54 
55 #include "graph.h"
56 
57 #define CALL_MARK "CALL_MARK@@@@"
58 #define ADD_ELEMENT_TO_LIST( _list, _type, _element) \
59  (_list = gen_nconc( _list, CONS( _type, _element, NIL)))
60 
61 /* cproto-generated files */
62 /* toposort.c */
63 extern list module_name_to_callees(const char */*module_name*/);
64 extern list module_to_callees(entity /*mod*/);
65 extern void topological_number_assign_to_module(hash_table /*hash_module_to_depth*/, entity /*mod*/, size_t /*n*/);
66 extern list module_list_sort(hash_table /*hash_module_to_depth*/, list /*current_list*/, entity /*mod*/, size_t /*n*/);
68 extern void print_module_name_to_toposorts(const char */*module_name*/);
69 /* icfg_scan.c */
70 extern void icfg_set_indentation(int /*indent*/);
71 extern void icfg_reset_indentation(void);
72 extern void icfg_error_handler(void);
73 extern bool generic_print_icfg(const string /*module_name*/, bool /*with_ifs*/, bool /*with_loops*/, bool /*do_graph*/, text (* /*decoration*/)(const string));
74 extern bool generic_print_icfg_precise(const string /*module_name*/, bool /*with_ifs*/, bool /*with_loops*/, bool /*do_graph*/, text (* /*decoration*/)(entity, entity, statement, call));
75 extern bool generic_print_icfg_filtered(const string /*module_name*/, bool /*with_ifs*/, bool /*with_loops*/, bool /*do_graph*/, text (* /*decoration_call*/)(entity, statement, call), text (* /*decoration_stmt*/)(entity, statement));
76 /* print.c */
77 extern bool print_icfg(const string /*module_name*/);
78 extern bool print_icfg_with_loops(const string /*module_name*/);
79 extern bool print_icfg_with_control(const string /*module_name*/);
80 /* util.c */
81 extern void safe_free_vertex(vertex /*ver*/, list /*l_of_vers*/);
82 extern list safe_add_vertex_to_list(vertex /*ver*/, list /*l_of_vers*/);
83 extern list list_of_connected_nodes(vertex /*ver*/, list /*l_of_vers*/);
84 extern vertex get_vertex_by_string(const char */*str_name*/, list /*l_of_vers*/);
85 extern list safe_make_successor(vertex /*ver_parent*/, vertex /*ver_child*/, list /*l_of_vers*/);
86 extern void print_graph_of_text_to_daVinci(FILE */*f_out*/, list /*l_of_vers*/);
87 extern void print_graph_daVinci_from_starting_node(FILE */*f_out*/, vertex /*start_ver*/);
88 extern void print_marged_text_from_starting_node(FILE */*fd*/, int /*margin*/, vertex /*start_ver*/, list /*l_of_vers*/);
89 extern bool make_resource_from_starting_node(const char */*mod_name*/, string /*res_name*/, string /*file_ext*/, vertex /*start_ver*/, list /*l_of_vers*/, bool /*res_text_type*/);
90 #endif /* icfg_header_included */
void print_graph_of_text_to_daVinci(FILE *, list)
Definition: util.c:134
void topological_number_assign_to_module(hash_table, entity, size_t)
Definition: toposort.c:102
bool print_icfg_with_loops(const string)
Definition: print.c:50
bool generic_print_icfg(const string, bool, bool, bool, text(*)(const string))
Definition: icfg_scan.c:713
void print_module_name_to_toposorts(const char *)
list topologically_sorted_module_list(entity)
Definition: toposort.c:173
void icfg_reset_indentation(void)
Definition: icfg_scan.c:117
bool print_icfg(const string)
print.c
Definition: print.c:45
void icfg_error_handler(void)
Definition: icfg_scan.c:122
dg_vertex_label vertex_label
Definition: icfg.h:53
list safe_make_successor(vertex, vertex, list)
Definition: util.c:110
list module_to_callees(entity)
Definition: toposort.c:85
list list_of_connected_nodes(vertex, list)
Definition: util.c:57
bool generic_print_icfg_precise(const string, bool, bool, bool, text(*)(entity, entity, statement, call))
Definition: icfg_scan.c:724
bool print_icfg_with_control(const string)
Definition: print.c:55
dg_arc_label arc_label
Definition: icfg.h:52
bool make_resource_from_starting_node(const char *, string, string, vertex, list, bool)
Definition: util.c:221
void safe_free_vertex(vertex, list)
util.c
Definition: util.c:43
list module_name_to_callees(const char *)
cproto-generated files
vertex get_vertex_by_string(const char *, list)
Definition: util.c:92
void icfg_set_indentation(int)
icfg_scan.c
Definition: icfg_scan.c:112
list safe_add_vertex_to_list(vertex, list)
Definition: util.c:50
bool generic_print_icfg_filtered(const string, bool, bool, bool, text(*)(entity, statement, call), text(*)(entity, statement))
Definition: icfg_scan.c:735
list module_list_sort(hash_table, list, entity, size_t)
Definition: toposort.c:123
void print_graph_daVinci_from_starting_node(FILE *, vertex)
Definition: util.c:190
void print_marged_text_from_starting_node(FILE *, int, vertex, list)
Definition: util.c:200
The structure used to build lists in NewGen.
Definition: newgen_list.h:41