PIPS
|
Go to the source code of this file.
caution, is initial list is destroyed.
else
var | ar |
val | al |
Definition at line 110 of file message-utils.c.
References CAR, CONS, ENDP, gen_free_list(), gen_nconc(), int_to_value, intptr_t, MAPL, NIL, pips_debug, PVECTOR, vect_add_elem(), vect_new(), vect_size(), and VECTOR.
Referenced by atomize_one_message().
first time
else
Definition at line 51 of file message-utils.c.
References assert, CAR, CONS, CONSP, ENDP, gen_nconc(), LIST, MAPL, NIL, and RANGE.
Referenced by atomize_one_message().
this dimension shouldn't be used, so I put there whatever I want... ??? mouais, the information is in the vector, I think.
??? should check that it is ok
lkref | kref |
lvref | vref |
Definition at line 569 of file message-utils.c.
References access, access_tag, aligned_affine, aligned_constant, aligned_shift, array, CAR, CONS, copy_expression(), DIMENSION, dimension_lower, dimension_upper, entity_name, entity_type, EXPRESSION, expression_integer_constant_p(), expression_normalized, expression_undefined, gen_nconc(), HpfcExpressionToInt(), INT, int_to_expression(), local_affine, local_constant, local_form_cst, local_shift, loop_index_to_range(), make_range(), NIL, normalized_linear, pips_debug, pips_internal_error, POP, PVECTOR, RANGE, range_increment, range_lower, range_upper, reference_indices, reference_variable, tc, TCST, type_variable, val_of, Value_to_expression(), VALUE_TO_INT, var_of, variable_dimensions, vect_coeff(), and vect_del_var().
Referenced by loop_nest_guard().
scratched
replication
non distributed dimension, so not used...
array | rray |
lra | ra |
Definition at line 426 of file message-utils.c.
References align_alignment, align_template, alignment_arraydim, alignment_constant, alignment_rate, alignment_undefined_p, array, CONS, copy_expression(), dimension_lower, dimension_upper, expression_undefined, expression_undefined_p, FindAlignmentOfTemplateDim(), FindIthDimension(), gen_nconc(), gen_nth(), HpfcExpressionToInt(), int_to_expression(), load_hpf_alignment(), make_range(), NIL, NumberOfDimension(), RANGE, range_increment, range_lower, and range_upper.
Referenced by loop_nest_guard(), and one_message_guards_and_neighbour().
range complementary_range(array, dim, r)
just to avoid a gcc warning
array | rray |
dim | im |
Definition at line 141 of file message-utils.c.
References array, assert, dimension_lower, dimension_upper, FindIthDimension(), HpfcExpressionToInt(), int_to_expression(), load_new_node(), make_range(), pips_internal_error, range_increment, range_lower, range_undefined, and range_upper.
Referenced by atomize_one_message().
shared!
array | rray |
lr | r |
Definition at line 268 of file message-utils.c.
References array, assert, CAR, CONS, dimension_lower, dimension_upper, FindIthDimension(), gen_length(), gen_nconc(), HpfcExpressionToInt(), int_to_expression(), intptr_t, ith_dim_distributed_p(), load_new_node(), make_range(), NIL, NumberOfDimension(), POP, RANGE, range_increment, range_lower, range_upper, VALUE_TO_INT, VALUE_ZERO, and vect_coeff().
Referenced by one_receive_message().
shared!
lr | r |
Definition at line 318 of file message-utils.c.
References CAR, CDR, CONS, gen_nconc(), HpfcExpressionToInt(), int_to_expression(), intptr_t, make_range(), NIL, RANGE, range_increment, range_lower, range_upper, VALUE_TO_INT, and vect_coeff().
Referenced by one_receive_message().
??? the complexity of this function could be improved greatly...
Definition at line 93 of file message-utils.c.
References CAR, CONS, gen_nconc(), MAPL, NIL, PVECTOR, vect_dup(), and VECTOR.
Referenced by atomize_one_message().
??? the complexity of this function could be greatly improved
Definition at line 72 of file message-utils.c.
References assert, CAR, CONS, CONSP, gen_length(), gen_nconc(), LIST, MAP, MAPL, NIL, and RANGE.
Referenced by atomize_one_message().
if we cannot decide, the range is supposed not to be empty
Definition at line 203 of file message-utils.c.
References hpfc_integer_constant_expression_p(), range_lower, and range_upper.
Referenced by empty_section_p().
lr | r |
Definition at line 195 of file message-utils.c.
References CAR, CDR, empty_range_p(), empty_section_p(), ENDP, and RANGE.
Referenced by empty_section_p(), keep_non_empty_domain_messages(), and keep_non_empty_messages_with_destination().
stat | tat |
proc | roc |
lr | r |
Definition at line 680 of file message-utils.c.
References entity_empty_label(), instruction_to_statement(), is_instruction_test, make_continue_statement(), make_guard_expression(), make_instruction(), and make_test().
Referenced by loop_nest_guard(), and st_one_message().
list generate_message_from_3_lists(array, lcontent, lneighbour, ldomain)
array | rray |
lcontent | content |
lneighbour | neighbour |
ldomain | domain |
Definition at line 173 of file message-utils.c.
References array, assert, CAR, CDR, CONS, CONSP, gen_length(), make_message(), MESSAGE, NIL, and PVECTOR.
Referenced by atomize_one_message().
Definition at line 351 of file message-utils.c.
References MAP, MESSAGE, and message_larger_p().
Referenced by remove_stammering_messages().
??? memory leak of some expressions
stat | tat |
lkref | kref |
lvref | vref |
Definition at line 793 of file message-utils.c.
References array, array_access_to_array_ranges(), array_ranges_to_template_ranges(), array_to_template, gen_free_list(), generate_guarded_statement(), reference_variable, template_ranges_to_processors_ranges(), and template_to_processors.
Referenced by Overlap_Analysis().
can look for formal equality...
??? something more intelligent could be expected
lr1 | r1 |
lr2 | r2 |
Definition at line 381 of file message-utils.c.
References assert, CAR, expression_equal_p(), gen_length(), hpfc_integer_constant_expression_p(), pips_debug, POP, RANGE, range_increment, range_lower, and range_upper.
Referenced by message_larger_p().
bool make_guard_expression | ( | entity | proc, |
list | lrref, | ||
expression * | pguard | ||
) |
bool make_guard_expression(proc, lr, pguard)
compute the expression for the processors ranges lr guard. return true if not empty, false if empty.
empty match case
??? memory leak with the content of conjonction
MYPOS(i, procnum).EQ.nn
MYPOS(i, procnum).GE.(rloexpr)
MYPOS(i, procnum).LE.(rupexpr)
use of conjonction
no guard
proc | roc |
lrref | rref |
pguard | guard |
Definition at line 702 of file message-utils.c.
References CAR, CDR, CONS, dimension_lower, dimension_upper, entity_intrinsic(), entity_to_expression(), eq_expression, EXPRESSION, expression_list_to_conjonction(), expression_undefined, FindIthDimension(), ge_expression, gen_free_list(), gen_length(), HpfcExpressionToInt(), int_to_expression(), le_expression, load_hpf_number(), make_mypos_expression(), NIL, NumberOfDimension(), RANGE, range_lower, and range_upper.
Referenced by generate_guarded_statement().
expression make_mypos_expression | ( | int | i, |
expression | exp | ||
) |
exp | xp |
Definition at line 782 of file message-utils.c.
References CONS, exp, EXPRESSION, hpfc_name_to_entity(), int_to_expression(), make_reference(), MYPOS, NIL, and reference_to_expression().
Referenced by make_guard_expression().
bool message_larger_p(m1, m2)
true if m1>=m2... (caution, it is only a partial order)
m1 | 1 |
m2 | 2 |
Definition at line 363 of file message-utils.c.
References lrange_larger_p(), message_array, message_content, message_dom, message_neighbour, TCST, value_ne, and vect_coeff().
Referenced by larger_message_in_list().
str | tr |
Definition at line 217 of file message-utils.c.
References MAP, RANGE, and sprint_range().
Referenced by st_one_message().
str | tr |
Definition at line 242 of file message-utils.c.
References hpfc_integer_constant_expression_p(), range_increment, range_lower, and range_upper.
Referenced by sprint_lrange().
??? another increment could be computed?
template | emplate |
lrt | rt |
Definition at line 498 of file message-utils.c.
References CONS, dimension_lower, dimension_size(), dimension_upper, distribute_distribution, distribute_processors, distribution_parameter, distribution_style, FindDistributionOfProcessorDim(), FindIthDimension(), gen_nconc(), gen_nth(), HpfcExpressionToInt(), int_to_expression(), is_style_block, is_style_cyclic, is_style_none, load_hpf_distribution(), make_range(), NIL, NumberOfDimension(), pips_internal_error, pl, processor_number(), RANGE, range_lower, range_upper, and style_tag.
Referenced by loop_nest_guard(), and one_message_guards_and_neighbour().
Message Utilities.
Fabien Coelho, August 1993 returns the index of an affine vector
v0 | 0 |
Definition at line 37 of file message-utils.c.
References assert, DELTAV, TCST, TEMPLATEV, TSHIFTV, vect_del_var(), vect_erase_var(), and vect_size().
Referenced by generate_one_message(), and update_indices_for_local_computation().