PIPS
conversion.h
Go to the documentation of this file.
1 /* Warning! Do not modify this file that is automatically generated! */
2 /* Modify src/Libs/conversion/conversion-local.h instead, to add your own modifications. */
3 
4 /* header file built by cproto */
5 
6 #ifndef conversion_header_included
7 #define conversion_header_included
8 /* conversion-local.h */
9 /*
10 
11  $Id: conversion-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  * Package conversion
34  */
35 #include "matrice.h"
36 
37 
38 /* cproto-generated files */
39 /* change_of_Pbase.c */
40 extern void derive_new_basis(Pbase /*base_oldindex*/, Pbase */*base_newindex*/, entity (* /*new_entity*/)(entity));
41 extern void change_of_base_index(Pbase /*base_oldindex*/, Pbase */*base_newindex*/);
42 extern entity make_index_prime_entity(entity /*old_index*/);
43 extern entity make_index_entity(entity /*old_index*/);
44 extern Psysteme sc_change_baseindex(Psysteme /*sc*/, Pbase /*base_old*/, Pbase /*base_new*/);
45 /* code_change_of_basis.c */
46 extern void scanning_base_to_vect(matrice /*G*/, int /*n*/, Pbase /*base*/, Pvecteur /*pvg*/[]);
47 extern Pvecteur vect_change_base(Pvecteur /*pv_old*/, Pbase /*base_oldindex*/, Pvecteur /*pvg*/[]);
48 extern cons *listexpres_to_listexpres_newbase(cons */*lex*/, Pvecteur /*pvg*/[], Pbase /*base_oldindex*/);
49 extern expression expression_to_expression_newbase(expression /*e_old*/, Pvecteur /*pvg*/[], Pbase /*base_oldindex*/);
50 extern void statement_newbase(statement /*s*/, Pvecteur /*pvg*/[], Pbase /*base_oldindex*/);
51 /* loop_iteration_domaine_to_sc.c */
52 extern Psysteme loop_iteration_domaine_to_sc(list /*lls*/, Pbase */*baseindex*/);
53 extern void loop_index_domaine_to_contrainte(range /*r*/, entity /*ind*/, Psysteme /*sc*/);
54 /* look_for_nested_loops.c */
55 extern void look_for_nested_loop_statements(statement /*s*/, statement (* /*loop_transformation*/)(list, bool (*)(statement)), bool (* /*loop_predicate*/)(statement));
56 extern statement look_for_inner_loops(loop /*l*/, list /*sl*/, statement (* /*loop_transformation*/)(list, bool (*)(statement)), bool (* /*loop_predicate*/)(statement));
57 extern void look_for_nested_loops_unstructured(unstructured /*u*/, statement (* /*loop_transformation*/)(list, bool (*)(statement)), bool (* /*loop_predicate*/)(statement));
58 /* system_to_code.c */
59 extern expression Psysteme_to_expression(Psysteme /*systeme*/);
60 extern list Pcontrainte_to_expression_list(Pcontrainte /*constraint*/, entity /*operator*/);
63 extern expression constraints_to_loop_bound(Pcontrainte /*c*/, Variable /*var*/, bool /*is_lower*/, entity /*divide*/);
64 extern bool bounds_equal_p(Variable /*var*/, Pcontrainte /*lower*/, Pcontrainte /*upper*/);
65 extern statement systeme_to_loop_nest(Psysteme /*sc*/, list /*vars*/, statement /*body*/, entity /*divide*/);
66 extern statement generate_optional_if(Psysteme /*sc*/, statement /*stat*/);
67 #endif /* conversion_header_included */
cons * listexpres_to_listexpres_newbase(cons *, Pvecteur[], Pbase)
entity make_index_prime_entity(entity)
Psysteme loop_iteration_domaine_to_sc(list, Pbase *)
loop_iteration_domaine_to_sc.c
void look_for_nested_loops_unstructured(unstructured, statement(*)(list, bool(*)(statement)), bool(*)(statement))
oid look_for_nested_loops_unstructured(unstructured u) search the nested loops contained in the unstr...
void reset_information_for_code_optimizations(void)
entity make_index_entity(entity)
Psysteme sc_change_baseindex(Psysteme, Pbase, Pbase)
Psysteme sc_change_baseindex(Psysteme sc, Pbase base_old, Pbase base_new) le changement de base d'ind...
void loop_index_domaine_to_contrainte(range, entity, Psysteme)
void change_of_base_index(Pbase, Pbase *)
void change_of_base_index(Pbase base_oldindex, Pbase *base_newindex) change of variable index from ba...
expression constraints_to_loop_bound(Pcontrainte, Variable, bool, entity)
expression constraints_to_loop_bound(c, var, is_lower)
statement look_for_inner_loops(loop, list, statement(*)(list, bool(*)(statement)), bool(*)(statement))
FI: I do not understand how debug levels are managed...
void look_for_nested_loop_statements(statement, statement(*)(list, bool(*)(statement)), bool(*)(statement))
look_for_nested_loops.c
expression expression_to_expression_newbase(expression, Pvecteur[], Pbase)
expression Psysteme_to_expression(Psysteme)
system_to_code.c
Pvecteur vect_change_base(Pvecteur, Pbase, Pvecteur[])
void scanning_base_to_vect(matrice, int, Pbase, Pvecteur[])
code_change_of_basis.c
list Pcontrainte_to_expression_list(Pcontrainte, entity)
statement systeme_to_loop_nest(Psysteme, list, statement, entity)
sc is used to generate the loop nest bounds for variables vars.
void statement_newbase(statement, Pvecteur[], Pbase)
void derive_new_basis(Pbase, Pbase *, entity(*)(entity))
Warning! Do not modify this file that is automatically generated!
void set_information_for_code_optimizations(Psysteme)
I could keep the system for further optimizations...
statement generate_optional_if(Psysteme, statement)
statement generate_optional_if(sc, stat)
bool bounds_equal_p(Variable, Pcontrainte, Pcontrainte)
this function checks whether the lower and upper constraints are going to generate the same bound on ...
Value * matrice
package matrice
Definition: matrice-local.h:71
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