PIPS
|
#include "defines-local.h"
Go to the source code of this file.
Macros | |
#define | call_assign_p(c) (strcmp(entity_local_name(call_function(c)), ASSIGN_OPERATOR_NAME)==0) |
Variables | |
static list | found_written = NIL |
FindRefToDistArrayInStatement. More... | |
static list | found_read = NIL |
static list | syntax_list =NIL |
??? False! The definition looked for must be an assignment call... More... | |
static list | found_definitions =NIL |
static list | loops |
static list | blocks |
lisp of loops More... | |
static int | n_loops |
list of lists, may be NIL if none More... | |
static int | n_levels |
static statement | inner_body |
static list | current_loop_list =NIL |
management of a list of current loops. More... | |
#define call_assign_p | ( | c | ) | (strcmp(entity_local_name(call_function(c)), ASSIGN_OPERATOR_NAME)==0) |
Definition at line 87 of file compiler-util.c.
lsyn | syn |
Definition at line 188 of file compiler-util.c.
References CONS, gen_free_list(), is_in_syntax_list(), MAP, reference_variable, SYNTAX, and syntax_reference.
Referenced by hpf_compile_parallel_body(), and lIndicesOfRef().
atomic_accesses_only_p
checks that only atomic accesses to distributed variables are made inside a parallel loop nest, for every iterations.
??? partially implemented, and the conclusions may be false...
Definition at line 268 of file compiler-util.c.
References hpfc_warning, and ifdebug.
Referenced by hpf_compile_loop().
Definition at line 383 of file compiler-util.c.
References current_loop_list, LOOP, loop_index, and MAP.
Referenced by affine_expression_of_loop_index_p(), shift_expression_of_loop_index_p(), and simple_indices_p().
stat | tat |
lsyn | syn |
Definition at line 239 of file compiler-util.c.
References ENDP, FindDefinitionsOf_rewrite(), found_definitions, gen_recurse, gen_true(), NIL, pips_assert, statement_domain, and syntax_list.
Referenced by hpf_compile_parallel_body().
|
static |
??? False! nothing is checked about the statement movement...
Definition at line 218 of file compiler-util.c.
References call_arguments, CAR, CONS, EXPRESSION, expression_reference(), found_definitions, instruction_assign_p(), instruction_call, instruction_to_statement(), is_in_syntax_list(), make_continue_instruction(), reference_variable, STATEMENT, statement_instruction, and syntax_list.
Referenced by FindDefinitionsOf().
obj | bj |
lwp | wp |
lrp | rp |
Definition at line 121 of file compiler-util.c.
References call_domain, expression_domain, FindRefToDistArrayInStatement_call_filter(), FindRefToDistArrayInStatement_expression_filter(), found_read, found_written, gen_multi_recurse(), gen_null(), and NIL.
Referenced by hpf_compile_parallel_body(), hpf_compile_parallel_loop(), and Overlap_Analysis().
else ASSIGN case
Definition at line 90 of file compiler-util.c.
References array_distributed_p(), call_arguments, call_assign_p, CAR, CDR, CONS, EXPRESSION, expression_syntax, FindRefToDistArray(), found_read, found_written, gen_nconc(), reference_variable, SYNTAX, and syntax_reference.
Referenced by FindRefToDistArrayInStatement().
|
static |
Definition at line 114 of file compiler-util.c.
References FindRefToDistArray(), found_read, and gen_nconc().
Referenced by FindRefToDistArrayInStatement().
??? could check that the given call is a constant.
syn | yn |
Definition at line 156 of file compiler-util.c.
References CONS, EXPRESSION, expression_syntax, is_syntax_call, is_syntax_range, is_syntax_reference, MAP, NIL, pips_assert, pips_internal_error, reference_indices, SYNTAX, syntax_reference, syntax_reference_p, and syntax_tag.
Referenced by lIndicesOfRef().
indirections_inside_statement_p
??? this may be checked using the dependences graph, looking for edges linking two distributed variables inside the loop...
Definition at line 280 of file compiler-util.c.
References hpfc_warning, and ifdebug.
Referenced by hpf_compile_loop().
Definition at line 200 of file compiler-util.c.
References MAP, reference_variable, SYNTAX, and syntax_reference.
Referenced by AddOnceToIndicesList(), and FindDefinitionsOf_rewrite().
computes the list of indices of the list of ref that are variables...
lsyn | syn |
Definition at line 147 of file compiler-util.c.
References AddOnceToIndicesList(), CAR, CDR, ENDP, IndicesOfRef(), and SYNTAX.
Referenced by hpf_compile_parallel_body().
Definition at line 310 of file compiler-util.c.
References execution_parallel_p, and loop_execution.
Referenced by parallel_loop_nest_to_body().
index | ndex |
Definition at line 390 of file compiler-util.c.
References current_loop_list, LOOP, loop_index, loop_range, MAP, and range_undefined.
Referenced by array_access_to_array_ranges(), and generate_one_message().
|
static |
a loop was found directly as a body
Definition at line 326 of file compiler-util.c.
References blocks, CONS, inner_body, LIST, LOOP, loop_body, loops, n_levels, n_loops, and NIL.
Referenced by parallel_loop_nest_to_body().
nothing was done for the first !
loop_nest | oop_nest |
pblocks | blocks |
ploops | loops |
Definition at line 336 of file compiler-util.c.
References blocks, CONS, gen_multi_recurse(), gen_true(), inner_body, instruction_loop_p, LIST, loop_domain, loop_filter(), loop_rewrite(), loops, n_levels, n_loops, NIL, pips_assert, sequence_domain, sequence_rewrite(), statement_instruction, and statement_undefined.
Referenced by full_copy_p(), and Overlap_Analysis().
void reset_current_loops | ( | void | ) |
Definition at line 377 of file compiler-util.c.
References current_loop_list, gen_free_list(), and NIL.
|
static |
there was no doall inside
Definition at line 315 of file compiler-util.c.
References blocks, CONS, LIST, n_levels, n_loops, pips_internal_error, and sequence_statements.
Referenced by parallel_loop_nest_to_body().
void set_current_loops | ( | statement | obj | ) |
obj | bj |
Definition at line 371 of file compiler-util.c.
References current_loop_list, gen_recurse, gen_true(), loop_domain, NIL, pips_assert, and set_current_loops_rewrite().
Referenced by Overlap_Analysis().
|
static |
Definition at line 366 of file compiler-util.c.
References CONS, current_loop_list, and LOOP.
Referenced by set_current_loops().
void update_control_lists | ( | control | c, |
control_mapping | map | ||
) |
Compiler Utilities.
Fabien Coelho, May 1993
map | ap |
Definition at line 36 of file compiler-util.c.
References control_predecessors, control_successors, GET_CONTROL_MAPPING, NIL, pips_assert, and updated_control_list().
Referenced by hpf_compile_unstructured().
list updated_control_list | ( | list | lc, |
control_mapping | map | ||
) |
lc | c |
map | ap |
Definition at line 52 of file compiler-util.c.
References CONS, CONTROL, control_undefined, control_undefined_p, current, gen_nreverse(), GET_CONTROL_MAPPING, MAP, NIL, and pips_assert.
Referenced by update_control_lists().
|
static |
lisp of loops
Definition at line 306 of file compiler-util.c.
Referenced by do_split_block_statements(), hpf_compile_unstructured(), iteration_domain_from_statement(), loop_rewrite(), only_io_unstructured(), parallel_loop_nest_to_body(), postcondition_filter(), sequence_rewrite(), statement_arrows(), text_unstructured(), uns_rwt(), and unstructured_to_direct_declarations().
management of a list of current loops.
very burk ???
Definition at line 364 of file compiler-util.c.
Referenced by entity_loop_index_p(), loop_index_to_range(), reset_current_loops(), set_current_loops(), and set_current_loops_rewrite().
Definition at line 216 of file compiler-util.c.
Referenced by FindDefinitionsOf(), and FindDefinitionsOf_rewrite().
Definition at line 85 of file compiler-util.c.
Referenced by FindRefToDistArrayInStatement(), FindRefToDistArrayInStatement_call_filter(), and FindRefToDistArrayInStatement_expression_filter().
FindRefToDistArrayInStatement.
everything may be quite false regarding to the real effects of the functions called, but it seems to me that the pips effect analysis doesn't match my needs... and I have not much time to think about that...
??? these stupid functions assume no indirections on distributed arrays ??? also that they are not written by a function other than assign
Definition at line 84 of file compiler-util.c.
Referenced by FindRefToDistArrayInStatement(), and FindRefToDistArrayInStatement_call_filter().
|
static |
Definition at line 308 of file compiler-util.c.
Referenced by initialize_variable_used_map_for_current_loop_nest(), loop_rewrite(), and parallel_loop_nest_to_body().
|
static |
statement parallel_loop_nest_to_body(loop_nest, pblocks, ploops) statement loop_nest; list *pblocks, *ploops;
What I want is to extract the parallel loops from loop_nest, while keeping track of the structure if the loop nest is not perfectly nested. Only a very simple structure is recognized.
it returns the inner statement of the loop nest, a list of pointers to the loops, and a list of pointers to the blocks containing these loops if any.
we may discuss the implementation based on static global variables... but I cannot see how to do it otherwise with a gen_recurse.
Definition at line 305 of file compiler-util.c.
Referenced by add_conflicts(), adg_get_predicate_of_loops(), CodeGenerate(), find_level_l_loop_statement(), index_of_a_loop_p(), IsolatedStatement(), loop_rewrite(), loops_mapping_of_statement(), MakeNestOfParallelLoops(), MakeNestOfStatementList(), module_loops(), parallel_loop_nest_to_body(), print_loops(), process_reduced_loops(), quick_privatize_statement_pair(), rloops_mapping_of_statement(), rloops_mapping_of_unstructured(), simdizer_auto_tile(), statement_imbrication_level(), and variable_private_to_loop_p().
|
static |
Definition at line 307 of file compiler-util.c.
Referenced by loop_rewrite(), parallel_loop_nest_to_body(), and sequence_rewrite().
|
static |
list of lists, may be NIL if none
Definition at line 307 of file compiler-util.c.
Referenced by loop_rewrite(), parallel_loop_nest_to_body(), and sequence_rewrite().
??? False! The definition looked for must be an assignment call...
Definition at line 215 of file compiler-util.c.
Referenced by FindDefinitionsOf(), and FindDefinitionsOf_rewrite().