PIPS
|
Go to the source code of this file.
let's count in binary mode
Definition at line 351 of file messages.c.
References add_elem_to_list_of_Pvecteur(), add_to_list_of_ranges_list(), array, CAR, CDR, complementary_range(), debug(), dup_list_of_Pvecteur(), dup_list_of_ranges_list(), fprint_message(), fprintf(), gen_free_list(), gen_nconc(), generate_message_from_3_lists(), ifdebug, intptr_t, ith_dim_distributed_p(), message_array, message_content, message_dom, message_neighbour, NIL, RANGE, VALUE_TO_INT, VALUE_ZERO, and vect_coeff().
Referenced by messages_atomization().
message generate_one_message(array, li, lk, lv)
generate one message after the reference given,
I think I don't need to store the to where value... that's rather interesting since I do not know where I could put it...
no neighbour concerned
content:
domain:
note that rate==1
neighbour to send to
content, on the sender point of view...
(shift>0)
shift == 0
content: send it all?
domain
??? why 1
??? bug if there is a declaration shift...
no neighbour concerned
content:
domain:
no neighbour
content: all shifted space indexed
??? false if declaration shift
domain
??? why 1
no neighbour
content: all shifted space indexed
??? false if declaration shift
domain
no neighbour concerned
content:
domain:
Definition at line 62 of file messages.c.
References access_tag, aligned_constant, aligned_shift, array, assert, CAR, CDR, CONS, debug(), dimension_lower, dimension_upper, DistributionParameterOfArrayDim(), entity_local_name(), EXPRESSION, FindIthDimension(), gen_length(), gen_nconc(), HpfcExpressionToInt(), INT, int_to_expression(), intptr_t, load_new_node(), local_affine, local_constant, local_form_cst, local_shift, loop_index_to_range(), make_message(), make_range(), NIL, pips_debug, pips_internal_error, PVECTOR, RANGE, range_increment, range_lower, range_upper, safe_static_domain_bound(), TCST, template_cell_local_mapping(), TEMPLATEV, the_index_of_vect(), TSHIFTV, val_of, VALUE_MONE, VALUE_ONE, Value_to_expression(), VALUE_TO_INT, var_of, vect_add(), vect_coeff(), vect_new(), and VECTEUR_NUL.
Referenced by messages_generation().
Definition at line 689 of file messages.c.
References CONS, MAP, MESSAGE, NIL, st_one_message(), and STATEMENT.
Referenced by messages_handling().
??? else memory leak
Definition at line 455 of file messages.c.
References CONS, empty_section_p(), MAP, MESSAGE, message_dom, and NIL.
Referenced by messages_handling().
??? else memory leak
Definition at line 438 of file messages.c.
References CONS, empty_section_p(), MAP, MESSAGE, message_content, message_neighbour, NIL, and VECTEUR_NUL_P.
Referenced by messages_handling().
Definition at line 428 of file messages.c.
References atomize_one_message(), gen_nconc(), MAP, MESSAGE, and NIL.
Referenced by messages_handling().
list messages_generation(Ro, lRo)
first kind of messages generation (the overlap management is handled in message_manageable_p())
Definition at line 319 of file messages.c.
References array, assert, CAR, CDR, CONS, CONSP, gen_length(), generate_one_message(), MESSAGE, NIL, reference_indices, reference_variable, SYNTAX, and syntax_reference.
Referenced by messages_handling().
Definition at line 588 of file messages.c.
References CONS, MAP, MESSAGE, NIL, and one_message_guards_and_neighbour().
Referenced by messages_handling().
every required conditions are supposed to be verified in this function.
first kind of messages generation
a message is an array, a mixed content on the local array, a set of neighbours (in a Pvecteur) and an array section concerned.
here should be performed some message coalescing and/or aggregation: a first simple version could check for messages sent twice, and so on.
RECEIVE
Ro | o |
lRo | Ro |
Definition at line 724 of file messages.c.
References assert, debug(), fprint_lmessage(), fprintf(), gen_free_list(), gen_length(), gen_nconc(), generate_the_messages(), hpfc_warning, ifdebug, keep_non_empty_domain_messages(), keep_non_empty_messages_with_destination(), make_block_statement(), messages_atomization(), messages_generation(), messages_guards_and_neighbour(), messages_shaping(), NIL, RECEIVE, receive_messages_generation(), remove_stammering_messages(), and SEND.
Referenced by Overlap_Analysis().
Definition at line 535 of file messages.c.
References CONS, MAP, MESSAGE, NIL, and shape_one_message().
Referenced by messages_handling().
now the neighbour computation in the linearized processor arrangment named NODETIDS() of common /HPFC_PARAM/. the code is similar to the runtime support function HPFC_PROCLID().
Definition at line 545 of file messages.c.
References array, array_ranges_to_template_ranges(), array_to_template, assert, gen_free_list(), int_to_value, intptr_t, message_array, message_dom, message_neighbour, message_neighbour_, newgen_Pvecteur, NumberOfDimension(), SizeOfIthDimension(), TCST, template_ranges_to_processors_ranges(), template_to_processors, VALUE_TO_INT, vect_add(), vect_coeff(), and vect_new().
Referenced by messages_guards_and_neighbour().
Definition at line 601 of file messages.c.
References array, compute_receive_content(), compute_receive_domain(), make_message(), message_array, message_content, message_dom, message_neighbour, TCST, value_uminus, vect_coeff(), and vect_new().
Referenced by receive_messages_generation().
list receive_messages_generation(lms)
this function must warranty that all messages send will be received, so the messages are symetric.
Definition at line 623 of file messages.c.
References CONS, gen_nconc(), MAP, MESSAGE, NIL, and one_receive_message().
Referenced by messages_handling().
list remove_stammering_messages(lm)
remove messages that are contained in another message
Definition at line 704 of file messages.c.
References CAR, CDR, CONS, larger_message_in_list(), MAPL, MESSAGE, and NIL.
Referenced by messages_handling().
|
static |
Messages handling.
Fabien Coelho, August 1993 ????
Definition at line 37 of file messages.c.
References array, get_entity_dimensions(), hpfc_integer_constant_expression_p(), and int_to_expression().
Referenced by generate_one_message().
message shape_one_message(m)
caution, rate==1 is assumed.
??? is that all ?
message content isn't empty
Definition at line 476 of file messages.c.
References array, assert, CAR, CDR, CONS, DistributionParameterOfArrayDim(), gen_free_list(), gen_nconc(), global_array_cell_to_local_array_cell(), HpfcExpressionToInt(), int_to_expression(), ith_dim_distributed_p(), make_range(), message_array, message_content, message_dom, NIL, RANGE, range_lower, and range_upper.
Referenced by messages_shaping().
statement st_one_message(m, bsend)
this function will have to be modified in order to include message coalescing and aggregation. Here, a direct call to a function that packs and passes the message is made.
comment generation to improve readibility of the code
Definition at line 645 of file messages.c.
References abs, array, array_to_processors, buf, buffer, CONS, entity_local_name(), generate_guarded_statement(), insert_comments_to_statement(), make_block_statement(), message_array, message_content, message_dom, message_neighbour, NIL, sprint_lrange(), st_compute_neighbour(), st_generate_packing(), st_receive_from_neighbour, st_send_to_neighbour, STATEMENT, TCST, VALUE_TO_INT, and vect_coeff().
Referenced by generate_the_messages().