PIPS
paf-util.h
Go to the documentation of this file.
1 /* Warning! Do not modify this file that is automatically generated! */
2 /* Modify src/Libs/paf-util/paf-util-local.h instead, to add your own modifications. */
3 
4 /* header file built by cproto */
5 
6 #ifndef paf_util_header_included
7 #define paf_util_header_included
8 /* paf_util-local.h */
9 /*
10 
11  $Id: paf-util-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 #include "matrix.h"
33 #include "matrice.h"
34 
35 #define PIP_SOLVE_MIN 0
36 #define PIP_SOLVE_MAX 1
37 
38 #define IS_MIN 0
39 #define IS_MAX 1
40 
41 #define PAF_UTIL_MODULE_NAME "PAFUTIL"
42 #define DFG_MODULE_NAME "DFG"
43 #define MAPPING_MODULE_NAME "MAPPING"
44 #define DIFF_PREFIX "DIFF"
45 #define COEFF_PREFIX "COEFF"
46 
47 #define POSITIVE 1
48 #define NEGATIVE 0
49 
50 #define ADD_ELEMENT_TO_LIST( _list, _type, _element) \
51  (_list = gen_nconc( _list, CONS( _type, _element, NIL)))
52 
53 #define BASE_NODE_NUMBER 1000
54 /* cproto-generated files */
55 /* adg_read_paf.c */
56 extern graph dfg;
57 extern list stmt_list;
58 extern list loop_list;
59 extern graph adg_read_paf(char */*s*/);
60 extern void init_new_dfg(void);
61 extern void new_param(string /*s*/);
62 extern void init_new_df_sink_ins(void);
63 extern void init_new_df_source(char */*s_ins*/);
64 extern void new_df_trans_exp(void);
65 extern void finish_new_df_source(void);
66 extern void init_new_df_gov_pred(void);
67 extern void save_pred(int /*option*/);
68 extern void elim_last_pred(void);
69 extern void new_df_gov_pred(void);
70 extern void init_new_df_ref(char */*s_ref*/);
71 extern void save_int(int /*i*/);
72 extern void save_id(string /*s*/);
73 extern void init_op_name(string /*op_name*/);
74 extern void init_op_exp(string /*op_name*/);
75 extern void save_exp(void);
76 extern void new_df_ref_ind(string /*s_ind*/);
77 extern void finish_new_df_ref(void);
78 extern void new_df_sink_ins(char */*s_ins*/);
79 extern void init_new_do_loop(char */*s_loop*/);
80 extern void init_loop_ctrl(char */*s_ind*/);
81 extern void lbound_exp(void);
82 extern void step_exp(void);
83 extern void ubound_exp(void);
84 extern void finish_new_do_loop(void);
85 extern void init_new_gd_ins(char */*s_ins*/);
86 extern void new_eng_loop(char */*s_loop*/);
87 extern void finish_new_gd_ins(void);
88 /* bdt_read_paf.c */
89 extern bdt base;
90 extern bdt bdt_read_paf(char */*s*/);
91 extern bool same_predicate_p(predicate /*p1*/, predicate /*p2*/);
92 extern void reorganize_bdt(bdt /*base*/);
93 extern void bdt_init_new_base(void);
94 extern void bdt_init_new_ins(char */*s_ins*/);
95 extern void bdt_new_shedule(string /*s_func*/);
96 extern void bdt_save_pred(int /*option*/);
97 extern void bdt_elim_last_pred(void);
98 extern void bdt_save_int(int /*i*/);
99 extern void bdt_save_id(string /*s*/);
100 extern void bdt_init_op_exp(string /*op_name*/);
101 extern void bdt_save_exp(void);
102 /* utils.c */
103 extern void pu_matrices_to_contraintes(Pcontrainte */*pc*/, Pbase /*b*/, matrice /*A*/, matrice /*B*/, int /*n*/, int /*m*/);
104 extern void pu_contraintes_to_matrices(Pcontrainte /*pc*/, Pbase /*b*/, matrice /*A*/, matrice /*B*/, int /*n*/, int /*m*/);
105 extern void contraintes_with_sym_cst_to_matrices(Pcontrainte /*pc*/, Pbase /*index_base*/, Pbase /*const_base*/, matrice /*A*/, matrice /*B*/, int /*n*/, int /*m1*/, int /*m2*/);
106 extern void matrices_to_contraintes_with_sym_cst(Pcontrainte */*pc*/, Pbase /*index_base*/, Pbase /*const_base*/, matrice /*A*/, matrice /*B*/, int /*n*/, int /*m1*/, int /*m2*/);
107 extern vertex in_dfg_vertex_list(list /*l*/, vertex /*v*/);
108 extern vertex in_dg_vertex_list(list /*l*/, vertex /*v*/);
109 extern expression make_id_expression(string /*s*/);
110 extern expression make_array_ref(list /*l*/);
111 extern expression make_func_op(string /*func_name*/, list /*args*/);
113 extern expression negate_expression(expression /*exp*/);
114 extern predicate expressions_to_predicate(list /*exp_l*/);
115 extern int vertex_int_stmt(vertex /*v*/);
116 extern void comp_exec_domain(graph /*g*/, hash_table /*STS*/);
118 extern Pbase make_base_of_nest(int /*stmt*/);
120 extern dataflow first_df_of_succ(successor /*s*/);
121 extern loop loop_dup(loop /*l*/);
123 extern Pvecteur polynome_to_vecteur(Ppolynome /*pp*/);
125 extern Psysteme old_polynome_to_sc(Ppolynome /*pp*/, list /*l*/);
126 extern Psysteme polynome_to_sc(Ppolynome /*pp*/, list /*l*/);
127 extern void substitute_var_with_vec(Psysteme /*ps*/, entity /*var*/, Value /*val*/, Pvecteur /*vec*/);
128 extern bool is_entity_in_list_p(entity /*e*/, list /*l*/);
129 extern Psysteme elim_var_with_eg(Psysteme /*ps*/, list */*init_l*/, list */*elim_l*/);
130 extern Psysteme better_elim_var_with_eg(Psysteme /*ps*/, list */*init_l*/, list */*elim_l*/);
131 extern bool single_var_vecteur_p(Pvecteur /*pv*/);
132 extern list vecteur_to_list(Pvecteur /*v*/);
134 extern list meld(list /*l1*/, list /*l2*/, bool (* /*compare_obj*/)(void));
135 extern list new_general_merge_sort(list /*l*/, bool (* /*compare_obj*/)(void));
136 extern list general_merge_sort(list /*l*/, bool (* /*compare_obj*/)(void));
137 extern expression rational_op_exp(string /*op_name*/, expression /*exp1*/, expression /*exp2*/);
138 extern Pvecteur vect_var_subst(Pvecteur /*vect*/, Variable /*var*/, Pvecteur /*new_vect*/);
139 extern Ppolynome prototype_var_subst(Ppolynome /*pp*/, Variable /*var*/, Ppolynome /*ppsubst*/);
140 extern Ppolynome vecteur_mult(Pvecteur /*v1*/, Pvecteur /*v2*/);
141 extern Pvecteur prototype_factorize(Ppolynome /*pp*/, Variable /*var*/);
142 extern Pcontrainte simplify_minmax_contrainte(Pcontrainte /*pc*/, Psysteme /*ps_cont*/, int /*min_or_max*/);
144 extern Pcontrainte expressions_to_vectors(list /*lexp*/);
145 extern list simplify_minmax(list /*lexp*/, Psysteme /*ps_cont*/, int /*min_or_max*/);
147 extern void set_current_stco_map(statement_mapping /*scm*/);
149 extern void reset_current_stco_map(void);
151 extern expression make_rational_exp(Pvecteur /*v*/, Value /*d*/);
152 extern int stco_common_loops_of_statements(statement_mapping /*in_map*/, statement /*in_s*/, statement /*in_s2*/);
153 /* print.c */
154 extern void pu_inegalite_fprint(FILE */*fp*/, Pcontrainte /*ineg*/, const char *(* /*variable_name*/)(entity));
155 extern void pu_egalite_fprint(FILE */*fp*/, Pcontrainte /*eg*/, const char *(* /*variable_name*/)(entity));
156 extern void vecteur_fprint(FILE */*fp*/, Pcontrainte /*vec*/, const char *(* /*variable_name*/)(entity));
157 extern void fprint_dataflow(FILE */*fp*/, int /*stmt*/, dataflow /*df*/);
158 extern void fprint_pred(FILE */*fp*/, predicate /*pred*/);
159 extern void fprint_psysteme(FILE */*fp*/, Psysteme /*ps*/);
160 extern void fprint_sc_pvecteur(FILE */*fp*/, Psysteme /*ps*/);
161 extern void fprint_bdt(FILE */*fp*/, bdt /*obj*/);
162 extern const char *pu_variable_name(Variable /*v*/);
163 extern bool pu_is_inferior_var(Variable /*v1*/, Variable /*v2*/);
164 extern void pu_vect_fprint(FILE */*fp*/, Pvecteur /*v*/);
165 extern void fprint_indent(FILE */*fp*/, int /*indent*/);
166 extern void imprime_quast(FILE */*fp*/, quast /*qu*/);
167 #endif /* paf_util_header_included */
int Value
Value * matrice
package matrice
Definition: matrice-local.h:71
const char * pu_variable_name(Variable)
package mapping : Alexis Platonoff, april 1993
Definition: print.c:421
void new_df_ref_ind(string)
void lbound_exp(void)
===========================================================================
Definition: adg_read_paf.c:814
bdt base
bdt_read_paf.c
Definition: bdt_read_paf.c:100
void fprint_indent(FILE *, int)
===========================================================================
Definition: print.c:502
void vecteur_fprint(FILE *, Pcontrainte, const char *(*)(entity))
void new_df_gov_pred(void)
===========================================================================
Definition: adg_read_paf.c:498
expression make_array_ref(list)
===========================================================================
Definition: utils.c:702
list general_merge_sort(list, bool(*)(void))
Pcontrainte polynome_to_contrainte(Ppolynome)
========================================================================
Definition: utils.c:1095
Psysteme better_elim_var_with_eg(Psysteme, list *, list *)
===========================================================================
Definition: utils.c:1537
void init_new_dfg(void)
===========================================================================
Definition: adg_read_paf.c:245
bool is_entity_in_list_p(entity, list)
===========================================================================
Definition: utils.c:1281
void matrices_to_contraintes_with_sym_cst(Pcontrainte *, Pbase, Pbase, matrice, matrice, int, int, int)
Definition: utils.c:503
void bdt_new_shedule(string)
list new_general_merge_sort(list, bool(*)(void))
void finish_new_do_loop(void)
===========================================================================
Definition: adg_read_paf.c:851
void bdt_elim_last_pred(void)
===========================================================================
Definition: bdt_read_paf.c:312
expression negate_expression(expression)
===========================================================================
Definition: utils.c:792
void init_new_gd_ins(char *)
===========================================================================
Definition: adg_read_paf.c:867
void finish_new_gd_ins(void)
===========================================================================
Definition: adg_read_paf.c:950
list stmt_list
The "stmt_list" global variable is the list the assign statement of the program (with all fields empt...
Definition: adg_read_paf.c:144
Pbase make_base_of_nest(int)
===========================================================================
Definition: utils.c:977
void comp_exec_domain(graph, hash_table)
===========================================================================
Definition: utils.c:877
Psysteme make_expression_equalities(list)
===========================================================================
Definition: utils.c:931
int vertex_int_stmt(vertex)
===========================================================================
Definition: utils.c:866
void step_exp(void)
===========================================================================
Definition: adg_read_paf.c:826
Psysteme elim_var_with_eg(Psysteme, list *, list *)
===========================================================================
Definition: utils.c:1361
Pvecteur prototype_factorize(Ppolynome, Variable)
========================================================================
Definition: utils.c:2070
void contraintes_with_sym_cst_to_matrices(Pcontrainte, Pbase, Pbase, matrice, matrice, int, int, int)
Creation de la matrice A correspondant au systeme lineaire et de la matrice correspondant a la partie...
Definition: utils.c:446
void bdt_init_new_ins(char *)
===========================================================================
Definition: bdt_read_paf.c:221
expression make_func_op(string, list)
===========================================================================
Definition: utils.c:725
int stco_common_loops_of_statements(statement_mapping, statement, statement)
AP, sep 25th 1995 : I have added a function from static_controlise/utils.c.
Definition: utils.c:2497
Pcontrainte simplify_minmax_contrainte(Pcontrainte, Psysteme, int)
==================================================================
Definition: utils.c:2154
void pu_vect_fprint(FILE *, Pvecteur)
===========================================================================
Definition: print.c:446
list static_control_to_indices(static_control)
package mapping : Alexis Platonoff, july 1993
Definition: utils.c:1037
void ubound_exp(void)
===========================================================================
Definition: adg_read_paf.c:839
void reorganize_bdt(bdt)
===========================================================================
Definition: bdt_read_paf.c:171
Psysteme find_implicit_equation(Psysteme)
========================================================================
Definition: utils.c:2350
void bdt_save_int(int)
===========================================================================
Definition: bdt_read_paf.c:326
void finish_new_df_ref(void)
===========================================================================
Definition: adg_read_paf.c:683
void substitute_var_with_vec(Psysteme, entity, Value, Pvecteur)
===========================================================================
Definition: utils.c:1210
void init_op_name(string)
===========================================================================
Definition: adg_read_paf.c:601
list loop_list
The "loop_list" global variable is the list the loops of the program (with all their characteristics:...
Definition: adg_read_paf.c:150
Ppolynome vecteur_mult(Pvecteur, Pvecteur)
========================================================================
Definition: utils.c:2024
loop loop_dup(loop)
===========================================================================
Definition: utils.c:1014
void new_param(string)
===========================================================================
Definition: adg_read_paf.c:262
void bdt_save_id(string)
===========================================================================
Definition: bdt_read_paf.c:352
void init_loop_ctrl(char *)
===========================================================================
Definition: adg_read_paf.c:784
expression lisp_exp_to_ri_exp(lisp_expression)
===========================================================================
Definition: utils.c:755
Pvecteur polynome_to_vecteur(Ppolynome)
========================================================================
Definition: utils.c:1063
bool single_var_vecteur_p(Pvecteur)
===========================================================================
Definition: utils.c:1615
void new_df_sink_ins(char *)
===========================================================================
Definition: adg_read_paf.c:706
void elim_last_pred(void)
===========================================================================
Definition: adg_read_paf.c:485
successor first_succ_of_vertex(vertex)
===========================================================================
Definition: utils.c:994
list vectors_to_expressions(Pcontrainte)
=================================================================
Definition: utils.c:2245
void save_id(string)
===========================================================================
Definition: adg_read_paf.c:576
void new_eng_loop(char *)
===========================================================================
Definition: adg_read_paf.c:909
void reset_current_stco_map(void)
========================================================================
Definition: utils.c:2423
expression rational_op_exp(string, expression, expression)
========================================================================
Definition: utils.c:1846
bool same_predicate_p(predicate, predicate)
===========================================================================
Definition: bdt_read_paf.c:145
list vecteur_to_list(Pvecteur)
===========================================================================
Definition: utils.c:1626
void pu_inegalite_fprint(FILE *, Pcontrainte, const char *(*)(entity))
print.c
list simplify_minmax(list, Psysteme, int)
=================================================================
Definition: utils.c:2313
void bdt_save_exp(void)
===========================================================================
Definition: bdt_read_paf.c:395
expression make_id_expression(string)
===========================================================================
Definition: utils.c:672
void fprint_sc_pvecteur(FILE *, Psysteme)
===========================================================================
Definition: print.c:329
void save_exp(void)
===========================================================================
Definition: adg_read_paf.c:642
static_control get_stco_from_current_map(statement)
========================================================================
Definition: utils.c:2429
void save_pred(int)
===========================================================================
Definition: adg_read_paf.c:450
graph adg_read_paf(char *)
Current loop instruction.
Definition: adg_read_paf.c:198
vertex in_dfg_vertex_list(list, vertex)
===========================================================================
Definition: utils.c:620
void imprime_quast(FILE *, quast)
===========================================================================
Definition: print.c:514
expression make_rational_exp(Pvecteur, Value)
=====================================================================
Definition: utils.c:2446
void bdt_init_new_base(void)
===========================================================================
Definition: bdt_read_paf.c:207
void bdt_save_pred(int)
===========================================================================
Definition: bdt_read_paf.c:277
bool pu_is_inferior_var(Variable, Variable)
void init_new_df_gov_pred(void)
===========================================================================
Definition: adg_read_paf.c:426
bdt bdt_read_paf(char *)
===========================================================================
Definition: bdt_read_paf.c:110
void pu_egalite_fprint(FILE *, Pcontrainte, const char *(*)(entity))
vertex in_dg_vertex_list(list, vertex)
======================================================================
Definition: utils.c:647
void fprint_psysteme(FILE *, Psysteme)
===========================================================================
Definition: print.c:302
void finish_new_df_source(void)
===========================================================================
Definition: adg_read_paf.c:399
void init_new_df_ref(char *)
===========================================================================
Definition: adg_read_paf.c:514
void fprint_pred(FILE *, predicate)
===========================================================================
Definition: print.c:287
Ppolynome prototype_var_subst(Ppolynome, Variable, Ppolynome)
=================================================================
Definition: utils.c:1978
Pvecteur vect_var_subst(Pvecteur, Variable, Pvecteur)
=================================================================
Definition: utils.c:1948
void save_int(int)
===========================================================================
Definition: adg_read_paf.c:549
void set_current_stco_map(statement_mapping)
========================================================================
Definition: utils.c:2408
void init_new_df_sink_ins(void)
===========================================================================
Definition: adg_read_paf.c:297
Ppolynome old_vecteur_to_polynome(Pvecteur)
===========================================================================
Definition: utils.c:1648
void init_new_df_source(char *)
===========================================================================
Definition: adg_read_paf.c:342
graph dfg
cproto-generated files
Definition: adg_read_paf.c:138
dataflow first_df_of_succ(successor)
===========================================================================
Definition: utils.c:1004
void pu_contraintes_to_matrices(Pcontrainte, Pbase, matrice, matrice, int, int)
===========================================================================
Definition: utils.c:408
Psysteme old_polynome_to_sc(Ppolynome, list)
===========================================================================
Definition: utils.c:1115
void bdt_init_op_exp(string)
===========================================================================
Definition: bdt_read_paf.c:379
void fprint_bdt(FILE *, bdt)
===========================================================================
Definition: print.c:352
void init_new_do_loop(char *)
===========================================================================
Definition: adg_read_paf.c:751
Psysteme polynome_to_sc(Ppolynome, list)
===========================================================================
Definition: utils.c:1158
void fprint_dataflow(FILE *, int, dataflow)
===========================================================================
Definition: print.c:229
statement_mapping get_current_stco_map(void)
========================================================================
Definition: utils.c:2417
void pu_matrices_to_contraintes(Pcontrainte *, Pbase, matrice, matrice, int, int)
utils.c
Definition: utils.c:350
Pcontrainte expressions_to_vectors(list)
=================================================================
Definition: utils.c:2260
void new_df_trans_exp(void)
===========================================================================
Definition: adg_read_paf.c:374
void init_op_exp(string)
===========================================================================
Definition: adg_read_paf.c:618
list meld(list, list, bool(*)(void))
predicate expressions_to_predicate(list)
===========================================================================
Definition: utils.c:826
le type des coefficients dans les vecteurs: Value est defini dans le package arithmetique
Definition: vecteur-local.h:89
The structure used to build lists in NewGen.
Definition: newgen_list.h:41
void * Variable
arithmetique is a requirement for vecteur, but I do not want to inforce it in all pips files....
Definition: vecteur-local.h:60