PIPS
|
#include <stdio.h>
#include <ctype.h>
#include <string.h>
#include "boolean.h"
#include <stdbool.h>
#include <limits.h>
#include "genC.h"
#include "linear.h"
#include "ri.h"
#include "effects.h"
#include "database.h"
#include "misc.h"
#include "text.h"
#include "text-util.h"
#include "ri-util.h"
#include "workspace-util.h"
#include "effects-util.h"
#include "accel-util.h"
#include "effects-generic.h"
#include "effects-simple.h"
#include "pipsdbm.h"
#include "resources.h"
#include "control.h"
#include "conversion.h"
#include "properties.h"
#include "semantics.h"
#include "transformations.h"
#include "c_syntax.h"
#include "effects-convex.h"
#include "complexity_ri.h"
#include "complexity.h"
#include "dg.h"
#include "graph.h"
#include "ricedg.h"
#include "chains.h"
#include "regions_to_loops.h"
#include "task_parallelization.h"
Go to the source code of this file.
Macros | |
#define | SUCCESSORS true |
#define | PREDECESSORS false |
Typedefs | |
typedef dg_arc_label | arc_label |
Instantiation of the dependence graph: More... | |
typedef dg_vertex_label | vertex_label |
#define PREDECESSORS false |
Definition at line 53 of file communication_generation.c.
#define SUCCESSORS true |
Definition at line 52 of file communication_generation.c.
typedef dg_arc_label arc_label |
Instantiation of the dependence graph:
Definition at line 44 of file communication_generation.c.
typedef dg_vertex_label vertex_label |
Definition at line 45 of file communication_generation.c.
Definition at line 164 of file communication_generation.c.
References com_declarations_to_add, CONS, entity_empty_label(), FOREACH, gen_length(), gen_nconc(), get_current_module_entity(), io_entity_p(), make_block_statement(), make_continue_statement(), NIL, region_entity, region_to_com_nest(), replace_indices_region_com(), STATEMENT, statement_undefined_p, and stdin_entity_p().
Referenced by communications_construction(), gen_mpi_send_recv(), gen_recv_communications(), gen_send_communications(), and hierarchical_com().
void communications_construction | ( | graph | tg, |
statement | stmt, | ||
persistant_statement_to_cluster | st_to_cluster, | ||
int | kp | ||
) |
tg | g |
stmt | tmt |
st_to_cluster | t_to_cluster |
kp | p |
Definition at line 337 of file communication_generation.c.
References apply_persistant_statement_to_cluster(), bound_persistant_statement_to_cluster_p(), CAR, com_call(), CONS, empty_comments, empty_extensions(), FOREACH, gen_consistent_p(), gen_length(), gen_recv_communications(), gen_send_communications(), graph_vertices, instruction_block, instruction_tag, instruction_test, is_instruction_block, is_instruction_loop, is_instruction_test, loop_body, make_instruction_sequence(), make_sequence(), make_statement(), make_synchronization_none(), MAPL, NIL, PREDECESSORS, STATEMENT, statement_block_p, statement_comments, statement_equal_p(), statement_extensions, statement_instruction, statement_label, statement_loop(), STATEMENT_NUMBER_UNDEFINED, statement_ordering, STATEMENT_ORDERING_UNDEFINED, statement_synchronization, statement_to_vertex(), SUCCESSORS, test_false, test_true, VERTEX, and vertex_to_statement().
Referenced by spire_distributed_unstructured_to_structured().
|
static |
Definition at line 297 of file communication_generation.c.
References apply_persistant_statement_to_cluster(), bound_persistant_statement_to_cluster_p(), com_call(), CONS, empty_comments, empty_extensions(), FOREACH, gen_length(), hierarchical_com(), make_instruction_sequence(), make_sequence(), make_statement(), make_synchronization_none(), NBCLUSTERS, NIL, PREDECESSORS, predecessors(), STATEMENT, statement_comments, statement_extensions, statement_instruction, statement_label, STATEMENT_NUMBER_UNDEFINED, statement_ordering, STATEMENT_ORDERING_UNDEFINED, statement_synchronization, and transfer_regions().
Referenced by communications_construction().
|
static |
Definition at line 240 of file communication_generation.c.
References apply_persistant_statement_to_cluster(), bound_persistant_statement_to_cluster_p(), com_call(), CONS, empty_comments, empty_extensions(), FOREACH, gen_length(), gen_nreverse(), hierarchical_com(), make_instruction_sequence(), make_sequence(), make_statement(), make_synchronization_none(), NBCLUSTERS, NIL, STATEMENT, statement_comments, statement_extensions, statement_instruction, statement_label, STATEMENT_NUMBER_UNDEFINED, statement_ordering, STATEMENT_ORDERING_UNDEFINED, statement_synchronization, SUCCESSORS, successors(), transfer_regions(), and vertex_successors.
Referenced by communications_construction().
Definition at line 199 of file communication_generation.c.
References com_call(), CONS, empty_comments, empty_extensions(), gen_length(), gen_nreverse(), load_statement_in_regions(), load_statement_out_regions(), make_instruction_sequence(), make_sequence(), make_statement(), make_synchronization_none(), NIL, regions_dup(), STATEMENT, statement_comments, statement_extensions, statement_instruction, statement_label, STATEMENT_NUMBER_UNDEFINED, STATEMENT_ORDERING_UNDEFINED, and statement_synchronization.
Referenced by gen_recv_communications(), and gen_send_communications().
Definition at line 55 of file communication_generation.c.
References CONS, empty_comments, entity_undefined, exp, EXPRESSION, gen_full_copy_list(), gen_nreverse(), i2a(), is_basic_int, make_call_statement(), make_constant_entity(), make_entity_expression(), make_reference(), NIL, pips_assert, RECV_FUNCTION_NAME, reference_to_expression(), SEND_FUNCTION_NAME, and statement_consistent_p().
Referenced by Psysteme_to_loop_nest().
Definition at line 281 of file communication_generation.c.
References CONS, FOREACH, gen_occurences(), graph_vertices, NIL, STATEMENT, statement_equal_p(), SUCCESSOR, successor_vertex, VERTEX, vertex_successors, and vertex_to_statement().
Referenced by debug_unstructured(), gen_recv_communications(), reduce_sequence(), and replace_control_with_unstructured().
|
static |
Definition at line 69 of file communication_generation.c.
References algorithm_row_echelon_generic(), DIVIDE_OPERATOR_NAME, entity_intrinsic(), make_com_loopbody(), pips_assert, statement_consistent_p(), and systeme_to_loop_nest().
Referenced by region_to_com_nest().
Returns the entity corresponding to the global name.
static entity global_name_to_entity( const char* package, const char* name ) { return gen_find_tabulated(concatenate(package, MODULE_SEP_STRING, name, NULL), entity_domain); }
Definition at line 84 of file communication_generation.c.
References base, base_add_variable(), BASE_NULLE, base_to_list(), effect_any_reference, entity_type, expression_syntax, FOREACH, pips_assert, pips_internal_error, Psysteme_to_loop_nest(), ref, reference_indices, reference_variable, region_system, statement_consistent_p(), statement_undefined, syntax_reference, and type_variable_p.
Referenced by com_call().
This function is in charge of replacing the PHI entity of the region by generated indices.
PHI values has no correspondance in the code. Therefore we have to create actual indices and replace them in the region in order for the rest to be build using the right entities.
Definition at line 111 of file communication_generation.c.
References base_to_list(), CONS, current_offset_of_area(), dynamic_area, DYNAMIC_AREA_LOCAL_NAME, effect_any_reference, ENDP, ENTITY, entity_name, entity_storage, entity_to_expression(), exp, EXPRESSION, expression_syntax, FindEntity(), FOREACH, gen_copy_seq(), gen_full_copy_list(), gen_length(), gen_nreverse(), gen_remove_once(), make_entity_copy_with_new_name(), make_ram(), make_storage_ram(), module, module_local_name(), NIL, pips_assert, ref, reference_indices, reference_variable, region_consistent_p(), region_system, sc_list_variables_rename(), and syntax_reference.
Referenced by com_call().
Definition at line 229 of file communication_generation.c.
References CONS, FOREACH, gen_occurences(), NIL, STATEMENT, SUCCESSOR, successor_vertex, and vertex_to_statement().
Referenced by debug_unstructured(), fs_filter(), gen_send_communications(), if_conversion_compact_stats(), quick_privatize_graph(), quick_privatize_loop(), reduce_sequence(), remove_dependances_from_successors(), replace_control_with_unstructured(), some_conflicts_between(), and statements_to_successors().
Definition at line 191 of file communication_generation.c.
References load_statement_in_regions(), load_statement_out_regions(), regions_dup(), RegionsIntersection(), and w_r_combinable_p().
Referenced by gen_recv_communications(), and gen_send_communications().