PIPS
|
#include "defines-local.h"
#include "prettyprint.h"
#include "conversion.h"
#include "resources.h"
#include "pipsdbm.h"
Go to the source code of this file.
Macros | |
#define | CPY 0 |
in the following functions tag t controls the code generation, depending of what is to be generated (send, receive, copy, broadcast)... More... | |
#define | SND 1 |
#define | RCV 2 |
#define | BRD 3 |
#define | PRE 0 |
#define | INL 4 |
#define | PST 8 |
#define | NLZ 0 |
#define | LZY 16 |
#define | NBF 0 |
#define | BUF 32 |
#define | ret(name) result = name; break |
I have to deal with a 4D space to generate some code: More... | |
Functions | |
static Pcontrainte | partial_linearization (entity array, bool distributed, entity var, int *psize, entity(*create_var)(int)) |
HPFC module by Fabien COELHO. More... | |
Pcontrainte | full_linearization (entity obj, entity var, int *psize, entity(*create_var)(int), bool fortran_way, int initial_offset) |
builds a linarization equation of the dimensions of obj. More... | |
static Psysteme | generate_work_sharing_system (entity src, entity trg) |
load-balancing equation as suggested in the A-274 report. More... | |
static Psysteme | generate_remapping_system (entity src, entity trg) |
returns the full remapping system, including the source and target mappings systems, the link and the work sharing system More... | |
static void | remapping_variables (Psysteme s, entity a1, entity a2, list *pl, list *plp, list *pll, list *plrm, list *pld, list *plo) |
??? assumes that there are no parameters. More... | |
static statement | processor_loop (Psysteme s, _UNUSED_ list l_psi, list l_oth, entity psi, entity oth, entity lid, entity array, entity(*create_psi)(), entity(*create_oth)(), statement body, bool sh) |
to be generated: ??? the Proc cycle should be deduce directly in some case... More... | |
static statement | elements_loop (Psysteme s, list ll, list ld, statement body) |
to be generated: More... | |
static expression | mylid_ne_lid (entity lid) |
static statement | if_different_pe_and_not_twin (entity src, entity lid, statement strue, statement sfalse) |
to be generated: IF (MYLID.NE.LID[.AND.NOT.HPFC_TWIN_P(an, LID)]) THEN true ELSE false ENDIF More... | |
static statement | broadcast (entity src, entity lid, entity proc, Psysteme sr, list ldiff, bool lazy) |
builds the diffusion loop. More... | |
static statement | gen (int what, entity src, entity trg, entity lid, entity proc, entity(*create_src)(), entity(*create_trg)(), Psysteme sr, list ldiff) |
arguments: all that may be useful to generate some code More... | |
static statement | remapping_stats (int t, Psysteme s, Psysteme sr, list ll, list ldiff, list ld, entity lid, entity src, entity trg) |
generates a remapping loop nest (copy/send/receive/broadcast) basically a loop on elements with pre/in/post statements... More... | |
static statement | generate_remapping_code (entity src, entity trg, Psysteme procs, Psysteme locals, list l, list lp, list ll, list ldiff, list ld, bool dist_p) |
generates a full remapping code, given the systems and indexes to be used in the different loops. More... | |
static expression | live_mapping_expression (int index) |
returns LIVEMAPPING(index) More... | |
static statement | set_array_status_to_target (entity trg) |
static statement | set_live_status (entity trg, _UNUSED_ bool val) |
static statement | update_runtime_for_remapping (entity trg) |
static statement | generate_remapping_guard (entity src, entity trg, statement the_code) |
Runtime descriptors management around the remapping code. More... | |
static statement | generate_all_liveness_but (entity primary, bool val, entity butthisone) |
statement | generate_all_liveness (entity primary, bool val) |
static statement | generate_dynamic_liveness_for_primary (entity primary, list tokeep) |
static statement | generate_dynamic_liveness_management (statement s) |
static statement | hpf_remapping (entity src, entity trg) |
remaps src to trg. More... | |
static string | remapping_file_name (renaming remap) |
file name for storing the remapping code. More... | |
static void | loop_rwt (loop l) |
static void | reference_rwt (reference r) |
static list | list_of_referenced_entities (statement s) |
static text | protected_text_statement (statement s) |
static void | generate_hpf_remapping_file (renaming r) |
static statement | generate_remapping_include (renaming r) |
just a hack because pips does not have 'include' More... | |
statement | root_statement_remapping_inits (statement root) |
returns the initialization statement: must initialize the status and liveness of arrays More... | |
void | remapping_compile (statement s, statement *hsp, statement *nsp) |
void remapping_compile(s, hsp, nsp) statement s, *hsp, *nsp; More... | |
Variables | |
static list | l_found |
quick recursion to find the entities referenced in a statement. More... | |
#define BRD 3 |
Definition at line 473 of file remapping.c.
#define BUF 32 |
Definition at line 483 of file remapping.c.
#define CPY 0 |
in the following functions tag t controls the code generation, depending of what is to be generated (send, receive, copy, broadcast)...
tag t may have the following values:
Definition at line 470 of file remapping.c.
#define INL 4 |
Definition at line 476 of file remapping.c.
#define LZY 16 |
Definition at line 480 of file remapping.c.
#define NBF 0 |
Definition at line 482 of file remapping.c.
#define NLZ 0 |
Definition at line 479 of file remapping.c.
#define PRE 0 |
Definition at line 475 of file remapping.c.
#define PST 8 |
Definition at line 477 of file remapping.c.
#define RCV 2 |
Definition at line 472 of file remapping.c.
#define ret | ( | name | ) | result = name; break |
I have to deal with a 4D space to generate some code:
buffer/nobuf lazy/nolazy
pre/in/post cpy/snd/rcv/brd
Definition at line 494 of file remapping.c.
#define SND 1 |
Definition at line 471 of file remapping.c.
|
static |
builds the diffusion loop.
[ IF (LAZY_SEND) THEN ] DO ldiff in sr LID computation(...) IF (MYLID.NE.LID) send to LID ENDDO [ ENDIF ] whether to send empty messages
lid | source array |
proc | variable to store the target local id |
sr | target processors for the broadcast |
ldiff | broadcast polyhedron of entity |
lazy | dimension variables for the broadcast |
Definition at line 442 of file remapping.c.
References CONS, get_ith_processor_prime(), hpfc_compute_lid(), hpfc_generate_message(), hpfc_lazy_guard(), hpfc_name_to_entity(), IDIVIDE, if_different_pe_and_not_twin(), make_block_statement(), make_empty_statement, NIL, src, STATEMENT, and systeme_to_loop_nest().
Referenced by gen().
to be generated:
DO ll's in S(ll)[...] DEDUCABLES(ld) body ENDDO loop body
ll | triangular bounds on ll of entities |
ld | loop indexes of expressions |
body | deduced scalars |
Definition at line 381 of file remapping.c.
References CONS, generate_deducables(), hpfc_name_to_entity(), IDIVIDE, make_block_statement(), NIL, STATEMENT, and systeme_to_loop_nest().
Referenced by remapping_stats().
Pcontrainte full_linearization | ( | entity | obj, |
entity | var, | ||
int * | psize, | ||
entity(*)(int) | create_var, | ||
bool | fortran_way, | ||
int | initial_offset | ||
) |
builds a linarization equation of the dimensions of obj.
var is set to the result. *psize returns the size of obj. Done the Fortran way, or the other way around... initial offset if desired
obj | bj |
var | array being lin. |
psize | assigned variable if desired |
create_var | returned array extent |
fortran_way | dimension variable builder |
initial_offset | Fortran/C linearization way |
Definition at line 80 of file remapping.c.
References contrainte_make(), get_entity_dimensions(), int_to_value, NumberOfDimension(), TCST, VALUE_MONE, VALUE_ONE, vect_add_elem(), vect_multiply(), and VECTEUR_NUL.
Referenced by hpfc_broadcast_buffers(), and hpfc_compute_lid().
|
static |
arguments: all that may be useful to generate some code
cpy pre/post rcv post nbuf
snd.brd pre nbuf
cpy inl
snd/brd inl nbf
send!
receive!
snd/rcv pre buf
send!
receive!
default is a forgotten case, I guess
to avoid a gcc warning
ldiff | of entity |
Definition at line 498 of file remapping.c.
References BRD, broadcast(), BUF, CPY, DEBUG_STAT, hpfc_broadcast_if_necessary(), hpfc_buffer_initialization(), hpfc_generate_message(), hpfc_initsend(), hpfc_lazy_buffer_packing(), hpfc_lazy_packing(), hpfc_name_to_entity(), INL, LAZY_RECV, LZY, make_assign_statement(), make_empty_statement, make_reference_expression(), pips_debug, pips_internal_error, PRE, PST, RCV, ret, set_logical, SND, src, and statement_undefined.
Referenced by compute_points_to_gen_set(), genref_any_loop(), genref_one_statement(), kill_effects(), list_assignment_to_points_to(), points_to_anywhere(), points_to_anywhere_typed(), points_to_nowhere(), and remapping_stats().
primary | rimary |
val | al |
Definition at line 940 of file remapping.c.
References entity_undefined, and generate_all_liveness_but().
Referenced by hpf_compile_call(), and root_statement_remapping_inits().
of statement
LIVEMAPPING(array) = val (.TRUE. or .FALSE.)
commented result
Definition at line 906 of file remapping.c.
References array, bool_to_expression(), comment(), concatenate(), CONS, entities_list, ENTITY, entity_local_name(), free(), insert_comments_to_statement(), live_mapping_expression(), load_dynamic_hpf(), load_hpf_number(), make_assign_statement(), make_block_statement(), MAP, NIL, STATEMENT, and strdup().
Referenced by generate_all_liveness().
of statement
clean not maybeuseful instances of the primary
LIVEMAPPING(array) = .FALSE.
commented result
tokeep | of entity |
Definition at line 948 of file remapping.c.
References array, bool_to_expression(), comment(), concatenate(), CONS, entities_list, ENTITY, entity_local_name(), free(), gen_in_list_p(), insert_comments_to_statement(), live_mapping_expression(), load_dynamic_hpf(), load_hpf_number(), make_assign_statement(), make_block_statement(), MAP, NIL, STATEMENT, and strdup().
Referenced by generate_dynamic_liveness_management().
of entity
of statement
for each primary remapped at s, generate the management code.
commented result
Definition at line 985 of file remapping.c.
References array, comment(), concatenate(), CONS, entities_list, ENTITY, free(), gen_in_list_p(), generate_dynamic_liveness_for_primary(), insert_comments_to_statement(), load_maybeuseful_mappings(), load_primary_entity(), make_block_statement(), make_empty_statement, MAP, NIL, STATEMENT, and strdup().
Referenced by remapping_compile().
|
static |
of entity
generates the remapping code and text !!! generated between similar arrays...
stores the remapping as computed
put it in a file
Definition at line 1200 of file remapping.c.
References add_remapping_as_computed(), asprintf, db_get_directory_name_for_module(), entity_name, f(), file_name, free(), free_statement(), free_text(), gen_free_list(), hpf_remapping(), hpfc_fclose(), hpfc_fopen(), list_of_referenced_entities(), load_similar_mapping(), node_module, pips_debug, print_text(), protected_text_statement(), remapping_file_name(), renaming_new, renaming_old, src, update_object_for_module(), and WORKSPACE_SRC_SPACE.
Referenced by remapping_compile().
|
static |
generates a full remapping code, given the systems and indexes to be used in the different loops.
that is complementary send/broadcast and receive/copy. The distribution of target onto source processors may require special care if lambda.
output: AS a source DO target DO element PACK SEND/BROADCAST to target(s) AS a target DO source DO element RECEIVE/UNPACK OR DO element COPY true if must take care of lambda
the send is different for diffusions
distributed
replicated
polyhedron separation to extract the diffusions.
??? to be deduced
some comments to help understand the generated code
trg | source array |
procs | target array |
locals | communicating processors polyhedron |
l | elements polyhedron of entity |
lp | source processor indexes |
ll | target processor indexes |
ldiff | element indexes |
ld | broadcast target processor indexes of expression |
dist_p | deducable elements |
Definition at line 679 of file remapping.c.
References array_to_processors, asprintf, base_rm, BRD, buffer, CONS, CPY, DEBUG_STAT, ENDP, ENTITY, entity_list_to_base(), entity_local_name(), free(), gen_copy_seq(), gen_free_list(), gen_nconc(), gen_remove(), get_bool_property(), get_ith_processor_dummy(), get_ith_processor_prime(), get_ith_temporary_dummy(), hpfc_name_to_entity(), if_different_pe_and_not_twin(), insert_comments_to_statement(), load_hpf_number(), load_primary_entity(), make_block_statement(), make_empty_statement, MAP, NIL, pips_debug, processor_loop(), RCV, remapping_stats(), sc_rm(), sc_separate_on_vars(), SND, src, STATEMENT, T_LID, and USE_BUFFERS.
Referenced by hpf_remapping().
Runtime descriptors management around the remapping code.
performs the remapping if reaching mapping is ok, and update the mapping status.
IF (MSTATUS(primary_number).eq.src_number) THEN [ IF (.not.LIVEMAPPING(target_number)]) THEN ] the_code [ ENDIF ] [ LIVEMAPPING(target_number) = .TRUE. ] MSTATUS(primary_number) = trg_number ENDDIF remapping code
source, target and primary numbers
mapping status
of statement
MSTATUS(primary_number) = trg_number
MSTATUS(primary_number).eq.src_number
checks whether alive or not
trg | source array |
the_code | target array |
Definition at line 859 of file remapping.c.
References bool_to_expression(), CONS, eq_expression, EXPRESSION, get_bool_property(), hpfc_name_to_entity(), int_to_expression(), live_mapping_expression(), load_hpf_number(), load_primary_entity(), make_assign_statement(), make_block_statement(), make_empty_statement, make_reference(), make_test(), MSTATUS, NIL, not_expression, reference_to_expression(), set_array_status_to_target(), src, STATEMENT, and test_to_statement.
Referenced by hpf_remapping().
just a hack because pips does not have 'include'
Definition at line 1246 of file remapping.c.
References comment(), concatenate(), free(), insert_comments_to_statement(), make_empty_statement, remapping_file_name(), and strdup().
Referenced by remapping_compile().
returns the full remapping system, including the source and target mappings systems, the link and the work sharing system
target array
trg | source array for the remapping |
Definition at line 175 of file remapping.c.
References concatenate(), DEBUG_SYST, entity_name, generate_system_for_distributed_variable(), generate_system_for_equal_variables(), generate_work_sharing_system(), get_ith_array_dummy(), get_ith_array_prime(), sc_append(), sc_rm(), shift_system_to_prime_variables(), src, and variable_entity_dimension().
Referenced by hpf_remapping().
load-balancing equation as suggested in the A-274 report.
here some choices are quite arbitrary:
should allow a stupid system with some property? target array
psi_d = psi_r + |psi_r| delta
0 <= delta (there are cycles)
delta <= -((size_d-1)/size_r) // not really necessary, but may help.
delta == 0
trg | source array |
Definition at line 122 of file remapping.c.
References contrainte_make(), get_ith_processor_dummy(), get_ith_processor_prime(), get_ith_temporary_dummy(), int_to_value, partial_linearization(), sc_add_egalite(), sc_add_inegalite(), sc_creer_base(), sc_new(), src, TCST, VALUE_MONE, VALUE_ONE, VALUE_ZERO, vect_make(), vect_new(), and VECTEUR_NUL.
Referenced by generate_remapping_system().
remaps src to trg.
first builds the equation and needed lists of indexes, then call the actual code generation phase.
P cycle
of entities
of expressions
(optimization:-)
builds and simplifies the systems.
it is not obvious to decide where to place the cleaning, the equalities detection and the deducables...
the P cycle ?
processors/array elements separation.
??? why row echelon? why not... it is not too bad a projection! actually, what I want is to separate processors and elements. Then I would like to perform some manipulations on the systems to improve them, extracting deducables and lattices... but the conservation of the optimized order is not obvious... May/should I give it up in some cases? Well, I guess so.
What's missing:
{ list ns = NIL; extract_lattice(proc, lp, &ns, &lp..
generates the code.
clean.
???
Definition at line 1034 of file remapping.c.
References clean_the_system(), concatenate(), DEBUG_ELST, DEBUG_STAT, DEBUG_SYST, entity_name, extract_lattice(), gen_free(), gen_free_list(), gen_in_list_p(), gen_map(), gen_nconc(), gen_remove(), generate_remapping_code(), generate_remapping_guard(), generate_remapping_system(), get_bool_property(), get_ith_temporary_dummy(), hpfc_algorithm_row_echelon(), hpfc_warning, make_empty_statement, NIL, pips_debug, pop_performance_spy(), push_performance_spy(), remapping_variables(), reset_information_for_code_optimizations(), sc_find_equalities(), sc_rm(), sc_transform_ineg_in_eg(), set_information_for_code_optimizations(), simplify_deducable_variables(), and src.
Referenced by generate_hpf_remapping_file().
|
static |
to be generated: IF (MYLID.NE.LID[.AND.NOT.HPFC_TWIN_P(an, LID)]) THEN true ELSE false ENDIF
else statement
of expression
lid | source array processor |
strue | process local id variable |
sfalse | then statement |
Definition at line 408 of file remapping.c.
References and_expression, call_to_expression(), CONS, entity_to_expression(), EXPRESSION, get_bool_property(), hpfc_name_to_entity(), int_to_expression(), load_hpf_number(), make_call(), make_test(), mylid_ne_lid(), NIL, not_expression, replicated_p(), src, test_to_statement, and TWIN_P.
Referenced by broadcast(), and generate_remapping_code().
Definition at line 1181 of file remapping.c.
References gen_multi_recurse(), gen_true(), l_found, loop_domain, loop_rwt(), NIL, reference_domain, and reference_rwt().
Referenced by generate_hpf_remapping_file().
|
static |
returns LIVEMAPPING(index)
Definition at line 793 of file remapping.c.
References CONS, EXPRESSION, hpfc_name_to_entity(), int_to_expression(), LIVEMAPPING, make_reference(), NIL, and reference_to_expression().
Referenced by generate_all_liveness_but(), generate_dynamic_liveness_for_primary(), generate_remapping_guard(), and set_live_status().
|
static |
Definition at line 1175 of file remapping.c.
References gen_once(), l_found, and loop_index.
Referenced by list_of_referenced_entities().
|
static |
Definition at line 395 of file remapping.c.
References entity_to_expression(), hpfc_name_to_entity(), MYLID, and ne_expression.
Referenced by if_different_pe_and_not_twin().
|
static |
HPFC module by Fabien COELHO.
generates a remapping code. debug controlled with HPFC_REMAPPING_DEBUG_LEVEL. ??? should drop the renaming domain? linearize the processor arrangement on which array is distributed or replicated (driven by distributed). The variables are those created or returned by the create_var function. var is set as the linearization result, if not NULL. *psize the the extent of the returned array. Special care is taken about the declaration shifts. dimension variable builder
distributed | array variable |
var | distributed or replicated dimensions lin. |
psize | assigned variable if desired |
create_var | returned array extent |
Definition at line 48 of file remapping.c.
References array, array_to_processors, contrainte_make(), get_entity_dimensions(), int_to_value, NumberOfDimension(), processors_dim_replicated_p(), TCST, VALUE_MONE, VALUE_ONE, vect_add_elem(), vect_multiply(), and VECTEUR_NUL.
Referenced by generate_work_sharing_system().
|
static |
to be generated: ??? the Proc cycle should be deduce directly in some case...
PSI_i's definitions [ IF (I AM IN S(PSI_i)) THEN ] DO OTH_i's in S(OTH_i's)[PSI_i's] LID computation(OTH_i's) // if LID is not NULL! body ENDDO [ ENDIF ] whether to shift the psi's
the lid computation is delayed in the body for broadcasts.
simplifies the processor arrangement for the condition
the processor must be in the psi processor arrangement
target processors enumeration loop
l_psi | system of comm. couples of processors of entities |
l_oth | processor local dimensions of entities |
psi | communicating proc. dimensions |
oth | local processor arrangement |
lid | communicating processor arrangement |
array | variable for the comm. proc local id |
create_psi | array being remapped |
create_oth | to create a local proc. dim. |
body | to create a comm. proc. dim. |
sh | loop body |
Definition at line 304 of file remapping.c.
References array, CONS, contrainte_make(), DEBUG_ELST, DEBUG_SYST, define_node_processor_id(), divide, element_number(), entity_to_declaration_constraints(), entity_type, extract_nredund_subsystem(), generate_optional_if(), hpfc_algorithm_row_echelon(), hpfc_compute_lid(), hpfc_name_to_entity(), IDIVIDE, int_to_value, make_block_statement(), make_empty_statement, MYLID, NIL, sc_add_inegalite(), sc_dup(), sc_rm(), shift_system_to_prime_variables(), STATEMENT, systeme_to_loop_nest(), TCST, type_variable, VALUE_ONE, variable_basic, variable_dimensions, vect_make(), and VECTEUR_NUL.
Referenced by generate_remapping_code().
Definition at line 1190 of file remapping.c.
References debug_off, debug_on, entity_undefined, and Text_Statement().
Referenced by generate_hpf_remapping_file().
|
static |
Definition at line 1177 of file remapping.c.
References gen_once(), l_found, and reference_variable.
Referenced by list_of_referenced_entities().
void remapping_compile(s, hsp, nsp) statement s, *hsp, *nsp;
what: generates the remapping code for s. how: polyhedron technique. input: s, the statement. output: statements *hsp and *nsp, the host and SPMD node code. side effects: (none?) bugs or features: idem Node
of statements
nothing for host
comment at the end
dynamic liveness management if required
remapping codes (indirect thru include)
KILL => status update
comment at the beginning
block of remaps for the nodes
hsp | initial statement in the source code |
nsp | Host Statement Pointer |
Definition at line 1302 of file remapping.c.
References add_remapping_as_used(), comment(), concatenate(), CONS, debug_off, debug_on, DEBUG_STAT, entity_name, free(), generate_dynamic_liveness_management(), generate_hpf_remapping_file(), generate_remapping_include(), get_bool_property(), insert_comments_to_statement(), load_renamings(), make_block_statement(), make_empty_statement, MAP, NIL, pips_debug, remapping_already_computed_p(), RENAMING, renaming_new, renaming_old, set_array_status_to_target(), STATEMENT, strdup(), and what_stat_debug.
Referenced by hpf_compiler().
file name for storing the remapping code.
{module}_{array}_{src}_{trg}_node.h
Definition at line 1152 of file remapping.c.
References array, asprintf, buffer, entity_local_name(), entity_module_name(), free(), load_hpf_number(), load_primary_entity(), module, renaming_new, renaming_old, src, and strdup().
Referenced by generate_hpf_remapping_file(), and generate_remapping_include().
|
static |
generates a remapping loop nest (copy/send/receive/broadcast) basically a loop on elements with pre/in/post statements...
target array
comments are added to help understand the generated code
s | tag: CPY/SND/RCV/BRD |
sr | elements polyhedron |
ll | broadcast polyhedron of entity |
ldiff | indexes for element loops of entity |
ld | indexes for broadcasts of expressions |
lid | deducable elements |
src | lid variable to be used |
trg | source array |
Definition at line 615 of file remapping.c.
References array_to_processors, BRD, BUF, comment(), concatenate(), CONS, CPY, elements_loop(), free(), gen(), get_bool_property(), get_ith_local_dummy(), get_ith_local_prime(), INL, insert_comments_to_statement(), LAZY_MESSAGES, LZY, make_block_statement(), NBF, NIL, NLZ, PRE, PST, RCV, SND, src, STATEMENT, strdup(), and USE_BUFFERS.
Referenced by generate_remapping_code().
|
static |
??? assumes that there are no parameters.
what should be the case... generates the list of variables needed by the code generation. others
processors.
to be removed.
corresponding equations generated in the sharing system
Replicated dimensions associated variables must be removed. A nicer approach would have been not to generate them, but it's not so hard to remove them, and the equation generation is kept simpler this way. At least in my own opinion:-)
locals.
others.
a1 | full remapping system |
a2 | source array |
pl | target array |
plp | P |
pll | P' |
plrm | locals |
pld | to remove |
plo | diffusion processor variables |
Definition at line 206 of file remapping.c.
References add_to_list_of_vars, array_to_template, base_to_list(), CONS, DEBUG_ELST, ENTITY, gen_remove(), get_ith_array_dummy(), get_ith_array_prime(), get_ith_block_dummy(), get_ith_block_prime(), get_ith_cycle_dummy(), get_ith_cycle_prime(), get_ith_local_dummy(), get_ith_local_prime(), get_ith_processor_dummy(), get_ith_processor_prime(), get_ith_template_dummy(), get_ith_template_prime(), get_ith_temporary_dummy(), MAP, NIL, pl, processors_dim_replicated_p(), TCST, template_to_processors, and variable_entity_dimension().
Referenced by hpf_remapping().
returns the initialization statement: must initialize the status and liveness of arrays
of statement
of entity
LIVENESS(...) = .TRUE. STATUS(...) = ...
LIVENESS(...) = .FALSE.
root | oot |
Definition at line 1265 of file remapping.c.
References array, bound_dynamic_hpf_p(), CONS, ENTITY, gen_free_list(), generate_all_liveness(), get_current_module_entity(), list_of_distributed_arrays_for_module(), load_renamings(), make_block_statement(), MAP, NIL, primary_entity_p, RENAMING, renaming_new, STATEMENT, and update_runtime_for_remapping().
Referenced by hpf_compiler().
mapping status
Definition at line 801 of file remapping.c.
References CONS, EXPRESSION, hpfc_name_to_entity(), int_to_expression(), load_hpf_number(), load_primary_entity(), make_assign_statement(), make_reference(), MSTATUS, NIL, and reference_to_expression().
Referenced by generate_remapping_guard(), remapping_compile(), and update_runtime_for_remapping().
Definition at line 818 of file remapping.c.
References bool_to_expression(), live_mapping_expression(), load_hpf_number(), load_similar_mapping(), and make_assign_statement().
Referenced by update_runtime_for_remapping().
Definition at line 829 of file remapping.c.
References comment(), concatenate(), CONS, entity_local_name(), free(), insert_comments_to_statement(), load_primary_entity(), make_block_statement(), NIL, set_array_status_to_target(), set_live_status(), STATEMENT, and strdup().
Referenced by root_statement_remapping_inits().
|
static |
quick recursion to find the entities referenced in a statement.
the list is allocated and returned. of entity
Definition at line 1174 of file remapping.c.
Referenced by list_of_referenced_entities(), loop_rwt(), and reference_rwt().