PIPS
wp65.h
Go to the documentation of this file.
1 /* Warning! Do not modify this file that is automatically generated! */
2 /* Modify src/Libs/wp65/wp65-local.h instead, to add your own modifications. */
3 
4 /* header file built by cproto */
5 
6 #ifndef wp65_header_included
7 #define wp65_header_included
8 /* wp65-local.h */
9 /*
10 
11  $Id: wp65-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  /* Header File for WP65
33  *
34  * Francois Irigoin, Corinne Ancourt, Lei Zhou
35  *
36  * September 1991
37  */
38 
39 #ifndef WP65_INCLUDED
40 #define WP65_INCLUDED
41 
42 #define EMULATED_SHARED_MEMORY_PREFIX "ES_"
43 #define LOCAL_MEMORY_PREFIX "L_"
44 #define LOCAL_MEMORY_SEPARATOR "_"
45 #define COMPUTE_ENGINE_NAME "WP65"
46 /* #define WP65_SUFFIX "_WP65" */
47 #define BANK_NAME "BANK"
48 /* #define MEMORY_EMULATOR_SUFFIX "_BANK" */
49 #define PROCESSOR_IDENTIFIER "PROC_ID"
50 #define BANK_IDENTIFIER "BANK_ID"
51 #define BANK_LINE_IDENTIFIER "L"
52 #define BANK_OFFSET_IDENTIFIER "O"
53 
54 #define SUFFIX_FOR_INDEX_TILE_IN_INITIAL_BASIS "_1"
55 #define SUFFIX_FOR_INDEX_TILE_IN_TILE_BASIS "_0"
56 #define PREFIX_FOR_LOCAL_TILE_BASIS "L_"
57 
58 
59 /* These values should be read in model.rc (FI, 20/11/91)
60  #define PROCESSOR_NUMBER 4
61  #define BANK_NUMBER 4
62  #define LINE_SIZE 25
63 */
64 
65 /* FI: PIPELINE_DEPTH should be set to 3 */
66 #define PIPELINE_DEPTH 1
67 
68 #define MAXIMUM_LOCAL_VARIABLE_NAME_SIZE 256
69 
70 #endif /* WP65_INCLUDED */
71 /* cproto-generated files */
72 /* code.c */
73 extern Value offset_dim1;
74 extern Value offset_dim2;
75 extern void eval_variable_in_statement(entity /*module*/, statement /*s*/, Variable /*v*/, int /*min*/);
76 extern void tile_change_of_basis(Psysteme /*tile_domain*/, Pbase /*initial_basis*/, Pbase /*tile_basis*/, Pbase /*tile_init_basis*/, tiling /*tile*/);
77 extern statement make_scanning_over_tiles(entity /*module*/, list /*body*/, entity /*proc_id*/, int /*pn*/, tiling /*tile*/, Pbase /*initial_basis*/, Pbase /*tile_basis_in_tile_basis*/, Pbase /*tile_basis_in_initial_basis*/, Psysteme /*iteration_domain*/, int /*first_parallel_level*/, int /*last_parallel_level*/);
78 extern statement make_scanning_over_one_tile(entity /*module*/, statement /*body*/, tiling /*tile*/, Pbase /*initial_basis*/, Pbase /*local_basis*/, Pbase /*tile_basis_in_tile_basis*/, Pbase /*tile_basis_in_initial_basis*/, Psysteme /*iteration_domain*/, int /*first_parallel_level*/, int /*last_parallel_level*/);
79 extern list make_compute_block(entity /*module*/, statement /*body*/, Pvecteur /*offsets*/, hash_table /*r_to_llv*/, tiling /*tile*/, Pbase /*initial_basis*/, Pbase /*local_basis*/, Pbase /*tile_basis_in_tile_basis*/, Pbase /*tile_basis_in_initial_basis*/, Psysteme /*iteration_domain*/, int /*first_parallel_level*/, int /*last_parallel_level*/);
80 extern list reference_conversion_statement(entity /*module*/, statement /*body*/, list */*lt*/, hash_table /*r_to_llv*/, Pvecteur /*offsets*/, Pbase /*initial_basis*/, Pbase /*tile_indices*/, Pbase /*local_basis*/, tiling /*tile*/);
81 extern list reference_conversion_computation(entity /*compute_module*/, list */*lt*/, expression /*expr*/, Pbase /*initial_basis*/, Pbase /*tile_indices*/, Pbase /*tile_local_indices*/, tiling /*tile*/);
82 extern entity reference_translation(reference /*r*/, Pbase /*initial_basis*/, Pbase /*local_basis*/);
83 extern void reference_conversion_expression(expression /*e*/, hash_table /*r_to_llv*/, Pvecteur /*offsets*/, Pbase /*initial_basis*/, Pbase /*local_basis*/);
84 extern bool uniform_dependence_p(reference /*r1*/, reference /*r2*/);
85 extern list classify_reference(list /*llr*/, reference /*r*/);
86 extern Psysteme build_sc_with_several_uniform_ref(entity /*module*/, cons */*lr*/, Psysteme /*sc_domain*/, Pbase */*new_index_base*/);
87 extern void make_store_blocks(entity /*initial_module*/, entity /*compute_module*/, entity /*memory_module*/, entity /*var*/, entity /*shared_variable*/, entity /*local_variable*/, list /*lrefs*/, hash_table /*r_to_ud*/, Psysteme /*sc_domain*/, Pbase /*index_base*/, Pbase /*bank_indices*/, Pbase /*tile_indices*/, Pbase /*loop_body_indices*/, entity /*Proc_id*/, int /*pn*/, int /*bn*/, int /*ls*/, statement */*store_block*/, statement */*bank_store_block*/, int /*first_parallel_level*/, int /*last_parallel_level*/);
88 extern void make_load_blocks(entity /*initial_module*/, entity /*compute_module*/, entity /*memory_module*/, entity /*var*/, entity /*shared_variable*/, entity /*local_variable*/, list /*lrefs*/, hash_table /*r_to_ud*/, Psysteme /*sc_domain*/, Pbase /*index_base*/, Pbase /*bank_indices*/, Pbase /*tile_indices*/, Pbase /*loop_body_indices*/, entity /*Proc_id*/, int /*pn*/, int /*bn*/, int /*ls*/, statement */*load_block*/, statement */*bank_load_block*/, int /*first_parallel_level*/, int /*last_parallel_level*/);
89 extern Psysteme tile_membership(matrice /*P*/, Pbase /*origin*/, Pbase /*member*/);
90 /* tiling.c */
91 extern tiling loop_nest_to_tile(Psysteme /*sc*/, int /*ls*/, Pbase /*base_index*/, int /*first_parallel_level*/, int /*last_parallel_level*/, int /*perfect_nested_level*/);
92 /* variable.c */
93 extern void loop_nest_to_local_variables(entity /*initial_module*/, entity /*compute_module*/, entity /*memory_module*/, hash_table /*llv_to_lcr*/, hash_table /*r_to_llv*/, hash_table /*v_to_lllv*/, hash_table /*r_to_ud*/, hash_table /*v_to_esv*/, hash_table /*v_to_nlv*/, list /*lpv*/, statement /*body*/, Pbase /*indices*/, graph /*dg*/, int /*bn*/, int /*ls*/, int /*pd*/, tiling /*tile*/);
94 extern entity make_emulated_shared_variable(entity /*v*/, entity /*memory_module*/, int /*bn*/, int /*ls*/);
95 extern entity find_or_create_emulated_shared_variable(entity /*v*/, entity /*memory_module*/, hash_table /*v_to_esv*/, int /*bn*/, int /*ls*/);
96 extern list make_new_local_variables(entity /*v*/, entity /*compute_module*/, int /*number*/, int /*pd*/, hash_table /*v_to_lllv*/);
97 extern bool reference_conflicting_test_and_update(reference /*r*/, graph /*dg*/, hash_table /*v_to_lllv*/, hash_table /*llv_to_lcr*/, hash_table /*r_to_llv*/, hash_table /*r_to_ud*/);
98 extern bool reference_conflicting_p(reference /*r1*/, reference /*r2*/, graph /*dg*/);
99 extern Psysteme make_tile_constraints(matrice /*P*/, Pbase /*b*/);
100 extern void set_dimensions_of_local_variables(hash_table /*v_to_lllv*/, Pbase /*basis*/, tiling /*tile*/, hash_table /*llv_to_lcr*/);
101 extern void set_dimensions_of_local_variable_family(list /*llv*/, Psysteme /*tc*/, list /*lr*/, tiling /*tile*/, int /*dimn*/);
102 /* instruction_to_wp65_code.c */
103 extern bool list_of_calls_p(list /*lsb*/);
104 extern entity ith_index_of_ref(reference /*r*/, int /*level*/);
105 extern loop ith_loop_in_loop_nest(statement /*s1*/, int /*level*/);
106 extern void instruction_to_wp65_code(entity /*module*/, list /*l*/, graph /*dg*/, int /*pn*/, int /*bn*/, int /*ls*/, int /*pd*/, entity /*proc_id*/, entity /*proc_id_mm*/, Pbase /*bank_indices*/, hash_table /*v_to_esv*/, hash_table /*v_to_nlv*/, entity /*compute_module*/, statement /*computational*/, entity /*memory_module*/, statement /*emulator*/, statement_mapping /*fetch_map*/, statement_mapping /*store_map*/);
107 extern void call_to_wp65_code(statement /*s*/, entity /*compute_module*/, entity /*memory_module*/, entity /*bank_id*/, entity /*proc_id*/, statement /*computational*/, statement /*emulator*/, statement_mapping /*fetch_map*/, statement_mapping /*store_map*/, hash_table /*v_to_esv*/);
108 extern expression ref_in_implied_do(expression /*exp*/);
109 extern reference translate_IO_ref(call /*c*/, hash_table /*v_to_esv*/, bool /*loop_or_call_print*/);
110 extern statement generate_io_wp65_code(statement /*s1*/, statement /*body*/, hash_table /*v_to_esv*/, bool /*loop_or_call_print*/);
111 extern bool io_loop_nest_p(statement /*st*/);
112 extern void loop_nest_movement_generation(entity /*module*/, statement /*loop_nest*/, int /*pn*/, int /*bn*/, int /*ls*/, int /*pd*/, entity /*proc_id*/, entity /*proc_id_mm*/, Pbase /*bank_indices*/, hash_table /*v_to_esv*/, hash_table /*v_to_nlv*/, entity /*compute_module*/, statement /*computational*/, entity /*memory_module*/, statement /*emulator*/, statement_mapping /*fetch_map*/, statement_mapping /*store_map*/, statement /*mod_stat*/, bool /*fully_parallel*/, Psysteme /*sc_tile*/, Pbase /*initial_basis*/, Pbase /*local_basis*/, Pbase /*local_basis2*/, Pbase /*tile_basis_in_tile_basis*/, Pbase /*tile_basis_in_tile_basis2*/, Pbase /*loop_body_indices*/, list /*lpv*/, list */*lb*/, list */*blb*/, list */*sb*/, list */*bsb*/, int /*first_parallel_level*/, int /*last_parallel_level*/, hash_table /*llv_to_lcr*/, hash_table /*r_to_llv*/, hash_table /*v_to_lllv*/, hash_table /*r_to_ud*/);
113 extern void loop_nest_to_wp65_code(entity /*module*/, statement /*loop_nest*/, graph /*dg*/, int /*pn*/, int /*bn*/, int /*ls*/, int /*pd*/, entity /*proc_id*/, entity /*proc_id_mm*/, Pbase /*bank_indices*/, hash_table /*v_to_esv*/, hash_table /*v_to_nlv*/, entity /*compute_module*/, statement /*computational*/, entity /*memory_module*/, statement /*emulator*/, statement_mapping /*fetch_map*/, statement_mapping /*store_map*/, statement /*mod_stat*/);
114 extern void make_all_movement_blocks(entity /*initial_module*/, entity /*compute_module*/, entity /*memory_module*/, entity /*v*/, list /*map*/, hash_table /*llv_to_lcr*/, hash_table /*v_to_lllv*/, hash_table /*r_to_ud*/, hash_table /*v_to_esv*/, int /*pn*/, int /*bn*/, int /*ls*/, Psysteme /*iteration_domain*/, Pbase /*initial_basis*/, Pbase /*local_basis*/, entity /*proc_id*/, Pbase /*bank_indices*/, Pbase /*loop_body_indices*/, list */*pmb*/, list */*pbmb*/, tag /*use_def*/, int /*first_parallel_level*/, int /*last_parallel_level*/);
115 extern void search_parallel_loops(statement /*mod_stat*/, statement /*loop_statement*/, graph /*dg*/, bool /*loop_carried_dep*/[11]);
116 extern bool full_parallel_loop_nest_p(statement /*mod_stat*/, statement /*loop_stmt*/, int /*nest_dim*/, graph /*dg*/, bool */*loop_carried_dep*/);
117 /* wp65.c */
118 extern bool fetch_map_undefined_p(void);
119 extern void set_fetch_map(statement_mapping /*m*/);
121 extern void reset_fetch_map(void);
122 extern void free_fetch_map(void);
123 extern void make_fetch_map(void);
127 extern void store_statement_fetch(statement /*s*/, list /*t*/);
128 extern void update_statement_fetch(statement /*s*/, list /*t*/);
129 extern bool store_map_undefined_p(void);
130 extern void set_store_map(statement_mapping /*m*/);
132 extern void reset_store_map(void);
133 extern void free_store_map(void);
134 extern void make_store_map(void);
138 extern void store_statement_store(statement /*s*/, list /*t*/);
139 extern void update_statement_store(statement /*s*/, list /*t*/);
140 extern entity MakeEntityFunction(string /*sname*/);
141 extern bool wp65(const string /*input_module_name*/);
142 extern void module_to_wp65_modules(entity /*module*/, statement /*module_code*/, graph /*dg*/, int /*pn*/, int /*bn*/, int /*ls*/, int /*pd*/, entity */*pcompute_module*/, statement */*pcomputational*/, entity */*pmemory_module*/, statement */*pemulator*/);
143 extern void fprint_wp65_hash_tables(FILE */*fd*/, hash_table /*llv_to_lcr*/, hash_table /*r_to_llv*/, hash_table /*v_to_lllv*/, hash_table /*r_to_ud*/, hash_table /*v_to_esv*/);
144 extern bool wp65_conform_p(statement /*s*/);
145 /* basis.c */
146 extern entity create_local_index(entity /*module*/, Pvecteur /*pv*/, string /*st*/);
147 extern entity create_local_index2(entity /*module*/, Pvecteur /*pv*/, string /*st*/);
148 extern void create_tile_basis(entity /*initial_module*/, entity /*compute_module*/, entity /*memory_module*/, Pbase /*initial_basis*/, Pbase */*tile_basis_in_initial_basis*/, Pbase */*tile_basis_in_tile_basis*/, Pbase */*local_tile_basis*/, Pbase */*tile_basis_in_tile_basis2*/, Pbase */*local_tile_basis2*/);
149 /* find_iteration_domain.c */
150 extern void find_iteration_domain(statement /*s*/, Psysteme */*sc*/, Pbase */*basis*/, int */*nested_level*/, list */*list_statement_block*/, instruction */*inst*/);
151 extern void compute_iteration_domain(list /*list_loop_statement*/, Psysteme */*sc*/, Pbase */*basis*/);
152 extern void iteration_domain_from_statement(list */*list_loop_statement*/, statement /*s*/, int */*nested_level*/, list */*blocks*/, instruction */*inst*/);
153 /* model.c */
154 extern void model_fprint(FILE */*fd*/, int /*pn*/, int /*bn*/, int /*ls*/);
155 extern void model_fscan(FILE */*fd*/, int */*ppn*/, int */*pbn*/, int */*pls*/);
156 extern void get_model(int */*ppn*/, int */*pbn*/, int */*pls*/);
157 /* references.c */
158 extern bool ref_in_list_p(list /*lt*/, reference /*r*/);
159 extern void update_map(statement_mapping /*m*/, statement /*st*/, reference /*r*/);
160 extern list expression_to_operand_list(expression /*e*/, list /*lr*/);
161 extern bool reference_in_list_p(reference /*r*/, list /*lwr*/);
162 extern bool array_indice_in_list_p(reference /*r*/, list /*lwr*/);
163 extern void reference_list_update(list */*l*/, reference /*r*/);
164 extern void reference_list_add(list */*l1*/, list */*l2*/);
165 extern void reference_list_print(list /*l*/);
166 extern void reference_scalar_defined_p(reference /*r*/);
167 extern void variable_list_update(list */*l*/, reference /*r*/);
168 extern void variable_list_add(list */*l1*/, list */*l2*/);
169 extern void concat_data_list(list */*l*/, list */*lr*/, statement /*st*/, statement_mapping /*map*/, bool /*perfect_nested_loop*/);
170 /* communications.c */
171 extern void call_instruction_to_communications(statement /*s*/, statement /*st_level1*/, statement /*st_level2*/, list */*lwr*/, list */*lwr_local*/, statement_mapping */*fetch_map*/, statement_mapping */*store_map*/, hash_table /*r_to_ud*/, list */*lpv*/);
172 extern void loop_instruction_to_communications(statement /*stmt*/, statement /*st_level1*/, statement /*st_level2*/, list */*lwr*/, list */*lwr_local*/, statement_mapping */*fetch_map*/, statement_mapping */*store_map*/, hash_table /*r_to_ud*/, list */*lpv*/);
173 extern void statement_to_communications(statement /*stmt*/, statement /*st_level1*/, statement /*st_level2*/, list */*lwr*/, list */*lwr_local*/, statement_mapping */*fetch_map*/, statement_mapping */*store_map*/, hash_table /*r_to_ud*/, list */*lpv*/);
174 extern void compute_communications(list /*l*/, statement_mapping */*fetch_map*/, statement_mapping */*store_map*/);
175 extern void include_constant_symbolic_communication(entity /*compute_or_memory_module*/, list /*lrefs*/, bool /*load_code*/, statement /*computational_or_emulator*/, entity /*var_id*/);
176 extern list array_scalar_access_to_bank_communication(entity /*memory_module*/, Pbase /*bank_indices*/, int /*bn*/, int /*ls*/, list /*lt*/, bool /*load_code*/, entity /*proc_id*/, entity /*var_id*/, bool /*fully_sequential*/);
177 extern void insert_run_time_communications(entity /*compute_module*/, entity /*memory_module*/, Pbase /*bank_indices*/, int /*bn*/, int /*ls*/, entity /*proc_id*/, list /*list_statement_block*/, statement_mapping /*fetch_map*/, statement_mapping /*store_map*/, list */*new_slst*/, list */*new_blist*/, hash_table /*v_to_esv*/, bool /*fully_sequential*/, Pbase /*loop_indices*/, tiling /*tile*/, Pvecteur /*tile_delay*/, Pvecteur /*tile_indices*/, Pvecteur /*tile_local_indices*/);
178 extern bool test_run_time_communications(list /*list_statement_block*/, statement_mapping /*fetch_map*/, statement_mapping /*store_map*/);
179 #endif /* wp65_header_included */
int Value
Value * matrice
package matrice
Definition: matrice-local.h:71
int tag
TAG.
Definition: newgen_types.h:92
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
Psysteme tile_membership(matrice, Pbase, Pbase)
Psysteme tile_membership(P, origin, member):
Definition: code.c:1469
void instruction_to_wp65_code(entity, list, graph, int, int, int, int, entity, entity, Pbase, hash_table, hash_table, entity, statement, entity, statement, statement_mapping, statement_mapping)
void free_store_map(void)
bool test_run_time_communications(list, statement_mapping, statement_mapping)
list make_compute_block(entity, statement, Pvecteur, hash_table, tiling, Pbase, Pbase, Pbase, Pbase, Psysteme, int, int)
Definition: code.c:679
void loop_nest_to_wp65_code(entity, statement, graph, int, int, int, int, entity, entity, Pbase, hash_table, hash_table, entity, statement, entity, statement, statement_mapping, statement_mapping, statement)
void set_dimensions_of_local_variables(hash_table, Pbase, tiling, hash_table)
Definition: variable.c:652
list classify_reference(list, reference)
This function classifies the references in lists.
Definition: code.c:975
void find_iteration_domain(statement, Psysteme *, Pbase *, int *, list *, instruction *)
find_iteration_domain.c
void call_instruction_to_communications(statement, statement, statement, list *, list *, statement_mapping *, statement_mapping *, hash_table, list *)
communications.c
entity make_emulated_shared_variable(entity, entity, int, int)
Definition: variable.c:195
Value offset_dim1
WP65_INCLUDED.
Definition: code.c:67
void compute_iteration_domain(list, Psysteme *, Pbase *)
void statement_to_communications(statement, statement, statement, list *, list *, statement_mapping *, statement_mapping *, hash_table, list *)
This function associates to each variable in stmt the statement where it should be communicated.
bool store_map_undefined_p(void)
void reference_conversion_expression(expression, hash_table, Pvecteur, Pbase, Pbase)
Definition: code.c:864
entity MakeEntityFunction(string)
Definition: wp65.c:101
void make_store_blocks(entity, entity, entity, entity, entity, entity, list, hash_table, Psysteme, Pbase, Pbase, Pbase, Pbase, entity, int, int, int, statement *, statement *, int, int)
Definition: code.c:1166
list load_statement_fetch(statement)
void reference_list_print(list)
This function prints the references belonging to l.
Definition: references.c:186
bool wp65_conform_p(statement)
Definition: wp65.c:508
void update_statement_fetch(statement, list)
void concat_data_list(list *, list *, statement, statement_mapping, bool)
Definition: references.c:236
void reference_list_add(list *, list *)
This function adds all the references of l2 to l1 if they don't appear in l1.
Definition: references.c:175
void variable_list_update(list *, reference)
This function adds the reference r to List l, if the reference_variable(r) doesn't belong to l.
Definition: references.c:208
statement_mapping get_fetch_map(void)
entity create_local_index(entity, Pvecteur, string)
basis.c
Definition: basis.c:61
void store_statement_store(statement, list)
void set_dimensions_of_local_variable_family(list, Psysteme, list, tiling, int)
void set_dimensions_of_local_variable_family(llv, tc, lr):
Definition: variable.c:689
entity create_local_index2(entity, Pvecteur, string)
Definition: basis.c:80
bool full_parallel_loop_nest_p(statement, statement, int, graph, bool *)
void loop_nest_movement_generation(entity, statement, int, int, int, int, entity, entity, Pbase, hash_table, hash_table, entity, statement, entity, statement, statement_mapping, statement_mapping, statement, bool, Psysteme, Pbase, Pbase, Pbase, Pbase, Pbase, Pbase, list, list *, list *, list *, list *, int, int, hash_table, hash_table, hash_table, hash_table)
statement make_scanning_over_one_tile(entity, statement, tiling, Pbase, Pbase, Pbase, Pbase, Psysteme, int, int)
make_scanning_over_one_tile():
Definition: code.c:475
void compute_communications(list, statement_mapping *, statement_mapping *)
This function associates to each variable the statement in l where it should be communicated Fecth_ma...
void delete_statement_fetch(statement)
list reference_conversion_computation(entity, list *, expression, Pbase, Pbase, Pbase, tiling)
Definition: code.c:799
void delete_statement_store(statement)
void make_all_movement_blocks(entity, entity, entity, entity, list, hash_table, hash_table, hash_table, hash_table, int, int, int, Psysteme, Pbase, Pbase, entity, Pbase, Pbase, list *, list *, tag, int, int)
generates all data movements related to entity v, loads or stores depending on use_def
list expression_to_operand_list(expression, list)
This function gives the list of operands belonging to Expression e.
Definition: references.c:96
statement_mapping get_store_map(void)
void module_to_wp65_modules(entity, statement, graph, int, int, int, int, entity *, statement *, entity *, statement *)
Definition: wp65.c:202
void reset_store_map(void)
entity ith_index_of_ref(reference, int)
entity reference_translation(reference, Pbase, Pbase)
Definition: code.c:855
bool list_of_calls_p(list)
instruction_to_wp65_code.c
void set_fetch_map(statement_mapping)
bool reference_in_list_p(reference, list)
This function tests whether at least one array indice of Reference r belongs to List lwr or not.
Definition: references.c:130
void call_to_wp65_code(statement, entity, entity, entity, entity, statement, statement, statement_mapping, statement_mapping, hash_table)
bool statement_fetch_undefined_p(statement)
tiling loop_nest_to_tile(Psysteme, int, Pbase, int, int, int)
tiling.c
Definition: tiling.c:58
statement make_scanning_over_tiles(entity, list, entity, int, tiling, Pbase, Pbase, Pbase, Psysteme, int, int)
make_scanning_over_tiles()
Definition: code.c:227
list array_scalar_access_to_bank_communication(entity, Pbase, int, int, list, bool, entity, entity, bool)
void update_statement_store(statement, list)
void reference_scalar_defined_p(reference)
Definition: references.c:199
bool array_indice_in_list_p(reference, list)
Definition: references.c:140
void make_store_map(void)
bool reference_conflicting_test_and_update(reference, graph, hash_table, hash_table, hash_table, hash_table)
reference_conflicting_test_and_update():
Definition: variable.c:401
bool reference_conflicting_p(reference, reference, graph)
Definition: variable.c:513
bool ref_in_list_p(list, reference)
references.c
Definition: references.c:62
void loop_instruction_to_communications(statement, statement, statement, list *, list *, statement_mapping *, statement_mapping *, hash_table, list *)
This function associates to each variable in the loop the statement where it should be communicated (...
void update_map(statement_mapping, statement, reference)
Definition: references.c:68
void free_fetch_map(void)
void get_model(int *, int *, int *)
Definition: model.c:71
reference translate_IO_ref(call, hash_table, bool)
This function translates a reference in I/O statement into its corresponding emulated shared memory r...
void model_fscan(FILE *, int *, int *, int *)
Definition: model.c:59
list make_new_local_variables(entity, entity, int, int, hash_table)
Definition: variable.c:310
entity find_or_create_emulated_shared_variable(entity, entity, hash_table, int, int)
Definition: variable.c:284
void insert_run_time_communications(entity, entity, Pbase, int, int, entity, list, statement_mapping, statement_mapping, list *, list *, hash_table, bool, Pbase, tiling, Pvecteur, Pvecteur, Pvecteur)
bool wp65(const string)
Definition: wp65.c:128
void tile_change_of_basis(Psysteme, Pbase, Pbase, Pbase, tiling)
Definition: code.c:161
void store_statement_fetch(statement, list)
void make_fetch_map(void)
void make_load_blocks(entity, entity, entity, entity, entity, entity, list, hash_table, Psysteme, Pbase, Pbase, Pbase, Pbase, entity, int, int, int, statement *, statement *, int, int)
Definition: code.c:1312
void fprint_wp65_hash_tables(FILE *, hash_table, hash_table, hash_table, hash_table, hash_table)
Ignore this function: debugging purposes only.
Definition: wp65.c:406
loop ith_loop_in_loop_nest(statement, int)
list reference_conversion_statement(entity, statement, list *, hash_table, Pvecteur, Pbase, Pbase, Pbase, tiling)
void reference_conversion_statement(body, r_to_llv, offsets, initial_basis, local_basis):
Definition: code.c:723
void model_fprint(FILE *, int, int, int)
model.c
Definition: model.c:50
void loop_nest_to_local_variables(entity, entity, entity, hash_table, hash_table, hash_table, hash_table, hash_table, hash_table, list, statement, Pbase, graph, int, int, int, tiling)
variable.c
Definition: variable.c:80
statement generate_io_wp65_code(statement, statement, hash_table, bool)
void reference_list_update(list *, reference)
This function add Reference r to List l, if r doesn't belong to l.
Definition: references.c:161
expression ref_in_implied_do(expression)
This function extracts from an implied_do expression the reference having to be computed or printed.
Value offset_dim2
Definition: code.c:68
void eval_variable_in_statement(entity, statement, Variable, int)
Definition: code.c:141
void variable_list_add(list *, list *)
This function adds all the references of l2 to l1 if they don't appear in l1.
Definition: references.c:225
bool statement_store_undefined_p(statement)
bool fetch_map_undefined_p(void)
wp65.c
void iteration_domain_from_statement(list *, statement, int *, list *, instruction *)
void search_parallel_loops(statement, statement, graph, bool[11])
Psysteme build_sc_with_several_uniform_ref(entity, cons *, Psysteme, Pbase *)
build_sc_with_several_uniform_ref():
Definition: code.c:1011
Psysteme make_tile_constraints(matrice, Pbase)
Psysteme make_tile_constraints(P, b):
Definition: variable.c:591
void reset_fetch_map(void)
void create_tile_basis(entity, entity, entity, Pbase, Pbase *, Pbase *, Pbase *, Pbase *, Pbase *)
Definition: basis.c:100
bool io_loop_nest_p(statement)
Test if the statement resulting from the perfectly_loop_nest_to_body function contains at first call ...
list load_statement_store(statement)
void include_constant_symbolic_communication(entity, list, bool, statement, entity)
void set_store_map(statement_mapping)
bool uniform_dependence_p(reference, reference)
This function checks if two references have a uniform dependence.
Definition: code.c:939