PIPS
|
#include "defines-local.h"
#include "accel-util.h"
#include "semantics.h"
#include "workspace-util.h"
#include "prettyprint.h"
Go to the source code of this file.
Functions | |
static string | step_head_hook (entity __attribute__((unused)) e) |
Copyright 2007-2012 Alain Muller, Frederique Silber-Chaussumier. More... | |
static void | loopbounds_substitution (entity new_module, loop loop_stmt) |
static statement | compile_loopslices (entity new_module, loop loop_stmt) |
static statement | compile_loopbounds (entity new_module, loop loop_stmt, statement work_stmt) |
static void | compile_reduction (set reductions_l[STEP_UNDEF_REDUCE], statement before_stmt, statement after_stmt) |
static void | loop_basic_workchunk_to_workchunk (statement stmt, list *recv_l, list *send_l) |
static statement | compile_master (entity new_module, statement work_stmt) |
static statement | compile_barrier (entity __attribute__((unused)) new_module, statement work_stmt) |
static bool | step_get_directive_reductions (step_directive drt, set *reductions_l) |
static list | duplicate_regions_referenced_entity (list referenced_entities, list regions_l) |
static list | keep_recv_or_send_referenced_entity (list recv_l, list send_l, list referenced_entities) |
static void | compile_body (statement directive_stmt, entity new_module, step_directive drt, int transformation, list referenced_entities, statement new_body, statement mpi_begin_stmt, statement work_stmt, statement mpi_end_stmt) |
static void | update_referenced_entities (statement new_body, list *referenced_entities) |
statement | compile_mpi (statement directive_stmt, string new_module_name, step_directive drt, int transformation) |
compile_mpi.c More... | |
|
static |
Definition at line 235 of file compile_mpi.c.
References call_STEP_subroutine2(), insert_statement(), pips_debug, and RT_STEP_barrier.
Referenced by compile_body().
|
static |
Definition at line 331 of file compile_mpi.c.
References add_omp_guard(), apply_statement_effects(), assert, CAR, compile_barrier(), compile_loopbounds(), compile_loopslices(), compile_master(), compile_omp(), compile_reduction(), compile_regions(), db_get_memory_resource(), duplicate_regions_referenced_entity(), effects_effects, empty_statement_p(), entity_undefined_p, gen_free_list(), generate_call_construct_begin_construct_end(), generate_call_init_regionArray(), get_current_module_entity(), get_current_module_name(), ifdebug, insert_statement(), keep_recv_or_send_referenced_entity(), list_undefined, loop_basic_workchunk_to_workchunk(), loop_undefined, loopbounds_substitution(), make_plain_continue_statement(), NIL, pips_assert, pips_debug, print_statement(), put_a_comment_on_a_statement(), reduction_p(), STATEMENT, statement_block(), statement_loop(), statement_undefined, STEP_BARRIER, step_directive_type, step_directive_type_print(), STEP_DO, step_get_directive_reductions(), STEP_MASTER, STEP_PARALLEL, STEP_PARALLEL_DO, STEP_THREADPRIVATE, STEP_TRANSFORMATION_HYBRID, STEP_UNDEF_REDUCE, and strdup().
Referenced by compile_mpi().
|
static |
Definition at line 51 of file compile_mpi.c.
References generate_call_get_rank(), generate_call_get_rank_loopbounds(), make_block_statement(), make_statement_list, and pips_debug.
Referenced by compile_body().
Definition at line 36 of file compile_mpi.c.
References generate_call_compute_loopslices(), generate_call_get_commsize(), make_block_statement(), make_statement_list, and pips_debug.
Referenced by compile_body().
Definition at line 205 of file compile_mpi.c.
References call_STEP_subroutine2(), entity_intrinsic(), entity_to_expression(), EQUAL_OPERATOR_NAME, get_entity_step_rank(), get_expression_addr(), instruction_to_statement(), int_to_expression(), make_block_statement(), make_instruction_test(), make_statement_list, make_test(), MakeBinaryCall(), NIL, pips_debug, rank, and RT_STEP_get_rank.
Referenced by compile_body().
statement compile_mpi | ( | statement | directive_stmt, |
string | new_module_name, | ||
step_directive | drt, | ||
int | transformation | ||
) |
directive_stmt | irective_stmt |
new_module_name | ew_module_name |
drt | rt |
transformation | ransformation |
Definition at line 517 of file compile_mpi.c.
References c_module_p(), compile_body(), concatenate(), entity_domain, entity_undefined_p, gen_copy_seq(), gen_find_tabulated(), get_current_module_entity(), get_current_module_name(), make_block_statement(), make_empty_block_statement(), make_statement_list, MODULE_SEP_STRING, NIL, outliner_call(), outliner_file(), outliner_init(), outliner_parameters(), outliner_patch_parameters(), outliner_scan(), pips_assert, pips_debug, reset_prettyprinter_head_hook(), set_prettyprinter_head_hook(), step_head_hook(), step_RT_clean_local(), step_RT_set_local_declarations(), TOP_LEVEL_MODULE_NAME, and update_referenced_entities().
Referenced by compile_rewrite().
|
static |
Definition at line 68 of file compile_mpi.c.
References call_STEP_subroutine2(), check_entity_step_type(), compare_entities(), ENTITY, entity_to_expression(), FOREACH, get_expression_addr(), insert_statement(), is_basic_string, MakeConstant(), pips_assert, pips_debug, RT_STEP_initreduction, RT_STEP_reduction, set_empty_p(), set_to_sorted_list(), statement_block_p, statement_undefined_p, STEP_MAX_REDUCE_NAME, STEP_MIN_REDUCE_NAME, STEP_PROD_REDUCE_NAME, STEP_SUM_REDUCE_NAME, step_type(), and STEP_UNDEF_REDUCE.
Referenced by compile_body().
Definition at line 288 of file compile_mpi.c.
References CONS, copy_effect(), entity_name, FOREACH, gen_in_list_p(), gen_nreverse(), NIL, pips_debug, REGION, and region_entity.
Referenced by compile_body().
|
static |
Definition at line 302 of file compile_mpi.c.
References CONS, ENTITY, entity_name, FOREACH, gen_nreverse(), NIL, pips_debug, REGION, region_entity, set_add_element(), set_belong_p(), set_free(), set_make(), and set_pointer.
Referenced by compile_body().
|
static |
find the real upper and lower bounds
Definition at line 125 of file compile_mpi.c.
References all_regions_sc_append(), CAR, CONS, contrainte_make(), expression_and_precondition_to_integer_interval(), FOREACH, get_current_module_entity(), ifdebug, insert_ineq_begin_sc(), loop_index, loop_range, make_predicate(), make_transformer(), NIL, pips_debug, pips_user_error, print_rw_regions(), project_regions_along_variables(), range_increment, rectangularization_region(), REGION, sc_creer_base(), sc_new(), sc_rn(), set_add_element(), STATEMENT, statement_block(), statement_loop(), STEP_BOUNDS_LOW, STEP_BOUNDS_UP, step_created_entity, step_local_loop_index(), strdup(), TCST, VALUE_MONE, VALUE_ONE, VALUE_ZERO, vect_make(), vect_new(), and VECTEUR_NUL.
Referenced by compile_body().
Definition at line 27 of file compile_mpi.c.
References entity_to_expression(), loop_index, loop_range, range_lower, range_upper, STEP_BOUNDS_LOW, STEP_BOUNDS_UP, and step_local_loop_index().
Referenced by compile_body().
|
static |
Definition at line 246 of file compile_mpi.c.
References FOREACH, is_step_clause_copyin, is_step_clause_firstprivate, is_step_clause_nowait, is_step_clause_private, is_step_clause_reduction, is_step_clause_schedule, is_step_clause_shared, is_step_clause_threadprivate, is_step_clause_transformation, MAP_ENTITY_INT_MAP, pips_assert, pips_debug, reduction_p(), set_add_element(), set_make(), set_pointer, STEP_CLAUSE, step_clause_reduction, step_clause_tag, step_directive_clauses, and STEP_UNDEF_REDUCE.
Referenced by compile_body().
|
static |
Copyright 2007-2012 Alain Muller, Frederique Silber-Chaussumier.
This file is part of STEP.
The program is distributed under the terms of the GNU General Public License.
Definition at line 20 of file compile_mpi.c.
References concatenate(), and strdup().
Referenced by compile_mpi().
Definition at line 459 of file compile_mpi.c.
References c_module_p(), compare_entities(), compilation_unit_of_module(), ENTITY, entity_declarations, entity_name, FOREACH, fprintf(), gen_nconc(), get_current_module_entity(), get_current_module_name(), make_statement_list, module_name_to_entity(), outliner_statements_referenced_entities(), pips_debug, print_entities(), set_assign_list(), set_belong_p(), set_del_element(), SET_FOREACH, set_free(), set_make(), set_pointer, set_to_sorted_list(), set_undefined, set_undefined_p, statements_to_declarations(), step_created_entity, step_created_symbolic, and top_level_entity_p().
Referenced by compile_mpi().