PIPS
hpfc.h
Go to the documentation of this file.
1 /* Warning! Do not modify this file that is automatically generated! */
2 /* Modify src/Libs/hpfc/hpfc-local.h instead, to add your own modifications. */
3 
4 /* header file built by cproto */
5 
6 #ifndef hpfc_header_included
7 #define hpfc_header_included
8 /* hpfc-local.h */
9 /*
10 
11  $Id: hpfc-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 /* local definitions
33  */
34 
35 #define HPFC_PACKAGE "HPFC-PACKAGE"
36 #include "hpf_private.h"
37 #include "hpf.h"
38 #include "message.h"
39 
40 /* end of it
41  */
42 /* cproto-generated files */
43 /* directives.c */
44 extern bool the_dynamics_undefined_p(void);
45 extern void reset_the_dynamics(void);
46 extern void error_reset_the_dynamics(void);
47 extern void set_the_dynamics(list /*o*/);
48 extern list get_the_dynamics(void);
49 extern void init_the_dynamics(void);
50 extern void close_the_dynamics(void);
51 extern void add_a_dynamic(entity /*c*/);
52 extern void hpfc_directives_error_handler(void);
53 extern void handle_hpf_directives(statement /*s*/, bool /*dyn*/);
54 /* dynamic.c */
55 extern bool dynamic_hpf_undefined_p(void);
56 extern void reset_dynamic_hpf(void);
57 extern void error_reset_dynamic_hpf(void);
58 extern void set_dynamic_hpf(entity_entities /*o*/);
60 extern void init_dynamic_hpf(void);
61 extern void close_dynamic_hpf(void);
62 extern void store_dynamic_hpf(entity /*k*/, entities /*v*/);
63 extern void update_dynamic_hpf(entity /*k*/, entities /*v*/);
66 extern bool bound_dynamic_hpf_p(entity /*k*/);
67 extern void store_or_update_dynamic_hpf(entity /*k*/, entities /*v*/);
68 extern bool primary_entity_undefined_p(void);
69 extern void reset_primary_entity(void);
70 extern void error_reset_primary_entity(void);
71 extern void set_primary_entity(entitymap /*o*/);
73 extern void init_primary_entity(void);
74 extern void close_primary_entity(void);
75 extern void store_primary_entity(entity /*k*/, entity /*v*/);
76 extern void update_primary_entity(entity /*k*/, entity /*v*/);
79 extern bool bound_primary_entity_p(entity /*k*/);
80 extern void store_or_update_primary_entity(entity /*k*/, entity /*v*/);
81 extern bool renamings_undefined_p(void);
82 extern void reset_renamings(void);
83 extern void error_reset_renamings(void);
86 extern void init_renamings(void);
87 extern void close_renamings(void);
88 extern void store_renamings(statement /*k*/, list /*v*/);
89 extern void update_renamings(statement /*k*/, list /*v*/);
92 extern bool bound_renamings_p(statement /*k*/);
93 extern void store_or_update_renamings(statement /*k*/, list /*v*/);
95 extern void reset_maybeuseful_mappings(void);
99 extern void init_maybeuseful_mappings(void);
100 extern void close_maybeuseful_mappings(void);
107 extern bool similar_mapping_undefined_p(void);
108 extern void reset_similar_mapping(void);
109 extern void error_reset_similar_mapping(void);
110 extern void set_similar_mapping(entitymap /*o*/);
112 extern void init_similar_mapping(void);
113 extern void close_similar_mapping(void);
114 extern void store_similar_mapping(entity /*k*/, entity /*v*/);
115 extern void update_similar_mapping(entity /*k*/, entity /*v*/);
118 extern bool bound_similar_mapping_p(entity /*k*/);
121 extern bool same_primary_entity_p(entity /*e1*/, entity /*e2*/);
122 extern void init_dynamic_status(void);
123 extern void reset_dynamic_status(void);
125 extern void set_dynamic_status(dynamic_status /*d*/);
126 extern void close_dynamic_status(void);
127 extern void set_entity_as_dynamic(entity /*e*/);
128 extern bool (*dynamic_entity_p)(entity);
129 extern void set_similar_mappings_for_updates(void);
130 extern void hpfc_check_for_similarities(list /*le*/);
131 extern bool conformant_templates_p(entity /*t1*/, entity /*t2*/);
132 extern entity array_synonym_aligned_as(entity /*array*/, align /*a*/);
133 extern align new_align_with_template(align /*a*/, entity /*t*/);
135 extern bool array_distribution_similar_p(entity /*a1*/, entity /*a2*/);
136 extern bool hpfc_call_with_distributed_args_p(call /*c*/);
138 extern void init_dynamic_locals(void);
139 extern void close_dynamic_locals(void);
140 extern void add_as_a_used_dynamic_to_statement(statement /*s*/, entity /*e*/);
141 extern void propagate_synonym(statement /*s*/, entity /*old*/, entity /*new*/, bool /*is_array*/);
142 extern void dump_current_remapping_graph(string /*when*/);
143 extern void simplify_remapping_graph(void);
144 extern list alive_arrays(statement /*s*/, entity /*t*/);
145 extern statement generate_copy_loop_nest(entity /*src*/, entity /*trg*/);
146 /* hpfc.c */
147 extern bool hpf_reductions_undefined_p(void);
148 extern void reset_hpf_reductions(void);
149 extern void error_reset_hpf_reductions(void);
152 extern void init_hpf_reductions(void);
153 extern void close_hpf_reductions(void);
154 extern void store_hpf_reductions(statement /*k*/, entities /*v*/);
155 extern void update_hpf_reductions(statement /*k*/, entities /*v*/);
160 extern void add_a_common(entity /*c*/);
161 extern void add_a_pure(entity /*f*/);
162 extern bool hpf_pure_p(entity /*f*/);
163 extern void add_an_io_function(entity /*f*/);
164 extern bool hpfc_special_io(entity /*f*/);
165 extern void add_a_fake_function(entity /*f*/);
166 extern bool hpfc_special_fake(entity /*f*/);
167 extern bool remapping_already_computed_p(renaming /*x*/);
168 extern void add_remapping_as_computed(renaming /*r*/, list /*vars*/);
169 extern void add_remapping_as_used(renaming /*x*/);
170 extern void hpfc_add_ahead_of_node_code(statement /*s*/);
171 extern bool hpfc_init(const string /*name*/);
172 extern bool hpfc_filter(const string /*name*/);
173 extern bool hpfc_static_directives(const string /*name*/);
174 extern bool hpfc_dynamic_directives(const string /*name*/);
175 extern bool hpfc_compile(const string /*name*/);
176 extern bool hpfc_common(const string /*name*/);
177 extern bool hpfc_close(const string /*name*/);
178 extern bool hpfc_install(const string /*name*/);
179 extern bool hpfc_make(const string /*name*/);
180 extern bool hpfc_run(const string /*name*/);
181 /* debug-util.c */
182 extern void print_align(align /*a*/);
183 extern void print_alignment(alignment /*a*/);
184 extern void print_aligns(void);
185 extern void print_distributes(void);
186 extern void print_distribute(distribute /*d*/);
187 extern void print_distribution(distribution /*d*/);
188 extern void print_hpf_dir(void);
189 extern void print_templates(void);
190 extern void print_processors(void);
191 extern void print_distributed_arrays(void);
192 extern void hpfc_print_common(FILE */*file*/, entity /*module*/, entity /*common*/);
193 extern void hpfc_print_file(string /*file_name*/);
194 extern void fprint_range(FILE */*file*/, range /*r*/);
195 extern void fprint_lrange(FILE */*file*/, list /*l*/);
196 extern void fprint_message(FILE */*file*/, message /*m*/);
197 extern void fprint_lmessage(FILE */*file*/, list /*l*/);
198 /* hpfc-util.c */
199 extern bool ref_to_dist_array_p(void */*obj*/);
200 extern bool written_effect_p(entity /*var*/, list /*le*/);
201 extern bool written_effects_to_dist_arrays_p(expression /*expr*/);
202 extern bool replicated_p(entity /*e*/);
203 extern bool ith_dim_replicated_p(entity /*template*/, int /*i*/, list /*la*/, distribution /*dist*/);
204 extern bool processors_dim_replicated_p(entity /*p*/, entity /*a*/, int /*i*/);
205 extern bool ith_dim_distributed_p(entity /*array*/, int /*i*/, int */*pprocdim*/);
206 extern bool ith_dim_overlapable_p(entity /*array*/, int /*i*/);
207 extern statement MakeStatementLike(statement /*stat*/, int /*the_tag*/);
209 extern list DistArraysEffects(expression /*expr*/);
210 extern list FindRefToDistArrayFromList(list /*lexpr*/);
211 extern list FindRefToDistArray(void */*obj*/);
212 extern void AddEntityToHostAndNodeModules(entity /*e*/);
213 extern void AddCommonToModule(entity /*common*/, entity /*module*/, void (* /*update*/)(void), string /*suffix*/);
214 extern void AddCommonToHostAndNodeModules(entity /*common*/);
215 extern alignment FindAlignmentOfDim(list /*lal*/, int /*dim*/);
216 extern alignment FindAlignmentOfTemplateDim(list /*lal*/, int /*dim*/);
217 extern distribution FindDistributionOfDim(list /*ldi*/, int /*dim*/, int */*pdim*/);
218 extern distribution FindDistributionOfProcessorDim(list /*ldi*/, int /*dim*/, int */*tdim*/);
219 extern int template_dimension_of_array_dimension(entity /*array*/, int /*dim*/);
220 extern int processor_dimension_of_template_dimension(entity /*template*/, int /*dim*/);
221 extern int DistributionParameterOfArrayDim(entity /*array*/, int /*dim*/, int */*pprocdim*/);
222 extern int processor_number(entity /*template*/, int /*tdim*/, int /*tcell*/, int */*pprocdim*/);
223 extern int template_cell_local_mapping(entity /*array*/, int /*dim*/, int /*tc*/);
224 extern int global_array_cell_to_local_array_cell(entity /*array*/, int /*dim*/, int /*acell*/);
225 extern int HpfcExpressionToInt(expression /*e*/);
226 extern void get_alignment(entity /*array*/, int /*dim*/, int */*ptdim*/, int */*pa*/, int */*pb*/);
227 extern void get_distribution(entity /*template*/, int /*dim*/, int */*ppdim*/, int */*pn*/);
228 extern void get_entity_dimensions(entity /*e*/, int /*dim*/, int */*plow*/, int */*pup*/);
229 extern bool alignments_compatible_p(entity /*e1*/, int /*dim1*/, entity /*e2*/, int /*dim2*/);
230 extern bool references_aligned_p(reference /*r1*/, reference /*r2*/);
231 extern void hpfc_util_error_handler(void);
232 extern void statement_structural_cleaning(statement /*s*/);
233 /* declarations.c */
236 extern bool array_distributed_p(entity /*e*/);
237 extern void set_array_as_distributed(entity /*e*/);
238 extern bool declaration_delayed_p(entity /*e*/);
240 extern int number_of_templates(void);
241 extern list list_of_templates(void);
242 extern bool entity_template_p(entity /*e*/);
243 extern void set_template(entity /*e*/);
244 extern int number_of_processors(void);
246 extern bool entity_processor_p(entity /*e*/);
247 extern void set_processor(entity /*e*/);
248 extern void reset_hpf_object_lists(void);
249 extern void free_hpf_object_lists(void);
250 extern bool hpf_number_undefined_p(void);
251 extern void reset_hpf_number(void);
252 extern void error_reset_hpf_number(void);
253 extern void set_hpf_number(entity_int /*o*/);
255 extern void init_hpf_number(void);
256 extern void close_hpf_number(void);
257 extern void store_hpf_number(entity /*k*/, intptr_t /*v*/);
258 extern void update_hpf_number(entity /*k*/, intptr_t /*v*/);
261 extern bool bound_hpf_number_p(entity /*k*/);
262 extern void store_or_update_hpf_number(entity /*k*/, intptr_t /*v*/);
263 extern void init_hpf_number_status(void);
265 extern void reset_hpf_number_status(void);
266 extern void set_hpf_number_status(numbers_status /*s*/);
267 extern void close_hpf_number_status(void);
268 extern void GiveToHpfObjectsTheirNumber(void);
269 extern expression entity_hpf_number(entity /*e*/);
270 extern bool hpf_alignment_undefined_p(void);
271 extern void reset_hpf_alignment(void);
272 extern void error_reset_hpf_alignment(void);
273 extern void set_hpf_alignment(alignmap /*o*/);
275 extern void init_hpf_alignment(void);
276 extern void close_hpf_alignment(void);
277 extern void store_hpf_alignment(entity /*k*/, align /*v*/);
278 extern void update_hpf_alignment(entity /*k*/, align /*v*/);
281 extern bool bound_hpf_alignment_p(entity /*k*/);
282 extern void store_or_update_hpf_alignment(entity /*k*/, align /*v*/);
284 extern void reset_hpf_distribution(void);
288 extern void init_hpf_distribution(void);
289 extern void close_hpf_distribution(void);
290 extern void store_hpf_distribution(entity /*k*/, distribute /*v*/);
291 extern void update_hpf_distribution(entity /*k*/, distribute /*v*/);
294 extern bool bound_hpf_distribution_p(entity /*k*/);
296 extern tag new_declaration_tag(entity /*array*/, int /*dim*/);
297 extern void get_ith_dim_new_declaration(entity /*array*/, int /*i*/, int */*pmin*/, int */*pmax*/);
298 extern void init_data_status(void);
299 extern data_status get_data_status(void);
300 extern void reset_data_status(void);
301 extern void set_data_status(data_status /*s*/);
302 extern void close_data_status(void);
303 extern void normalize_distribute(entity /*t*/, distribute /*d*/);
304 extern void normalize_align(entity /*e*/, align /*a*/);
305 extern void normalize_hpf_object(entity /*v*/);
306 extern void NormalizeHpfDeclarations(void);
307 extern void NewDeclarationsOfDistributedArrays(void);
308 extern bool overlap_status_undefined_p(void);
309 extern void reset_overlap_status(void);
310 extern void error_reset_overlap_status(void);
311 extern void set_overlap_status(overlapsmap /*o*/);
313 extern void init_overlap_status(void);
314 extern void close_overlap_status(void);
315 extern void store_overlap_status(entity /*k*/, list /*v*/);
316 extern void update_overlap_status(entity /*k*/, list /*v*/);
319 extern bool bound_overlap_status_p(entity /*k*/);
320 extern void store_or_update_overlap_status(entity /*k*/, list /*v*/);
321 extern void set_overlap(entity /*ent*/, int /*dim*/, int /*side*/, int /*width*/);
322 extern int get_overlap(entity /*ent*/, int /*dim*/, int /*side*/);
323 extern void declaration_with_overlaps_for_module(entity /*module*/);
324 extern void update_overlaps_in_caller(entity /*fun*/, list /*le*/);
325 /* compiler-util.c */
326 extern void update_control_lists(control /*c*/, control_mapping /*map*/);
327 extern list updated_control_list(list /*lc*/, control_mapping /*map*/);
328 extern void FindRefToDistArrayInStatement(statement /*obj*/, list */*lwp*/, list */*lrp*/);
329 extern list lIndicesOfRef(list /*lsyn*/);
330 extern list IndicesOfRef(syntax /*syn*/);
331 extern list AddOnceToIndicesList(list /*l*/, list /*lsyn*/);
332 extern bool is_in_syntax_list(entity /*e*/, list /*l*/);
333 extern list FindDefinitionsOf(statement /*stat*/, list /*lsyn*/);
334 extern bool atomic_accesses_only_p(statement /*stat*/);
336 extern statement parallel_loop_nest_to_body(statement /*loop_nest*/, list */*pblocks*/, list */*ploops*/);
337 extern void set_current_loops(statement /*obj*/);
338 extern void reset_current_loops(void);
339 extern bool entity_loop_index_p(entity /*e*/);
340 extern range loop_index_to_range(entity /*index*/);
341 /* compiler.c */
342 extern entity host_module;
343 extern entity node_module;
344 extern void hpf_compiler(statement /*stat*/, statement */*hoststatp*/, statement */*nodestatp*/);
345 /* compile.c */
346 extern void make_host_and_node_modules(entity /*module*/);
347 extern void init_host_and_node_entities(void);
348 extern FILE *hpfc_fopen(string /*name*/);
349 extern void hpfc_fclose(FILE */*f*/, string /*name*/);
350 extern void hpfc_print_code(FILE */*file*/, entity /*module*/, statement /*stat*/);
351 extern void put_generated_resources_for_common(entity /*common*/);
352 extern void compile_a_special_io_function(entity /*module*/);
353 extern void compile_a_pure_function(entity /*module*/);
354 extern void put_generated_resources_for_module(statement /*stat*/, statement /*host_stat*/, statement /*node_stat*/);
355 extern void put_generated_resources_for_program(string /*program_name*/);
356 extern void hpfcompile(const char */*module_name*/);
357 extern entity hpfc_new_variable(entity /*module*/, basic /*b*/);
358 extern void hpfc_compile_error_handler(void);
359 extern void NormalizeCodeForHpfc(statement /*s*/);
363 extern void reset_update_common_map(void);
364 extern void free_update_common_map(void);
365 extern void make_update_common_map(void);
369 extern void store_entity_update_common(entity /*s*/, entity /*t*/);
370 extern void update_entity_update_common(entity /*s*/, entity /*t*/);
371 extern void debug_print_referenced_entities(void */*obj*/);
372 extern void update_common_references_in_obj(void */*obj*/);
373 extern void update_common_references_in_regions(void);
374 extern void NormalizeCommonVariables(entity /*module*/, statement /*stat*/);
375 /* run-time.c */
376 extern entity MakeRunTimeSupportSubroutine(string /*local_name*/, int /*number_of_arguments*/);
377 extern entity MakeRunTimeSupportFunction(string /*local_name*/, int /*number_of_arguments*/, tag /*return_type*/);
379 extern string pvm_what_options(basic /*b*/);
383 extern expression expr_compute_local_index(entity /*array*/, int /*dim*/, expression /*expr*/);
384 extern statement hpfc_make_call_statement(entity /*e*/, list /*l*/);
385 extern void add_pvm_init_and_end(statement */*phs*/, statement */*pns*/);
386 extern statement st_compute_neighbour(int /*d*/);
387 extern statement st_generate_packing(entity /*array*/, list /*content*/, bool /*bsend*/);
388 extern entity hpfc_main_entity(entity /*e*/);
389 extern const char *hpfc_main_entity_name(entity /*e*/);
390 extern string bound_parameter_name(entity /*array*/, string /*side*/, int /*dim*/);
391 extern entity argument_bound_entity(entity /*module*/, entity /*array*/, bool /*upper*/, int /*dim*/);
392 extern expression hpfc_array_bound(entity /*array*/, bool /*upper*/, int /*dim*/);
393 extern list array_lower_upper_bounds_list(entity /*array*/);
394 extern void hpfc_init_run_time_entities(void);
395 extern entity hpfc_name_to_entity(const char */*name*/);
396 extern bool hpfc_intrinsic_like_function(entity /*e*/);
397 extern bool hpfc_io_like_function(entity /*e*/);
398 /* generate.c */
399 extern void generate_c1_beta(statement /*stat*/, list */*lhp*/, list */*lnp*/);
400 extern void generate_c1_alpha(statement /*stat*/, list */*lhp*/, list */*lnp*/);
401 extern void generate_update_values_on_nodes(reference /*ref*/, reference /*newref*/, list */*lscompp*/, list */*lsnotcompp*/);
402 extern void generate_read_of_ref_for_computer(syntax /*s*/, list */*lcompp*/, list */*lnotcompp*/);
403 extern void generate_read_of_ref_for_all(syntax /*s*/, list */*lhp*/, list */*lnp*/);
404 extern void generate_compute_local_indices(reference /*ref*/, list */*lsp*/, list */*lindsp*/);
405 extern void generate_get_value_locally(reference /*ref*/, reference /*goal*/, list */*lstatp*/);
406 extern void generate_send_to_computer(reference /*ref*/, list */*lstatp*/);
407 extern void generate_receive_from_computer(reference /*ref*/, list */*lstatp*/);
408 extern void generate_parallel_body(statement /*body*/, list */*lstatp*/, list /*lw*/, list /*lr*/);
409 extern void generate_update_values_on_computer_and_nodes(reference /*ref*/, reference /*val*/, list */*lscompp*/, list */*lsnotcompp*/);
410 extern void generate_update_distributed_value_from_host(syntax /*s*/, list */*lhstatp*/, list */*lnstatp*/);
411 extern void generate_update_private_value_from_host(syntax /*s*/, list */*lhstatp*/, list */*lnstatp*/);
413 extern statement st_compute_ith_local_index(entity /*array*/, int /*i*/, expression /*expr*/, syntax */*sp*/);
414 extern statement st_send_to_host_and_nodes(reference /*ref*/, reference /*val*/);
416 extern statement st_get_value_for_all(reference /*ref*/, reference /*goal*/);
417 extern statement st_get_value_for_computer(reference /*ref*/, reference /*goal*/);
418 extern statement st_receive_from(reference /*ref*/, reference /*goal*/);
419 /* local-ri-util.c */
420 extern type type_variable_dup(type /*t*/);
421 extern bool fortran_library_entity_p(entity /*e*/);
422 /* inits.c */
423 extern void create_common_parameters_h(FILE */*file*/);
424 extern void create_parameters_h(FILE */*file*/, entity /*module*/);
425 extern int max_size_of_processors(void);
426 extern void create_init_common_param_for_arrays(FILE */*file*/, entity /*module*/);
427 extern void create_init_common_param_for_templates(FILE */*file*/);
428 extern void create_init_common_param_for_processors(FILE */*file*/);
429 extern void create_init_common_param(FILE */*file*/);
430 /* o-analysis.c */
431 extern bool block_distributed_p(entity /*array*/);
432 extern bool Overlap_Analysis(statement /*stat*/, statement */*pstat*/);
433 /* align-checker.c */
440 extern bool align_check(reference /*r1*/, reference /*r2*/, list */*plvect*/, list */*plkind*/);
441 extern bool hpfc_integer_constant_expression_p(expression /*e*/, int */*pi*/);
442 /* messages.c */
443 extern statement messages_handling(list /*Ro*/, list /*lRo*/);
444 /* message-utils.c */
445 extern Pvecteur the_index_of_vect(Pvecteur /*v0*/);
446 extern list add_to_list_of_ranges_list(list /*l*/, range /*r*/);
447 extern list dup_list_of_ranges_list(list /*l*/);
448 extern list dup_list_of_Pvecteur(list /*l*/);
449 extern list add_elem_to_list_of_Pvecteur(list /*l*/, int /*var*/, int /*val*/);
450 extern range complementary_range(entity /*array*/, int /*dim*/, range /*r*/);
451 extern list generate_message_from_3_lists(entity /*array*/, list /*lcontent*/, list /*lneighbour*/, list /*ldomain*/);
452 extern bool empty_section_p(list /*lr*/);
453 extern bool empty_range_p(range /*r*/);
454 extern char *sprint_lrange(string /*str*/, list /*l*/);
455 extern char *sprint_range(string /*str*/, range /*r*/);
456 extern list compute_receive_content(entity /*array*/, list /*lr*/, Pvecteur /*v*/);
457 extern list compute_receive_domain(list /*lr*/, Pvecteur /*v*/);
458 extern bool larger_message_in_list(message /*m*/, list /*l*/);
459 extern bool message_larger_p(message /*m1*/, message /*m2*/);
460 extern bool lrange_larger_p(list /*lr1*/, list /*lr2*/);
461 extern list array_ranges_to_template_ranges(entity /*array*/, list /*lra*/);
462 extern list template_ranges_to_processors_ranges(entity /*template*/, list /*lrt*/);
463 extern list array_access_to_array_ranges(reference /*r*/, list /*lkref*/, list /*lvref*/);
464 extern statement generate_guarded_statement(statement /*stat*/, entity /*proc*/, list /*lr*/);
465 extern bool make_guard_expression(entity /*proc*/, list /*lrref*/, expression */*pguard*/);
466 extern expression make_mypos_expression(int /*i*/, expression /*exp*/);
467 extern statement loop_nest_guard(statement /*stat*/, reference /*r*/, list /*lkref*/, list /*lvref*/);
468 /* build-system.c */
469 extern bool entity_hpfc_dummy_p(entity /*e*/);
470 extern entity get_ith_region_dummy(int /*i*/);
471 extern entity get_ith_region_prime(int /*i*/);
472 extern entity get_ith_array_dummy(int /*i*/);
473 extern entity get_ith_array_prime(int /*i*/);
474 extern entity get_ith_template_dummy(int /*i*/);
475 extern entity get_ith_template_prime(int /*i*/);
476 extern entity get_ith_processor_dummy(int /*i*/);
477 extern entity get_ith_processor_prime(int /*i*/);
478 extern entity get_ith_block_dummy(int /*i*/);
479 extern entity get_ith_block_prime(int /*i*/);
480 extern entity get_ith_cycle_dummy(int /*i*/);
481 extern entity get_ith_cycle_prime(int /*i*/);
482 extern entity get_ith_local_dummy(int /*i*/);
483 extern entity get_ith_local_prime(int /*i*/);
484 extern entity get_ith_shift_dummy(int /*i*/);
485 extern entity get_ith_shift_prime(int /*i*/);
486 extern entity get_ith_auxiliary_dummy(int /*i*/);
487 extern entity get_ith_auxiliary_prime(int /*i*/);
488 extern entity get_ith_temporary_dummy(int /*i*/);
489 extern entity get_ith_temporary_prime(int /*i*/);
490 extern void hpfc_init_dummy_to_prime(void);
491 extern void hpfc_close_dummy_to_prime(void);
493 extern void make_hpfc_current_mappings(void);
494 extern void free_hpfc_current_mappings(void);
495 extern Psysteme compute_entity_to_declaration_constraints(entity /*ent*/, string /*suffix*/, string /*prefix*/);
496 extern Psysteme entity_to_declaration_constraints(entity /*e*/, tag /*what*/);
500 extern effect entity_to_region(statement /*stat*/, entity /*ent*/, tag /*act*/);
502 extern Psysteme entity_to_new_declaration(entity /*array*/);
503 extern Psysteme generate_system_for_equal_variables(int /*n*/, entity (* /*gen1*/)(int), entity (* /*gen2*/)(int));
504 extern Psysteme hpfc_unstutter_dummies(entity /*array*/);
506 /* io-util.c */
507 extern bool only_io_map_undefined_p(void);
510 extern void reset_only_io_map(void);
511 extern void free_only_io_map(void);
512 extern void make_only_io_map(void);
516 extern void store_statement_only_io(statement /*s*/, bool /*t*/);
517 extern void update_statement_only_io(statement /*s*/, bool /*t*/);
518 extern void hpfc_io_util_error_handler(void);
519 extern void only_io_mapping_initialize(statement /*program*/);
520 extern void generate_io_statements_for_distributed_arrays(entity /*array*/, tag /*move*/, Psysteme /*condition*/, Psysteme /*proc_echelon*/, Psysteme /*tile_echelon*/, list /*parameters*/, list /*processors*/, list /*scanners*/, list /*rebuild*/, statement */*psh*/, statement */*psn*/);
521 extern void generate_io_statements_for_shared_arrays(entity /*array*/, tag /*move*/, Psysteme /*condition*/, Psysteme /*echelon*/, list /*parameters*/, list /*scanners*/, list /*rebuild*/, statement */*psh*/, statement */*psn*/);
522 /* io-compile.c */
523 extern void hpfc_algorithm_row_echelon(Psysteme /*syst*/, list /*scanners*/, Psysteme */*pcond*/, Psysteme */*penum*/);
524 extern list make_list_of_dummy_variables(entity (* /*creation*/)(void), int /*number*/);
525 extern void remove_variables_if_possible(Psysteme */*psyst*/, list */*plvars*/);
526 extern void remove_variables_from_system(Psysteme */*ps*/, list */*plv*/);
527 extern void clean_the_system(Psysteme */*ps*/, list */*plrm*/, list */*pltry*/);
528 extern list simplify_deducable_variables(Psysteme /*syst*/, list /*vars*/, list */*pleftvars*/);
529 extern list hpfc_order_variables(list /*le*/, bool /*number_first*/);
530 extern void hpfc_algorithm_tiling(Psysteme /*syst*/, list /*processors*/, list /*scanners*/, Psysteme */*pcondition*/, Psysteme */*pproc_echelon*/, Psysteme */*ptile_echelon*/);
531 extern void hpfc_simplify_condition(Psysteme */*psc*/, statement /*stat*/, tag /*move*/);
532 extern void io_efficient_compile(statement /*stat*/, statement */*hp*/, statement */*np*/);
533 /* generate-util.c */
534 extern statement define_node_processor_id(entity /*proc*/, entity (* /*creation*/)(int));
535 extern statement generate_deducables(list /*le*/);
536 extern list hpfc_gen_n_vars_expr(entity (* /*creation*/)(void), int /*number*/);
537 extern expression make_reference_expression(entity /*e*/, entity (* /*creation*/)(void));
538 extern statement hpfc_add_n(entity /*var*/, int /*n*/);
539 extern statement hpfc_add_2(expression /*exp*/);
540 extern statement hpfc_message(expression /*tid*/, expression /*channel*/, bool /*send*/);
541 extern statement hpfc_lazy_guard(bool /*snd*/, statement /*then*/);
542 extern statement hpfc_generate_message(entity /*ld*/, bool /*send*/, bool /*lazy*/);
543 extern statement hpfc_initsend(bool /*lazy*/);
544 extern expression hpfc_buffer_reference(entity /*array*/, entity /*index*/);
545 extern statement hpfc_buffer_packing(entity /*array*/, entity (* /*creation*/)(void), bool /*pack*/);
546 extern statement hpfc_packing_of_current__buffer(entity /*array*/, bool /*pack*/);
547 extern statement hpfc_broadcast_if_necessary(entity /*array*/, entity /*trg*/, entity /*lid*/, entity /*proc*/, bool /*is_lazy*/);
548 extern statement hpfc_lazy_buffer_packing(entity /*src*/, entity /*trg*/, entity /*lid*/, entity /*proc*/, entity (* /*array_dim*/)(void), bool /*is_send*/, bool /*is_lazy*/);
549 extern statement hpfc_buffer_initialization(bool /*is_send*/, bool /*is_lazy*/, bool /*job_was_done*/);
550 extern statement hpfc_lazy_packing(entity /*array*/, entity /*lid*/, entity (* /*creation*/)(void), bool /*pack*/, bool /*lazy*/);
551 extern statement hpfc_compute_lid(entity /*lid*/, entity /*proc*/, entity (* /*creation*/)(void), entity /*array*/);
552 /* remapping.c */
553 extern Pcontrainte full_linearization(entity /*obj*/, entity /*var*/, int */*psize*/, entity (* /*create_var*/)(int), bool /*fortran_way*/, int /*initial_offset*/);
554 extern statement generate_all_liveness(entity /*primary*/, bool /*val*/);
556 extern void remapping_compile(statement /*s*/, statement */*hsp*/, statement */*nsp*/);
557 /* host_node_entities.c */
558 extern bool new_host_undefined_p(void);
559 extern void reset_new_host(void);
560 extern void error_reset_new_host(void);
561 extern void set_new_host(entitymap /*o*/);
562 extern entitymap get_new_host(void);
563 extern void init_new_host(void);
564 extern void close_new_host(void);
565 extern void store_new_host(entity /*k*/, entity /*v*/);
566 extern void update_new_host(entity /*k*/, entity /*v*/);
569 extern bool bound_new_host_p(entity /*k*/);
570 extern void store_or_update_new_host(entity /*k*/, entity /*v*/);
571 extern bool old_host_undefined_p(void);
572 extern void reset_old_host(void);
573 extern void error_reset_old_host(void);
574 extern void set_old_host(entitymap /*o*/);
575 extern entitymap get_old_host(void);
576 extern void init_old_host(void);
577 extern void close_old_host(void);
578 extern void store_old_host(entity /*k*/, entity /*v*/);
579 extern void update_old_host(entity /*k*/, entity /*v*/);
582 extern bool bound_old_host_p(entity /*k*/);
583 extern void store_or_update_old_host(entity /*k*/, entity /*v*/);
584 extern bool new_node_undefined_p(void);
585 extern void reset_new_node(void);
586 extern void error_reset_new_node(void);
587 extern void set_new_node(entitymap /*o*/);
588 extern entitymap get_new_node(void);
589 extern void init_new_node(void);
590 extern void close_new_node(void);
591 extern void store_new_node(entity /*k*/, entity /*v*/);
592 extern void update_new_node(entity /*k*/, entity /*v*/);
595 extern bool bound_new_node_p(entity /*k*/);
596 extern void store_or_update_new_node(entity /*k*/, entity /*v*/);
597 extern bool old_node_undefined_p(void);
598 extern void reset_old_node(void);
599 extern void error_reset_old_node(void);
600 extern void set_old_node(entitymap /*o*/);
601 extern entitymap get_old_node(void);
602 extern void init_old_node(void);
603 extern void close_old_node(void);
604 extern void store_old_node(entity /*k*/, entity /*v*/);
605 extern void update_old_node(entity /*k*/, entity /*v*/);
608 extern bool bound_old_node_p(entity /*k*/);
609 extern void store_or_update_old_node(entity /*k*/, entity /*v*/);
610 extern void debug_host_node_variables(entity /*e*/);
611 extern void store_new_node_variable(entity /*new*/, entity /*old*/);
612 extern void store_new_host_variable(entity /*new*/, entity /*old*/);
613 extern void store_new_host_node_variable(entity /*neh*/, entity /*nen*/, entity /*old*/);
614 extern void init_entity_status(void);
615 extern entity_status get_entity_status(void);
616 extern void set_entity_status(entity_status /*s*/);
617 extern void reset_entity_status(void);
618 extern void close_entity_status(void);
619 extern string hpfc_module_suffix(entity /*module*/);
620 extern void update_object_for_module(void */*obj*/, entity /*module*/);
621 extern void update_list_for_module(list /*l*/, entity /*module*/);
622 extern expression UpdateExpressionForModule(entity /*module*/, expression /*ex*/);
623 extern list lUpdateExpr_but_distributed(entity /*module*/, list /*l*/);
624 extern list lUpdateExpr(entity /*module*/, list /*l*/);
625 extern list lNewVariableForModule(entity /*module*/, list /*le*/);
626 extern entity NewVariableForModule(entity /*module*/, entity /*e*/);
627 extern statement UpdateStatementForModule(entity /*module*/, statement /*stat*/);
628 /* special_cases.c */
629 extern bool hpfc_entity_reduction_p(entity /*e*/);
630 extern bool call_reduction_p(call /*c*/);
631 extern bool compile_reduction(statement /*initial*/, statement */*phost*/, statement */*pnode*/);
632 extern list handle_hpf_reduction(statement /*s*/);
633 extern list compile_hpf_reduction(list /*lr*/, bool /*prolog*/, bool /*host*/);
634 extern void free_vector_list(list /*l*/);
635 extern bool subarray_shift_p(statement /*s*/, entity */*pe*/, list */*plvect*/);
636 extern Psysteme get_read_effect_area(list /*le*/, entity /*var*/);
637 extern list make_rectangular_area(statement /*st*/, entity /*var*/);
638 extern statement generate_subarray_shift(statement /*s*/, entity /*var*/, list /*lshift*/);
639 extern void hpfc_special_cases_error_handler(void);
640 extern statement simple_statement(statement /*s*/);
641 extern bool full_define_p(reference /*r*/, list /*ll*/);
642 extern bool full_copy_p(statement /*s*/, reference */*pleft*/, reference */*pright*/);
643 extern statement generate_full_copy(reference /*left*/, reference /*right*/);
644 /* lattice_extraction.c */
645 extern void extract_lattice(Psysteme /*s*/, list /*scanners*/, list */*newscs*/, list */*ddc*/);
646 #endif /* hpfc_header_included */
struct _newgen_struct_entity_ * entity
Definition: abc_private.h:14
entity get_ith_array_prime(int)
bool ith_dim_overlapable_p(entity, int)
Definition: hpfc-util.c:178
entities load_dynamic_hpf(entity)
bool hpf_reductions_undefined_p(void)
hpfc.c
list delete_renamings(statement)
statement hpfc_compute_lid(entity, entity, entity(*)(void), entity)
void set_old_host(entitymap)
bool hpfc_special_io(entity)
Definition: hpfc.c:77
statement hpfc_generate_message(entity, bool, bool)
void init_hpf_alignment(void)
void generate_io_statements_for_distributed_arrays(entity, tag, Psysteme, Psysteme, Psysteme, list, list, list, list, statement *, statement *)
void set_entity_status(entity_status)
bool bound_old_node_p(entity)
statement st_get_value_locally_and_send(reference, reference)
Definition: generate.c:760
void NormalizeHpfDeclarations(void)
Definition: declarations.c:437
list make_list_of_dummy_variables(entity(*)(void), int)
void add_an_io_function(entity)
Definition: hpfc.c:74
bool fortran_library_entity_p(entity)
Definition: local-ri-util.c:52
entity_status get_entity_status(void)
list DistArraysEffects(expression)
effects' action in an expression are here supposed to be read one's but that may not be correct?
Definition: hpfc-util.c:241
void hpfc_add_ahead_of_node_code(statement)
Definition: hpfc.c:404
expression expr_compute_local_index(entity, int, expression)
new index computation formula, derived from the new declarations made for the given dimension.
Definition: run-time.c:198
bool renamings_undefined_p(void)
bool remapping_already_computed_p(renaming)
list of already computed remappings...
Definition: hpfc.c:105
void set_only_io_map(statement_mapping)
void remove_variables_from_system(Psysteme *, list *)
Definition: io-compile.c:345
void error_reset_new_host(void)
void remapping_compile(statement, statement *, statement *)
void remapping_compile(s, hsp, nsp) statement s, *hsp, *nsp;
Definition: remapping.c:1302
void update_list_for_module(list, entity)
void reset_hpf_number_status(void)
Definition: declarations.c:142
void store_entity_update_common(entity, entity)
statement hpfc_message(expression, expression, bool)
void store_or_update_similar_mapping(entity, entity)
list list_of_distributed_arrays_for_module(entity)
returns the list of entities that are 'local' to module
Definition: declarations.c:72
entity load_entity_update_common(entity)
void print_distribution(distribution)
Definition: debug-util.c:97
void set_dynamic_status(dynamic_status)
Definition: dynamic.c:108
numbers_status get_hpf_number_status(void)
Definition: declarations.c:134
void close_data_status(void)
Definition: declarations.c:339
void compile_a_pure_function(entity)
simply copied for both host and node...
Definition: compile.c:493
intptr_t delete_hpf_number(entity)
int template_cell_local_mapping(entity, int, int)
int template_cell_local_mapping(array, dim, tc)
Definition: hpfc-util.c:532
statement hpfc_broadcast_if_necessary(entity, entity, entity, entity, bool)
lazy or not...
entity load_old_node(entity)
bool declaration_delayed_p(entity)
bool processors_dim_replicated_p(entity, entity, int)
void AddCommonToHostAndNodeModules(entity)
Definition: hpfc-util.c:371
void hpfc_simplify_condition(Psysteme *, statement, tag)
void hpfc_simplify_condition(psc, stat, move)
Definition: io-compile.c:724
void init_old_node(void)
bool bound_new_host_p(entity)
bool hpfc_filter(const string)
Definition: hpfc.c:594
void print_processors(void)
Definition: debug-util.c:142
void make_only_io_map(void)
statement generate_deducables(list)
statement generate_deducables(list le)
Definition: generate-util.c:83
bool entity_hpfc_dummy_p(entity)
build-system.c
Definition: build-system.c:106
int max_size_of_processors(void)
Definition: inits.c:120
void reset_entity_status(void)
bool replicated_p(entity)
replicated_p
Definition: hpfc-util.c:96
entity hpfc_name_to_entity(const char *)
Definition: run-time.c:817
entities delete_dynamic_hpf(entity)
bool bound_hpf_reductions_p(statement)
void print_alignment(alignment)
Definition: debug-util.c:47
entity get_ith_template_dummy(int)
entities delete_hpf_reductions(statement)
void init_overlap_status(void)
void update_common_references_in_obj(void *)
Definition: compile.c:911
list add_elem_to_list_of_Pvecteur(list, int, int)
caution, is initial list is destroyed.
bool similar_mapping_undefined_p(void)
void generate_send_to_computer(reference, list *)
generate_send_to_computer
Definition: generate.c:471
void normalize_distribute(entity, distribute)
Definition: declarations.c:408
bool update_common_map_undefined_p(void)
void update_common_references_in_regions(void)
Definition: compile.c:921
void fprint_range(FILE *, range)
Definition: debug-util.c:176
statement hpfc_add_n(entity, int)
returns statement VAR = VAR + N
bool hpf_distribution_undefined_p(void)
void store_or_update_primary_entity(entity, entity)
Psysteme hpfc_compute_unicity_constraints(entity)
Psysteme hpfc_compute_unicity_constraints(e) entity e should be an array;.
Definition: build-system.c:360
list FindRefToDistArray(void *)
Definition: hpfc-util.c:282
statement parallel_loop_nest_to_body(statement, list *, list *)
bool bound_renamings_p(statement)
bool same_primary_entity_p(entity, entity)
Definition: dynamic.c:70
void store_or_update_new_node(entity, entity)
void hpfc_close_dummy_to_prime(void)
Definition: build-system.c:168
bool bound_maybeuseful_mappings_p(statement)
bool hpfc_close(const string)
bool hpfc_close(string name)
Definition: hpfc.c:798
void update_old_host(entity, entity)
void store_hpf_distribution(entity, distribute)
bool align_check(reference, reference, list *, list *)
computes the shift vector that links the two references, true if every thing is ok,...
bool conformant_templates_p(entity, entity)
Definition: dynamic.c:405
void add_a_dynamic(entity)
local primary dynamics
Definition: directives.c:99
void add_a_common(entity)
HPFC module by Fabien COELHO.
Definition: hpfc.c:48
statement hpfc_lazy_packing(entity, entity, entity(*)(void), bool, bool)
void store_or_update_hpf_alignment(entity, align)
entity load_similar_mapping(entity)
void reset_overlap_status(void)
void get_alignment(entity, int, int *, int *, int *)
Definition: hpfc-util.c:606
statement MakeStatementLike(statement, int)
creates a new statement for the given module that looks like the stat one, i.e.
Definition: hpfc-util.c:203
list array_access_to_array_ranges(reference, list, list)
void close_hpf_number_status(void)
Definition: declarations.c:157
bool is_in_syntax_list(entity, list)
entity load_new_node(entity)
void generate_update_distributed_value_from_host(syntax, list *, list *)
generate_update_distributed_value_from_host
Definition: generate.c:691
statement st_get_value_for_all(reference, reference)
Definition: generate.c:842
entity MakeRunTimeSupportFunction(string, int, tag)
list array_lower_upper_bounds_list(entity)
of expressions
Definition: run-time.c:539
bool the_dynamics_undefined_p(void)
end of it
void reset_only_io_map(void)
void set_entity_as_dynamic(entity)
a new dynamic entity is stored.
Definition: dynamic.c:130
entity template_synonym_distributed_as(entity, distribute)
what: finds or creates a new entity distributed as needed.
Definition: dynamic.c:491
bool indirections_inside_statement_p(statement)
bool hpfc_init(const string)
bool hpfc_init(string name)
Definition: hpfc.c:503
void set_hpfc_current_statement(statement)
bool maybeuseful_mappings_undefined_p(void)
void create_init_common_param_for_arrays(FILE *, entity)
Definition: inits.c:158
void close_dynamic_hpf(void)
statement root_statement_remapping_inits(statement)
returns the initialization statement: must initialize the status and liveness of arrays
Definition: remapping.c:1265
statement UpdateStatementForModule(entity, statement)
void propagate_synonym(statement, entity, entity, bool)
Definition: dynamic.c:1096
int HpfcExpressionToInt(expression)
HpfcExpressionToInt(e)
Definition: hpfc-util.c:569
void reset_similar_mapping(void)
void store_or_update_dynamic_hpf(entity, entities)
bool hpfc_static_directives(const string)
Definition: hpfc.c:676
void set_similar_mappings_for_updates(void)
Definition: dynamic.c:162
void set_current_loops(statement)
list dup_list_of_ranges_list(list)
??? the complexity of this function could be greatly improved
Definition: message-utils.c:72
Pvecteur the_index_of_vect(Pvecteur)
message-utils.c
Definition: message-utils.c:37
void close_new_node(void)
Psysteme hpfc_compute_entity_to_new_declaration(entity)
Definition: build-system.c:533
void init_new_host(void)
int number_of_templates(void)
entity get_ith_cycle_dummy(int)
void clean_the_system(Psysteme *, list *, list *)
Definition: io-compile.c:360
void generate_io_statements_for_shared_arrays(entity, tag, Psysteme, Psysteme, list, list, list, statement *, statement *)
void init_hpf_distribution(void)
bool entity_loop_index_p(entity)
bool empty_range_p(range)
list load_renamings(statement)
void store_or_update_overlap_status(entity, list)
int number_of_processors(void)
void close_entity_status(void)
void declaration_with_overlaps_for_module(entity)
Definition: declarations.c:835
bool full_copy_p(statement, reference *, reference *)
void reset_hpf_alignment(void)
entity delete_new_host(entity)
void store_old_node(entity, entity)
entity delete_old_host(entity)
void reset_hpf_distribution(void)
bool entity_template_p(entity)
void reset_data_status(void)
Definition: declarations.c:320
entity get_ith_processor_prime(int)
void close_old_node(void)
bool block_distributed_p(entity)
o-analysis.c
Definition: o-analysis.c:44
void set_new_node(entitymap)
void set_template(entity)
void create_parameters_h(FILE *, entity)
create_parameters_h
Definition: inits.c:65
entity delete_primary_entity(entity)
bool statement_only_io_undefined_p(statement)
void set_update_common_map(entity_mapping)
void error_reset_primary_entity(void)
bool Overlap_Analysis(statement, statement *)
check conditions and compile...
Definition: o-analysis.c:870
void io_efficient_compile(statement, statement *, statement *)
compile an io statement
Definition: io-compile.c:911
void error_reset_hpf_distribution(void)
void hpfc_directives_error_handler(void)
the local stack is used to retrieve the current statement while scanning the AST with gen_recurse.
Definition: directives.c:109
void store_similar_mapping(entity, entity)
bool hpfc_special_fake(entity)
Definition: hpfc.c:91
void init_old_host(void)
list load_overlap_status(entity)
list IndicesOfRef(syntax)
bool atomic_accesses_only_p(statement)
void error_reset_hpf_number(void)
void add_a_fake_function(entity)
Definition: hpfc.c:88
list get_the_dynamics(void)
void NormalizeCommonVariables(entity, statement)
Definition: compile.c:940
entity host_module
compiler.c
Definition: compiler.c:47
Psysteme hpfc_unstutter_dummies(entity)
Definition: build-system.c:767
void store_or_update_new_host(entity, entity)
Psysteme entity_to_new_declaration(entity)
Definition: build-system.c:732
statement generate_guarded_statement(statement, entity, list)
void print_align(align)
debug-util.c
Definition: debug-util.c:38
list list_of_processors(void)
void store_or_update_old_host(entity, entity)
statement hpfc_buffer_packing(entity, entity(*)(void), bool)
void error_reset_dynamic_hpf(void)
entity get_ith_temporary_prime(int)
bool hpfc_compile(const string)
bool hpfc_compile(string name)
Definition: hpfc.c:699
bool bound_hpf_number_p(entity)
expression hpfc_array_bound(entity, bool, int)
Definition: run-time.c:516
void store_hpf_alignment(entity, align)
const char * hpfc_main_entity_name(entity)
returns the name of the entity e belongs too (common, function...)
Definition: run-time.c:479
bool dynamic_hpf_undefined_p(void)
dynamic.c
void store_statement_only_io(statement, bool)
list template_ranges_to_processors_ranges(entity, list)
void hpfc_algorithm_tiling(Psysteme, list, list, Psysteme *, Psysteme *, Psysteme *)
Definition: io-compile.c:689
void close_dynamic_status(void)
Definition: dynamic.c:117
statement get_hpfc_current_statement(void)
void hpfc_fclose(FILE *, string)
Definition: compile.c:341
void generate_get_value_locally(reference, reference, list *)
generate_get_value_locally
Definition: generate.c:446
void NormalizeCodeForHpfc(statement)
Definition: compile.c:848
list compute_receive_domain(list, Pvecteur)
void print_distributes(void)
Definition: debug-util.c:73
void NewDeclarationsOfDistributedArrays(void)
this procedure generate the new declarations of every distributed arrays of the program,...
Definition: declarations.c:676
void normalize_hpf_object(entity)
Definition: declarations.c:431
void update_control_lists(control, control_mapping)
compiler-util.c
Definition: compiler-util.c:36
void create_init_common_param_for_processors(FILE *)
Definition: inits.c:470
bool only_io_map_undefined_p(void)
io-util.c
void error_reset_maybeuseful_mappings(void)
void update_maybeuseful_mappings(statement, entities)
bool written_effects_to_dist_arrays_p(expression)
Definition: hpfc-util.c:73
entitymap get_similar_mapping(void)
entity get_ith_region_dummy(int)
bool empty_section_p(list)
void print_distributed_arrays(void)
Definition: debug-util.c:148
entity hpfc_main_entity(entity)
returns the entity to which e is attached, that is first a common, then a function....
Definition: run-time.c:462
list compile_hpf_reduction(list, bool, bool)
of statement
range loop_index_to_range(entity)
entity node_module
Definition: compiler.c:47
void update_renamings(statement, list)
bool larger_message_in_list(message, list)
void set_dynamic_hpf(entity_entities)
entity get_ith_array_dummy(int)
bool ith_dim_distributed_p(entity, int, int *)
whether a dimension is distributed or not.
Definition: hpfc-util.c:160
statement hpfc_lazy_guard(bool, statement)
returns if (LAZY_{SEND,RECV}) then
entity get_ith_template_prime(int)
void store_new_host_node_variable(entity, entity, entity)
void statement_structural_cleaning(statement)
Definition: hpfc-util.c:847
list list_of_templates(void)
distribute load_hpf_distribution(entity)
void store_new_node(entity, entity)
void error_reset_hpf_alignment(void)
void error_reset_similar_mapping(void)
void init_maybeuseful_mappings(void)
statement generate_copy_loop_nest(entity, entity)
statement generate_copy_loop_nest(src, trg) entity src, trg;
Definition: dynamic.c:1568
distribution FindDistributionOfProcessorDim(list, int, int *)
Definition: hpfc-util.c:421
distribution FindDistributionOfDim(list, int, int *)
Definition: hpfc-util.c:401
int get_overlap(entity, int, int)
returns the overlap for a given entity, dimension and side, to be used in the declaration modificatio...
Definition: declarations.c:743
void set_new_host(entitymap)
void add_a_pure(entity)
Definition: hpfc.c:62
entity get_ith_shift_dummy(int)
void hpf_compiler(statement, statement *, statement *)
what: compile a statement into a host and SPMD node code.
Definition: compiler.c:710
entitymap get_old_node(void)
void generate_read_of_ref_for_all(syntax, list *, list *)
generate_read_of_ref_for_all
Definition: generate.c:316
void init_similar_mapping(void)
void reset_maybeuseful_mappings(void)
void close_hpf_distribution(void)
list array_ranges_to_template_ranges(entity, list)
void close_similar_mapping(void)
void init_renamings(void)
void update_hpf_distribution(entity, distribute)
int processor_number(entity, int, int, int *)
int processor_number(template, tdim, tcell, pprocdim)
Definition: hpfc-util.c:492
void make_host_and_node_modules(entity)
compile.c
Definition: compile.c:45
void get_distribution(entity, int, int *, int *)
Definition: hpfc-util.c:638
void reset_hpfc_current_statement(void)
void reset_new_node(void)
void update_entity_update_common(entity, entity)
entitymap get_old_host(void)
entity load_primary_entity(entity)
void generate_update_values_on_nodes(reference, reference, list *, list *)
generate_update_values_on_nodes
Definition: generate.c:223
bool old_host_undefined_p(void)
entity argument_bound_entity(entity, entity, bool, int)
Definition: run-time.c:499
void update_overlap_status(entity, list)
bool written_effect_p(entity, list)
written_effects_to_dist_arrays_p
Definition: hpfc-util.c:58
void update_overlaps_in_caller(entity, list)
the overlaps of the actual parameters are updated according to the formal requirements.
Definition: declarations.c:864
void put_generated_resources_for_module(statement, statement, statement)
alignmap get_hpf_alignment(void)
void set_data_status(data_status)
Definition: declarations.c:328
list generate_message_from_3_lists(entity, list, list, list)
list generate_message_from_3_lists(array, lcontent, lneighbour, ldomain)
list handle_hpf_reduction(statement)
of hpfc_reductions
bool subarray_shift_p(statement, entity *, list *)
bool(* dynamic_entity_p)(entity)
as expected, true if entity e is dynamic.
Definition: dynamic.c:145
void print_distribute(distribute)
Definition: debug-util.c:87
void error_reset_renamings(void)
void free_vector_list(list)
Psysteme shift_system_to_prime_variables(Psysteme)
Definition: build-system.c:173
statement hpfc_initsend(bool)
void simplify_remapping_graph(void)
void simplify_remapping_graph()
Definition: dynamic.c:1467
statement_entities get_maybeuseful_mappings(void)
entity get_ith_cycle_prime(int)
FILE * hpfc_fopen(string)
Definition: compile.c:329
void store_or_update_hpf_number(entity, intptr_t)
void init_hpf_reductions(void)
list delete_overlap_status(entity)
void reset_current_loops(void)
void generate_receive_from_computer(reference, list *)
Definition: generate.c:491
statement st_call_send_or_receive(entity, reference)
Sends.
Definition: run-time.c:138
expression make_mypos_expression(int, expression)
list lNewVariableForModule(entity, list)
Psysteme entity_to_hpf_align_constraints(entity)
Definition: build-system.c:480
void hpfc_special_cases_error_handler(void)
void fprint_lmessage(FILE *, list)
Definition: debug-util.c:231
void reset_the_dynamics(void)
void hpfc_util_error_handler(void)
removes IF (.TRUE.) THEN and DO X=n, n
Definition: hpfc-util.c:785
void close_overlap_status(void)
void reset_hpf_object_lists(void)
Definition: declarations.c:91
void get_ith_dim_new_declaration(entity, int, int *, int *)
Definition: declarations.c:285
void set_overlap_status(overlapsmap)
string hpfc_module_suffix(entity)
void error_reset_the_dynamics(void)
void print_aligns(void)
Definition: debug-util.c:61
bool hpfc_call_with_distributed_args_p(call)
whether call c inplies a distributed argument
Definition: dynamic.c:645
list make_rectangular_area(statement, entity)
statement st_compute_current_computer(reference)
Computes.
Definition: run-time.c:151
bool ref_to_dist_array_p(void *)
hpfc-util.c
Definition: hpfc-util.c:48
list FindDefinitionsOf(statement, list)
statement st_get_value_for_computer(reference, reference)
Definition: generate.c:850
void generate_c1_alpha(statement, list *, list *)
generate_c1_alpha
Definition: generate.c:121
alignment FindAlignmentOfDim(list, int)
Definition: hpfc-util.c:377
void store_or_update_maybeuseful_mappings(statement, entities)
void reset_dynamic_hpf(void)
void reset_hpf_number(void)
void store_old_host(entity, entity)
distributemap get_hpf_distribution(void)
void compile_a_special_io_function(entity)
just copied for the host
Definition: compile.c:469
void create_init_common_param(FILE *)
create_init_common_param (templates and modules)
Definition: inits.c:511
void close_new_host(void)
void init_dynamic_status(void)
DYNAMIC STATUS management.
Definition: dynamic.c:81
void hpfc_translate_call_with_distributed_args(statement, call)
??? only simple calls are handled.
Definition: dynamic.c:687
type type_variable_dup(type)
local-ri-util.c
Definition: local-ri-util.c:30
entity safe_load_primary_entity(entity)
HPFC module by Fabien COELHO.
Definition: dynamic.c:61
statement_renamings get_renamings(void)
entity get_ith_local_prime(int)
void error_reset_old_node(void)
void close_old_host(void)
expression UpdateExpressionForModule(entity, expression)
this function creates a new expression using the mapping of old to new variables map.
void store_or_update_renamings(statement, list)
void put_generated_resources_for_program(string)
void update_new_host(entity, entity)
entitymap get_new_host(void)
void delete_statement_only_io(statement)
void init_hpf_number_status(void)
STANDARS STATIC MANAGEMENT.
Definition: declarations.c:128
Psysteme get_read_effect_area(list, entity)
void reset_hpf_reductions(void)
void set_hpf_distribution(distributemap)
align new_align_with_template(align, entity)
Definition: dynamic.c:474
entity get_ith_block_dummy(int)
void update_similar_mapping(entity, entity)
void close_hpf_reductions(void)
entitymap get_new_node(void)
void set_old_node(entitymap)
statement_mapping get_only_io_map(void)
void normalize_align(entity, align)
void set_maybeuseful_mappings(statement_entities)
int processor_dimension_of_template_dimension(entity, int)
Definition: hpfc-util.c:462
statement hpfc_make_call_statement(entity, list)
statement hpfc_make_call_statement(e, l) generate a call statement to function e, with expression lis...
Definition: run-time.c:318
void print_templates(void)
Definition: debug-util.c:136
void AddCommonToModule(entity, entity, void(*)(void), string)
bool overlap_status_undefined_p(void)
void update_hpf_reductions(statement, entities)
list hpfc_gen_n_vars_expr(entity(*)(void), int)
bool hpfc_make(const string)
bool hpfc_make(string name)
Definition: hpfc.c:864
statement generate_full_copy(reference, reference)
statement generate_full_copy(reference left, reference right)
void set_hpf_number_status(numbers_status)
Definition: declarations.c:148
list updated_control_list(list, control_mapping)
Definition: compiler-util.c:52
void hpfc_init_run_time_entities(void)
to be seen from outside of this file
Definition: run-time.c:751
bool compile_reduction(statement, statement *, statement *)
bool compile_reduction(initial, phost, pnode)
void error_reset_overlap_status(void)
void store_or_update_hpf_reductions(statement, entities)
entity array_synonym_aligned_as(entity, align)
entity array_synonym_aligned_as(array, a) entity array; align a;
Definition: dynamic.c:449
void init_data_status(void)
Definition: declarations.c:300
tag new_declaration_tag(entity, int)
Definition: declarations.c:229
void free_update_common_map(void)
statement messages_handling(list, list)
messages.c
Definition: messages.c:724
bool alignments_compatible_p(entity, int, entity, int)
bool alignments_compatible_p(entity e1, int dim1, entity e2, int dim2)
Definition: hpfc-util.c:678
statement generate_all_liveness(entity, bool)
Definition: remapping.c:940
statement st_compute_neighbour(int)
call to the runtime support function HPFC_CMPNEIGHBOUR(d)
Definition: run-time.c:394
bool full_define_p(reference, list)
void update_dynamic_hpf(entity, entities)
void create_init_common_param_for_templates(FILE *)
Definition: inits.c:391
char * sprint_range(string, range)
bool load_statement_only_io(statement)
entity get_ith_region_prime(int)
dynamic_status get_dynamic_status(void)
Definition: dynamic.c:99
int number_of_distributed_arrays(void)
declarations.c
entity get_ith_processor_dummy(int)
entity delete_old_node(entity)
void hpfc_print_file(string)
Definition: debug-util.c:169
void add_remapping_as_computed(renaming, list)
variables to be declared
Definition: hpfc.c:121
Psysteme entity_to_hpf_distribute_constraints(entity)
Definition: build-system.c:495
void generate_update_values_on_computer_and_nodes(reference, reference, list *, list *)
generate_update_values_on_computer_and_nodes
Definition: generate.c:634
void reset_dynamic_status(void)
Definition: dynamic.c:90
void create_common_parameters_h(FILE *)
inits.c
Definition: inits.c:36
bool bound_new_node_p(entity)
statement loop_nest_guard(statement, reference, list, list)
list lUpdateExpr(entity, list)
bool hpf_pure_p(entity)
??? some intrinsics should also be considered as pure.
Definition: hpfc.c:67
range complementary_range(entity, int, range)
range complementary_range(array, dim, r)
bool hpfc_intrinsic_like_function(entity)
Definition: run-time.c:828
void store_new_host_variable(entity, entity)
int template_dimension_of_array_dimension(entity, int)
Definition: hpfc-util.c:448
void store_hpf_number(entity, intptr_t)
entities delete_maybeuseful_mappings(statement)
statement_entities get_hpf_reductions(void)
void close_the_dynamics(void)
entity delete_new_node(entity)
void generate_c1_beta(statement, list *, list *)
generate.c
Definition: generate.c:41
void generate_parallel_body(statement, list *, list, list)
Definition: generate.c:511
expression hpfc_buffer_reference(entity, entity)
returns a reference to the typed common hpfc_buffer buffer, that suits array basic type and with inde...
string bound_parameter_name(entity, string, int)
returns a name for the bound of the declaration of array array, side side and dimension dim.
Definition: run-time.c:488
void close_primary_entity(void)
entity get_ith_auxiliary_dummy(int)
expression entity_hpf_number(entity)
returns the hpf_number parameter as a string not really needed ??? ??? never called
Definition: declarations.c:196
void set_hpf_reductions(statement_entities)
bool bound_similar_mapping_p(entity)
void error_reset_old_host(void)
entities load_hpf_reductions(statement)
void store_or_update_hpf_distribution(entity, distribute)
void store_or_update_old_node(entity, entity)
void error_reset_new_node(void)
void generate_update_private_value_from_host(syntax, list *, list *)
generate_update_private_value_from_host
Definition: generate.c:739
bool old_node_undefined_p(void)
statement st_compute_current_owners(reference)
Definition: run-time.c:173
Pcontrainte full_linearization(entity, entity, int *, entity(*)(int), bool, int)
remapping.c
Definition: remapping.c:80
entity MakeRunTimeSupportSubroutine(string, int)
run-time.c
void reset_old_node(void)
void reset_update_common_map(void)
void free_only_io_map(void)
entity hpfc_new_variable(entity, basic)
Definition: compile.c:632
entity_mapping get_update_common_map(void)
bool hpfc_install(const string)
bool hpfc_install(string name)
Definition: hpfc.c:838
bool hpfc_run(const string)
bool hpfc_run(string name)
Definition: hpfc.c:889
list add_to_list_of_ranges_list(list, range)
Definition: message-utils.c:51
void update_hpf_alignment(entity, align)
bool entity_processor_p(entity)
statement generate_subarray_shift(statement, entity, list)
statement generate_subarray_shift(s, var, lshift) statement s; entity var; list lshift;
void debug_print_referenced_entities(void *)
Definition: compile.c:906
distribute delete_hpf_distribution(entity)
void reset_old_host(void)
void FindRefToDistArrayInStatement(statement, list *, list *)
void remove_variables_if_possible(Psysteme *, list *)
Definition: io-compile.c:245
void store_overlap_status(entity, list)
align load_hpf_alignment(entity)
void init_primary_entity(void)
bool bound_old_host_p(entity)
statement hpfc_lazy_buffer_packing(entity, entity, entity, entity, entity(*)(void), bool, bool)
void print_hpf_dir(void)
Definition: debug-util.c:121
overlapsmap get_overlap_status(void)
void fprint_message(FILE *, message)
Definition: debug-util.c:217
void update_new_node(entity, entity)
bool call_reduction_p(call)
Definition: special_cases.c:87
void GiveToHpfObjectsTheirNumber(void)
give to hpf objects listed in distributedarrays, templates and processors their number for the code g...
Definition: declarations.c:166
list compute_receive_content(entity, list, Pvecteur)
list dup_list_of_Pvecteur(list)
??? the complexity of this function could be improved greatly...
Definition: message-utils.c:93
void hpfc_algorithm_row_echelon(Psysteme, list, Psysteme *, Psysteme *)
io-compile.c
Definition: io-compile.c:127
void init_new_node(void)
entity_entities get_dynamic_hpf(void)
bool entity_update_common_undefined_p(entity)
bool bound_overlap_status_p(entity)
bool make_guard_expression(entity, list, expression *)
bool make_guard_expression(proc, lr, pguard)
entity get_ith_local_dummy(int)
void set_overlap(entity, int, int, int)
set the overlap value for entity ent, on dimension dim, dans side side to width, which must be a posi...
Definition: declarations.c:713
data_status get_data_status(void)
Definition: declarations.c:308
void close_maybeuseful_mappings(void)
entity get_ith_shift_prime(int)
statement st_send_to_host_and_nodes(reference, reference)
Definition: generate.c:804
bool bound_dynamic_hpf_p(entity)
void init_entity_status(void)
list simplify_deducable_variables(Psysteme, list, list *)
list simplify_deducable_variables(syst, vars, pleftvars) Psysteme syst; list vars,...
Definition: io-compile.c:562
statement hpfc_buffer_initialization(bool, bool, bool)
Psysteme generate_system_for_distributed_variable(entity)
Psysteme generate_system_for_variable(v) entity v;.
Definition: build-system.c:789
list alive_arrays(statement, entity)
what: returns the list of alive arrays for statement s and template t.
Definition: dynamic.c:1504
void reset_new_host(void)
entity load_new_host(entity)
void init_the_dynamics(void)
void set_primary_entity(entitymap)
void close_hpf_number(void)
void store_new_host(entity, entity)
statement define_node_processor_id(entity, entity(*)(int))
generate-util.c
Definition: generate-util.c:49
void store_primary_entity(entity, entity)
void set_hpf_number(entity_int)
void debug_host_node_variables(entity)
HPFC module by Fabien COELHO.
void make_hpfc_current_mappings(void)
??? used with a temporary hack to differentiate array and templates
Definition: build-system.c:192
void close_hpf_alignment(void)
entitymap get_primary_entity(void)
bool hpfc_current_statement_undefined_p(void)
align-checker.c
void hpfc_compile_error_handler(void)
Definition: compile.c:644
Psysteme generate_system_for_equal_variables(int, entity(*)(int), entity(*)(int))
Definition: build-system.c:751
void set_similar_mapping(entitymap)
void hpfc_init_dummy_to_prime(void)
Definition: build-system.c:155
entity get_ith_block_prime(int)
void set_hpf_alignment(alignmap)
void reset_renamings(void)
void add_remapping_as_used(renaming)
Definition: hpfc.c:135
list list_of_distributed_arrays(void)
bool hpf_number_undefined_p(void)
void generate_compute_local_indices(reference, list *, list *)
generate_compute_local_indices
Definition: generate.c:388
void set_renamings(statement_renamings)
void kill_statement_number_and_ordering(statement)
Definition: hpfc-util.c:232
void close_dynamic_locals(void)
Definition: dynamic.c:817
bool bound_hpf_alignment_p(entity)
int global_array_cell_to_local_array_cell(entity, int, int)
int global_array_cell_to_local_array_cell(array, dim, acell)
Definition: hpfc-util.c:550
void set_array_as_distributed(entity)
entity delete_similar_mapping(entity)
void get_entity_dimensions(entity, int, int *, int *)
Definition: hpfc-util.c:651
void free_hpf_object_lists(void)
Definition: declarations.c:98
void init_hpf_number(void)
void init_host_and_node_entities(void)
both host and node modules are initialized with the same declarations than the compiled module,...
Definition: compile.c:246
void store_dynamic_hpf(entity, entities)
void init_dynamic_locals(void)
DYNAMIC LOCAL DATA.
Definition: dynamic.c:806
bool new_node_undefined_p(void)
statement st_receive_from(reference, reference)
if ref is replicated: goal = Receive_From_Sender()
Definition: generate.c:865
void add_pvm_init_and_end(statement *, statement *)
this is for the main.
Definition: run-time.c:364
void hpfc_print_common(FILE *, entity, entity)
Definition: debug-util.c:154
void update_old_node(entity, entity)
bool new_host_undefined_p(void)
host_node_entities.c
statement hpfc_packing_of_current__buffer(entity, bool)
CALL (pvmtype) HPFC {,UN}PACK.
void dump_current_remapping_graph(string)
Definition: dynamic.c:1440
void make_update_common_map(void)
void fprint_lrange(FILE *, list)
Definition: debug-util.c:200
string pvm_what_options(basic)
string pvm_what_options(b)
Definition: run-time.c:86
entity load_old_host(entity)
void error_reset_hpfc_current_statement(void)
void delete_entity_update_common(entity)
list hpfc_order_variables(list, bool)
list hpfc_order_variables(list)
Definition: io-compile.c:629
void update_primary_entity(entity, entity)
void hpfc_print_code(FILE *, entity, statement)
Definition: compile.c:393
void reset_primary_entity(void)
entity get_ith_temporary_dummy(int)
void store_renamings(statement, list)
bool hpfc_dynamic_directives(const string)
Definition: hpfc.c:681
intptr_t load_hpf_number(entity)
void close_renamings(void)
void set_the_dynamics(list)
bool bound_hpf_distribution_p(entity)
bool hpf_alignment_undefined_p(void)
list lUpdateExpr_but_distributed(entity, list)
used for compiling calls.
void hpfcompile(const char *)
Compiler call, obsole.
Definition: compile.c:601
bool bound_primary_entity_p(entity)
void store_maybeuseful_mappings(statement, entities)
void update_hpf_number(entity, intptr_t)
bool primary_entity_undefined_p(void)
bool message_larger_p(message, message)
bool message_larger_p(m1, m2)
void update_object_for_module(void *, entity)
void handle_hpf_directives(statement, bool)
void handle_hpf_directives(s) statement s;
Definition: directives.c:1069
expression pvm_what_option_expression(entity)
Definition: run-time.c:74
list AddOnceToIndicesList(list, list)
void store_hpf_reductions(statement, entities)
bool lrange_larger_p(list, list)
bool hpfc_integer_constant_expression_p(expression, int *)
char * sprint_lrange(string, list)
bool array_distributed_p(entity)
bool array_distribution_similar_p(entity, entity)
Definition: dynamic.c:578
void store_new_node_variable(entity, entity)
void init_dynamic_hpf(void)
void update_statement_only_io(statement, bool)
void hpfc_io_util_error_handler(void)
??? neglect expression side effects...
Definition: io-util.c:82
void only_io_mapping_initialize(statement)
Definition: io-util.c:163
bool hpfc_entity_reduction_p(entity)
special_cases.c
Definition: special_cases.c:82
bool local_integer_constant_expression(expression)
true is the expression is locally constant, that is in the whole loop nest, the reference is not writ...
Definition: align-checker.c:64
Psysteme compute_entity_to_declaration_constraints(entity, string, string)
Psysteme compute_entity_to_constraints(ent, suffix, prefix) entity ent: variable the constraints of w...
Definition: build-system.c:220
void put_generated_resources_for_common(entity)
Definition: compile.c:417
entities load_maybeuseful_mappings(statement)
void hpfc_check_for_similarities(list)
check all dynamic arrays for some similars...
Definition: dynamic.c:269
bool references_aligned_p(reference, reference)
Definition: hpfc-util.c:726
statement hpfc_add_2(expression)
expr = expr + 2
align delete_hpf_alignment(entity)
void generate_read_of_ref_for_computer(syntax, list *, list *)
generate_read_of_ref_for_computer
Definition: generate.c:275
void extract_lattice(Psysteme, list, list *, list *)
lattice_extraction.c
void AddEntityToHostAndNodeModules(entity)
AddEntityToHostAndNodeModules.
Definition: hpfc-util.c:298
expression make_reference_expression(entity, entity(*)(void))
statement st_send_to_computer_if_necessary(reference)
Definition: generate.c:817
list FindRefToDistArrayFromList(list)
FindRefToDistArrayFromList.
Definition: hpfc-util.c:262
statement st_generate_packing(entity, list, bool)
statement st_generate_packing_and_passing(array, content, bsend)
Definition: run-time.c:422
Psysteme entity_to_declaration_constraints(entity, tag)
gives back the constraints due to the declarations.
Definition: build-system.c:285
list lIndicesOfRef(list)
computes the list of indices of the list of ref that are variables...
alignment FindAlignmentOfTemplateDim(list, int)
Definition: hpfc-util.c:389
void set_processor(entity)
void add_as_a_used_dynamic_to_statement(statement, entity)
Definition: dynamic.c:904
bool hpfc_io_like_function(entity)
Definition: run-time.c:836
bool hpfc_common(const string)
bool hpfc_common(string name)
Definition: hpfc.c:769
statement st_compute_ith_local_index(entity, int, expression, syntax *)
the returned expression is translated into variables of the node module.
Definition: generate.c:775
entity get_ith_auxiliary_prime(int)
int DistributionParameterOfArrayDim(entity, int, int *)
Definition: hpfc-util.c:472
effect entity_to_region(statement, entity, tag)
effect entity_to_region(stat, ent, act) statement stat; entity ent; tag act;
Definition: build-system.c:515
void error_reset_hpf_reductions(void)
void free_hpfc_current_mappings(void)
Definition: build-system.c:200
statement simple_statement(statement)
bool ith_dim_replicated_p(entity, int, list, distribution)
entity_int get_hpf_number(void)
entity NewVariableForModule(entity, entity)
int bool
we cannot use an enum or stdbool because we need to be compatible with newgen, thus boolean need to h...
Definition: newgen_types.h:78
int tag
TAG.
Definition: newgen_types.h:92
#define intptr_t
Definition: stdint.in.h:294
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