PIPS
static_controlize.h
Go to the documentation of this file.
1 /* Warning! Do not modify this file that is automatically generated! */
2 /* Modify src/Libs/static_controlize/static_controlize-local.h instead, to add your own modifications. */
3 
4 /* header file built by cproto */
5 
6 #ifndef static_controlize_header_included
7 #define static_controlize_header_included
8 /* static_controlize-local.h */
9 /*
10 
11  $Id: static_controlize-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 #define STATIC_CONTROLIZE_MODULE_NAME "STATCON"
33 #define NLC_PREFIX "NLC"
34 #define NSP_PREFIX "NSP"
35 #define NUB_PREFIX "NUB"
36 
37 #define give_entity(n) gen_find_tabulated(make_entity_fullname( \
38  TOP_LEVEL_MODULE_NAME, n), entity_domain)
39 #define ENTITY_GE give_entity(GREATER_OR_EQUAL_OPERATOR_NAME)
40 #define ENTITY_GT give_entity(GREATER_THAN_OPERATOR_NAME)
41 #define ENTITY_LE give_entity(LESS_OR_EQUAL_OPERATOR_NAME)
42 #define ENTITY_LT give_entity(LESS_THAN_OPERATOR_NAME)
43 #define ENTITY_NOT give_entity(NOT_OPERATOR_NAME)
44 #define ENTITY_EQ give_entity(EQUAL_OPERATOR_NAME)
45 #define ENTITY_NE give_entity(NOT_EQUAL_OPERATOR_NAME)
46 #define ENTITY_OR give_entity(OR_OPERATOR_NAME)
47 #define ENTITY_AND give_entity(AND_OPERATOR_NAME)
48 
49 #define ENTITY_NLC_P(e) (strncmp(entity_local_name(e), NLC_PREFIX, 3) == 0)
50 #define ENTITY_NSP_P(e) (strncmp(entity_local_name(e), NSP_PREFIX, 3) == 0)
51 #define ENTITY_NUB_P(e) (strcmp(entity_local_name(e), NUB_PREFIX, 3) == 0)
52 #define ENTITY_SP_P(ent) \
53  (gen_find_eq(ent, Gstructure_parameters) != chunk_undefined)
54 #define ENTITY_STRICT_LOGICAL_OPERATOR_P(e) \
55  ( ENTITY_AND_P(e) || \
56  ENTITY_OR_P(e) || \
57  ENTITY_EQUIV_P(e) || \
58  ENTITY_NON_EQUIV_P(e) || \
59  ENTITY_NOT_P(e) )
60 
61 extern int Gcount_nlc;
62 extern int Gcount_nsp;
63 extern int Gcount_nub;
64 /* cproto-generated files */
65 /* prettyprint.c */
66 extern bool print_code_static_control(const string /*module_name*/);
67 extern text text_static_control(entity /*module*/, int /*margin*/, statement /*stat*/);
69 extern cons *words_test_list(list /*obj*/);
70 extern cons *words_loop_list(list /*obj*/);
71 extern list words_entity_list(list /*obj*/);
72 /* static_controlize.c */
79 extern list assigned_var;
82 extern bool static_controlize(string /*mod_name*/);
83 extern list loop_normalize_of_loop(loop /*l*/, hash_table /*fst*/, list */*ell*/, list */*etl*/, list */*swfl*/, int */*Gcount_nlc*/);
84 extern list loop_normalize_of_statement(statement /*s*/, hash_table /*fst*/, list */*ell*/, list */*etl*/, list */*swfl*/, int */*Gcount_nlc*/);
85 extern void loop_normalize_of_unstructured(unstructured /*u*/, hash_table /*fst*/, list */*ell*/, list */*etl*/, list */*swfl*/, int */*Gcount_nlc*/);
86 /* utils.c */
87 extern list stco_same_loops(statement_mapping /*in_map*/, statement /*in_s*/, statement /*in_s2*/);
88 extern int stco_renumber_code(statement /*in_st*/, int /*in_ct*/);
90 extern bool splc_positive_relation_p(expression /*exp*/, list */*ell*/);
91 extern list ndf_normalized_test(expression /*exp*/, list */*ell*/);
92 extern expression normalize_test_leaves(expression /*exp*/, list */*ell*/);
93 extern expression sc_conditional(expression /*exp*/, list */*ell*/);
94 extern list loops_to_indices(list /*l*/);
95 extern bool splc_linear_expression_p(expression /*exp*/, list */*ell*/);
96 extern bool splc_linear_expression_list_p(list /*l*/, list */*ell*/);
97 extern bool splc_linear_access_to_arrays_p(list /*l*/, list */*ell*/);
98 extern string print_structurals(list /*l*/);
99 extern list sc_list_of_exp_dup(list /*l*/);
100 extern list sc_list_of_entity_dup(list /*l*/);
101 extern list sc_list_of_loop_dup(list /*l*/);
102 extern loop sc_loop_dup(loop /*l*/);
103 extern list make_undefined_list(void);
104 extern int in_forward_defined(entity /*ent*/, list */*swfl*/);
105 extern bool in_forward_defined_p(entity /*ent*/, list */*swfl*/);
106 extern void verify_structural_parameters(list /*the_list*/, list */*swfl*/);
108 extern bool sp_linear_expression_p(expression /*exp*/);
109 extern bool splc_feautrier_expression_p(expression /*exp*/, list */*ell*/);
110 extern bool sp_feautrier_expression_p(expression /*exp*/);
112 extern bool get_sp_of_call_p(call /*c*/, hash_table /*fst*/, list */*swfl*/);
113 extern void forward_substitute_in_anyloop(void */*pl*/, hash_table /*fst*/);
114 extern void forward_substitute_in_exp(expression */*pe*/, hash_table /*fst*/);
115 extern void forward_substitute_in_call(call */*pc*/, hash_table /*fst*/);
116 extern bool normalizable_loop_p(loop /*l*/);
117 extern bool normalizable_loop_p_retrieved(loop /*l*/);
118 extern bool is_expression_in_list(expression /*exp*/, list /*l*/);
119 extern bool get_reference_assignments(statement /*s*/, list */*l*/);
120 #endif /* static_controlize_header_included */
int Gcount_nlc
void forward_substitute_in_exp(expression *, hash_table)
Definition: utils.c:1148
cons * words_loop_list(list)
================================================================
Definition: prettyprint.c:226
int Gcount_nsp
================================================================
list make_undefined_list(void)
================================================================
Definition: utils.c:815
entity sp_feautrier_scalar_assign_call(call)
================================================================
Definition: utils.c:1029
bool get_sp_of_call_p(call, hash_table, list *)
================================================================
Definition: utils.c:1056
list sc_list_of_exp_dup(list)
================================================================
Definition: utils.c:741
static_control static_controlize_unstructured(unstructured)
=================================================================
int in_forward_defined(entity, list *)
================================================================
Definition: utils.c:836
static_control static_controlize_loop(loop)
=================================================================
bool normalizable_loop_p_retrieved(loop)
Code retrieved from revision 14476, transformations/loop_normalize.c.
Definition: utils.c:1183
list stco_same_loops(statement_mapping, statement, statement)
utils.c
Definition: utils.c:98
bool is_expression_in_list(expression, list)
State if an expression OR part of that expression corresponds to one of the entity of the list l.
Definition: utils.c:1200
loop sc_loop_dup(loop)
================================================================
Definition: utils.c:796
bool get_reference_assignments(statement, list *)
Allows the static_controlize phase to keep and update a list containing all the variables of the prog...
Definition: utils.c:1300
text store_sc_text_line(static_control)
================================================================
Definition: prettyprint.c:152
bool normalizable_loop_p(loop)
bool normalizable_loop_p(loop l) Returns true if "l" has a constant step.
Definition: utils.c:1172
expression normalize_test_leaves(expression, list *)
================================================================
Definition: utils.c:445
list assigned_var
=================================================================
bool in_forward_defined_p(entity, list *)
================================================================
Definition: utils.c:855
list loop_normalize_of_loop(loop, hash_table, list *, list *, list *, int *)
=================================================================
list ndf_normalized_test(expression, list *)
================================================================
Definition: utils.c:306
expression sc_conditional(expression, list *)
================================================================
Definition: utils.c:596
bool sp_feautrier_expression_p(expression)
================================================================
Definition: utils.c:995
list sc_list_of_loop_dup(list)
================================================================
Definition: utils.c:778
string print_structurals(list)
================================================================
Definition: utils.c:732
static_control static_controlize_whileloop(whileloop)
=================================================================
static_control static_controlize_call(call)
================================================================
bool static_controlize(string)
=================================================================
void loop_normalize_of_unstructured(unstructured, hash_table, list *, list *, list *, int *)
=================================================================
list sc_list_of_entity_dup(list)
================================================================
Definition: utils.c:761
statement_mapping Gstatic_control_map
bool sp_linear_expression_p(expression)
================================================================
Definition: utils.c:928
bool splc_linear_expression_p(expression, list *)
================================================================
Definition: utils.c:648
static_control static_controlize_statement(statement)
bool splc_positive_relation_p(expression, list *)
================================================================
Definition: utils.c:282
int Gcount_nub
list words_entity_list(list)
================================================================
Definition: prettyprint.c:265
void forward_substitute_in_call(call *, hash_table)
Definition: utils.c:1157
void verify_structural_parameters(list, list *)
================================================================
Definition: utils.c:873
bool splc_linear_access_to_arrays_p(list, list *)
================================================================
Definition: utils.c:700
expression sc_opposite_exp_of_conjunction(expression, list *)
================================================================
Definition: utils.c:236
void forward_substitute_in_anyloop(void *, hash_table)
Definition: utils.c:1139
text text_static_control(entity, int, statement)
list loop_normalize_of_statement(statement, hash_table, list *, list *, list *, int *)
=================================================================
bool splc_feautrier_expression_p(expression, list *)
================================================================
Definition: utils.c:962
int stco_renumber_code(statement, int)
================================================================
Definition: utils.c:137
bool print_code_static_control(const string)
cproto-generated files
Definition: prettyprint.c:87
list Gstructure_parameters
static_controlize.c
list loops_to_indices(list)
================================================================
Definition: utils.c:630
bool splc_linear_expression_list_p(list, list *)
================================================================
Definition: utils.c:682
list sc_entity_to_formal_integer_parameters(entity)
================================================================
Definition: utils.c:900
static_control static_controlize_forloop(forloop)
=================================================================
cons * words_test_list(list)
================================================================
Definition: prettyprint.c:195
The structure used to build lists in NewGen.
Definition: newgen_list.h:41