PIPS
|
Go to the source code of this file.
Macros | |
#define | EXTERNALIZED_CODE_PRAGMA_BEGIN "BEGIN_FPGA_%s" |
#define | EXTERNALIZED_CODE_PRAGMA_END "END_FPGA_%s" |
#define | EXTERNALIZED_CODE_PRAGMA_ANALYZED "ANALYZED_FPGA_%s (%d statements)" |
#define | EXTERNALIZED_CODE_PRAGMA_CALL "CALL_FPGA_%s" |
#define | EXTERNALIZED_FUNCTION_PARAM_NAME "%s_PARAM_%d" |
Stuff for distribution controlization. More... | |
#define | EXTERNALIZED_FUNCTION_PRIVATE_PARAM_NAME "%s_PRIV" |
#define | CONTROL_DATA_COMMON_NAME "CONTROL_DATA" |
#define | FUNCTION_COMMON_NAME "%s_COMMON" |
#define | COMMON_PARAM_NAME "%s_%s" |
#define | DYN_VAR_PARAM_NAME "%s_DV_PARAM" |
#define | REF_VAR_PARAM_NAME "%s_REF_PARAM" |
#define | UNITS_NB_NAME "UNITS_NB" |
#define | UNIT_ID_NAME "UNIT%d" |
#define | FUNCTIONS_NB_NAME "FUNCTIONS_NB" |
#define | FUNCTION_ID_NAME "%s_FUNCTION" |
#define | IN_PARAM_ID_NAME "%s_%s_IN_PARAM" |
#define | OUT_PARAM_ID_NAME "%s_%s_OUT_PARAM" |
#define | CONTROLIZED_STATEMENT_COMMENT "! CONTROLIZED CALL TO %s\n" |
#define | START_RU_MODULE_NAME "START_RU" |
Stuff for START_RU(...) subroutine generation. More... | |
#define | START_RU_PARAM1_NAME "FUNC_ID" |
#define | START_RU_PARAM2_NAME "UNIT_ID" |
#define | WAIT_RU_MODULE_NAME "WAIT_RU" |
Stuff for WAIT_RU(...) subroutine generation. More... | |
#define | WAIT_RU_PARAM1_NAME "FUNC_ID" |
#define | WAIT_RU_PARAM2_NAME "UNIT_ID" |
#define | VARIABLE_NAME_FORMAT "_%"PRIdPTR"_%"PRIdPTR |
Stuff for SEND_PARAM.... More... | |
#define | SEND_PARAMETER_MODULE_NAME "SEND_%s_PARAMETER" |
#define | RECEIVE_PARAMETER_MODULE_NAME "RECEIVE_%s_PARAMETER" |
#define | SEND_ARRAY_PARAM_MODULE_NAME "SEND_%s_%s_PARAMETER" |
#define | RECEIVE_ARRAY_PARAM_MODULE_NAME "RECEIVE_%s_%s_PARAMETER" |
#define | COM_MODULE_PARAM1_NAME "FUNC_ID" |
#define | COM_MODULE_PARAM2_NAME "UNIT_ID" |
#define | COM_MODULE_PARAM3_NAME "PARAM_ID" |
#define | COM_MODULE_PARAM4_NAME "PARAM" |
#define | RU_SEND_FLOAT_PARAM_MODULE_NAME "RU_SEND_FLOAT_PARAM" |
#define | RU_RECEIVE_FLOAT_PARAM_MODULE_NAME "RU_RECEIVE_FLOAT_PARAM" |
Functions | |
string | get_function_name_by_searching_tag (statement stat, const char *tag) |
Return the identified function name of the externalized portion of code by searching comment matching tag. More... | |
string | get_externalizable_function_name (statement stat) |
Return the identified function name of the externalized portion of code by searching comment matching tag EXTERNALIZED_CODE_PRAGMA_BEGIN. More... | |
string | get_externalized_function_name (statement stat) |
Return the identified function name of the externalized portion of code by searching comment matching tag EXTERNALIZED_CODE_PRAGMA_CALL. More... | |
string | get_externalized_and_analyzed_function_name (statement stat, int *stats_nb) |
Return the identified function name of the externalized portion of code by searching comment matching tags EXTERNALIZED_CODE_PRAGMA_ANALYZED Sets the number of statements of this externalizable statement. More... | |
bool | compute_distribution_context (list l_stats, statement module_stat, entity module, hash_table *ht_stats, hash_table *ht_params, hash_table *ht_private, hash_table *ht_out_regions, hash_table *ht_in_regions) |
This function is called during PHRASE distribution. More... | |
bool | compute_distribution_controlization_context (list l_calls, statement module_stat, entity module, hash_table *ht_calls, hash_table *ht_params, hash_table *ht_private, hash_table *ht_out_regions, hash_table *ht_in_regions) |
This function is called during PHRASE distribution controlization. More... | |
void | register_scalar_communications (hash_table *ht_communications, entity function, list l_regions) |
Build an HASHTABLE where keys are VARIABLE and values are HASHTABLE where keys are modules or externalized function (ENTITY) and values are list of regions. More... | |
string | variable_to_string (variable var) |
Return a unique (regarding variable_equal_p(var1,var2)) string representation of a variable var. More... | |
entity | make_start_ru_module (hash_table ht_params, statement *module_statement, int number_of_deployment_units, entity global_common, list l_commons) |
Build and store new module START_RU. More... | |
entity | make_wait_ru_module (statement *module_statement, int number_of_deployment_units, entity global_common, list l_commons) |
Build and store new module WAIT_RU. More... | |
string | get_send_param_module_name (entity function, region reg) |
Return SEND_PARAM module name for function and region. More... | |
string | get_receive_param_module_name (entity function, region reg) |
Return RECEIVE_PARAM module name for function and region. More... | |
list | make_send_scalar_params_modules (hash_table ht_in_communications, int number_of_deployment_units, entity global_common, list l_commons) |
Build and return list of modules used for INPUT communications (SEND_PARAMETERS...) More... | |
list | make_receive_scalar_params_modules (hash_table ht_out_communications, int number_of_deployment_units, entity global_common, list l_commons) |
Build and return list of modules used for OUTPUT communications (RECEIVE_PARAMETERS...) More... | |
list | make_send_array_params_modules (entity function, list l_regions, entity global_common, entity externalized_fonction_common, int number_of_deployment_units) |
Make all SEND_PARAM communication modules for non-scalar regions for a given function. More... | |
list | make_receive_array_params_modules (entity function, list l_regions, entity global_common, entity externalized_fonction_common, int number_of_deployment_units) |
Make all RECEIVE_PARAM communication modules for non-scalar regions for a given function. More... | |
entity | create_private_variable_for_new_module (entity a_variable, const char *new_name, const char *new_module_name, entity module) |
Creates a private variable in specified module. More... | |
entity | create_parameter_for_new_module (variable var, const char *parameter_name, const char *module_name, entity module, int param_nb) |
Create new variable parameter for a newly created module. More... | |
entity | create_integer_parameter_for_new_module (const char *parameter_name, const char *module_name, entity module, int param_nb) |
Create new integer variable parameter for a newly created module. More... | |
void | store_new_module (const char *module_name, entity module, statement module_statement) |
Store (PIPDBM) newly created module module with module_statement as USER_FILE by saving pretty printing. More... | |
string | get_common_param_name (entity variable, entity function) |
string | get_function_id_name (entity function) |
string | get_send_parameter_module_name (variable var) |
string | get_receive_parameter_module_name (variable var) |
string | get_in_param_id_name (entity variable, entity function) |
string | get_out_param_id_name (entity variable, entity function) |
void | compute_region_variables (region reg, list *l_reg_params, list *l_reg_variables) |
Build and return parameters (PHI1,PHI2) and dynamic variables for region reg. More... | |
void | declare_common_variables_in_module (entity common, entity module) |
Creates all the things that need to be created in order to declare common in module (all the variable are created) More... | |
#define COM_MODULE_PARAM1_NAME "FUNC_ID" |
Definition at line 65 of file phrase_distribution.h.
#define COM_MODULE_PARAM2_NAME "UNIT_ID" |
Definition at line 66 of file phrase_distribution.h.
#define COM_MODULE_PARAM3_NAME "PARAM_ID" |
Definition at line 67 of file phrase_distribution.h.
#define COM_MODULE_PARAM4_NAME "PARAM" |
Definition at line 68 of file phrase_distribution.h.
#define COMMON_PARAM_NAME "%s_%s" |
Definition at line 37 of file phrase_distribution.h.
#define CONTROL_DATA_COMMON_NAME "CONTROL_DATA" |
Definition at line 35 of file phrase_distribution.h.
#define CONTROLIZED_STATEMENT_COMMENT "! CONTROLIZED CALL TO %s\n" |
Definition at line 46 of file phrase_distribution.h.
#define DYN_VAR_PARAM_NAME "%s_DV_PARAM" |
Definition at line 38 of file phrase_distribution.h.
#define EXTERNALIZED_CODE_PRAGMA_ANALYZED "ANALYZED_FPGA_%s (%d statements)" |
Definition at line 29 of file phrase_distribution.h.
#define EXTERNALIZED_CODE_PRAGMA_BEGIN "BEGIN_FPGA_%s" |
Definition at line 27 of file phrase_distribution.h.
#define EXTERNALIZED_CODE_PRAGMA_CALL "CALL_FPGA_%s" |
Definition at line 30 of file phrase_distribution.h.
#define EXTERNALIZED_CODE_PRAGMA_END "END_FPGA_%s" |
Definition at line 28 of file phrase_distribution.h.
#define EXTERNALIZED_FUNCTION_PARAM_NAME "%s_PARAM_%d" |
Stuff for distribution controlization.
Definition at line 33 of file phrase_distribution.h.
#define EXTERNALIZED_FUNCTION_PRIVATE_PARAM_NAME "%s_PRIV" |
Definition at line 34 of file phrase_distribution.h.
#define FUNCTION_COMMON_NAME "%s_COMMON" |
Definition at line 36 of file phrase_distribution.h.
#define FUNCTION_ID_NAME "%s_FUNCTION" |
Definition at line 43 of file phrase_distribution.h.
#define FUNCTIONS_NB_NAME "FUNCTIONS_NB" |
Definition at line 42 of file phrase_distribution.h.
#define IN_PARAM_ID_NAME "%s_%s_IN_PARAM" |
Definition at line 44 of file phrase_distribution.h.
#define OUT_PARAM_ID_NAME "%s_%s_OUT_PARAM" |
Definition at line 45 of file phrase_distribution.h.
#define RECEIVE_ARRAY_PARAM_MODULE_NAME "RECEIVE_%s_%s_PARAMETER" |
Definition at line 64 of file phrase_distribution.h.
#define RECEIVE_PARAMETER_MODULE_NAME "RECEIVE_%s_PARAMETER" |
Definition at line 62 of file phrase_distribution.h.
#define REF_VAR_PARAM_NAME "%s_REF_PARAM" |
Definition at line 39 of file phrase_distribution.h.
#define RU_RECEIVE_FLOAT_PARAM_MODULE_NAME "RU_RECEIVE_FLOAT_PARAM" |
Definition at line 71 of file phrase_distribution.h.
#define RU_SEND_FLOAT_PARAM_MODULE_NAME "RU_SEND_FLOAT_PARAM" |
Definition at line 70 of file phrase_distribution.h.
#define SEND_ARRAY_PARAM_MODULE_NAME "SEND_%s_%s_PARAMETER" |
Definition at line 63 of file phrase_distribution.h.
#define SEND_PARAMETER_MODULE_NAME "SEND_%s_PARAMETER" |
Definition at line 61 of file phrase_distribution.h.
#define START_RU_MODULE_NAME "START_RU" |
Stuff for START_RU(...) subroutine generation.
Definition at line 49 of file phrase_distribution.h.
#define START_RU_PARAM1_NAME "FUNC_ID" |
Definition at line 50 of file phrase_distribution.h.
#define START_RU_PARAM2_NAME "UNIT_ID" |
Definition at line 51 of file phrase_distribution.h.
#define UNIT_ID_NAME "UNIT%d" |
Definition at line 41 of file phrase_distribution.h.
#define UNITS_NB_NAME "UNITS_NB" |
Definition at line 40 of file phrase_distribution.h.
#define VARIABLE_NAME_FORMAT "_%"PRIdPTR"_%"PRIdPTR |
Stuff for SEND_PARAM....
(...) and RECEIVE_PARAM....(...) subroutines generation
Definition at line 60 of file phrase_distribution.h.
#define WAIT_RU_MODULE_NAME "WAIT_RU" |
Stuff for WAIT_RU(...) subroutine generation.
Definition at line 54 of file phrase_distribution.h.
#define WAIT_RU_PARAM1_NAME "FUNC_ID" |
Definition at line 55 of file phrase_distribution.h.
#define WAIT_RU_PARAM2_NAME "UNIT_ID" |
Definition at line 56 of file phrase_distribution.h.
bool compute_distribution_context | ( | list | l_stats, |
statement | module_stat, | ||
entity | module, | ||
hash_table * | ht_stats, | ||
hash_table * | ht_params, | ||
hash_table * | ht_private, | ||
hash_table * | ht_in_regions, | ||
hash_table * | ht_out_regions | ||
) |
This function is called during PHRASE distribution.
The goal here is to compute the context of the distribution from a given list of statements (after distribution initialization). Those results are stored in following hashtable:
HT_STATS: This hashtable stores the statement (values) associated to names (keys) of externalized function.
HT_PARAMS: This hashtable stores the list of regions (values) associated to names (keys) of externalized function. Those regions are computed as union of IN and OUT regions of specified statement. If two or more regions refer to the same variable (entity), those regions are transformed into ONE region (which could be converted to a MAY region). This hashtable is used to compute the parameters of specified externalized function.
HT_PRIVATE: This hashtable stores the list of privates regions (values) associated to names (keys) of externalized function. This hashtable is used to compute the private working area in specified externalized function.
HT_IN_REGIONS: This hashtable stores the list of IN regions (values) associated to names (keys) of externalized function. This hashtable is used to compute OUTPUT communication after externalized function execution.
HT_OUT_REGIONS: This hashtable stores the list of OUT regions (values) associated to names (keys) of externalized function. This hashtable is used to compute OUTPUT communication after externalized function execution.
Return true if everything is OK
NB: All lists are sorted using externalized fonction name
lazy init
lazy init
lazy init
lazy init
lazy init
Register new externalized function
l_stats | _stats |
module_stat | odule_stat |
module | odule |
ht_stats | t_stats |
ht_params | t_params |
ht_private | t_private |
ht_in_regions | t_in_regions |
ht_out_regions | t_out_regions |
Definition at line 113 of file distribution_context.c.
References entity_local_name(), get_externalized_and_analyzed_function_name(), hash_defined_p(), hash_pointer, hash_put(), hash_table_make(), internal_compute_distribution_context(), MAP, module, pips_debug, pips_internal_error, pips_user_warning, sequence_statement_containing(), and STATEMENT.
Referenced by comEngine_distribute(), and distribute().
bool compute_distribution_controlization_context | ( | list | l_calls, |
statement | module_stat, | ||
entity | module, | ||
hash_table * | ht_calls, | ||
hash_table * | ht_params, | ||
hash_table * | ht_private, | ||
hash_table * | ht_in_regions, | ||
hash_table * | ht_out_regions | ||
) |
This function is called during PHRASE distribution controlization.
The goal here is to compute the context of the distribution from a given list of call statements (after distribution). Those results are stored in following hashtable:
HT_CALLS: This hashtable stores the list of call statements (values) associated to entity representing the external function (keys). This is a list because a same function can be called from multiple points of original program
HT_PARAMS: This hashtable stores the list of regions (values) associated to entity representing the external function (keys). Those regions are computed as union of IN and OUT regions of specified statement. If two or more regions refer to the same variable (entity), those regions are transformed into ONE region (which could be converted to a MAY region). This hashtable is used to compute the parameters of specified externalized function.
HT_PRIVATE: This hashtable stores the list of privates regions (values) associated to entity representing the external function (keys). This hashtable is used to compute the private working area in specified externalized function.
HT_IN_REGIONS: This hashtable stores the list of IN regions (values) associated to entity representing the external function (keys). This hashtable is used to compute OUTPUT communication after externalized function execution.
HT_OUT_REGIONS: This hashtable stores the list of OUT regions (values) associated to entity representing the external function (keys). This hashtable is used to compute OUTPUT communication after externalized function execution.
Return true if everything is OK
NB: All lists are sorted using externalized fonction name
lazy init
lazy init
lazy init
lazy init
lazy init
Register new externalized function
This function has NOT been already defined, Register it
This function has already been defined, add this statement to the list
Check that IN and OUT regions match !
NOT IMPLEMENTED Yet !
l_calls | _calls |
module_stat | odule_stat |
module | odule |
ht_calls | t_calls |
ht_params | t_params |
ht_private | t_private |
ht_in_regions | t_in_regions |
ht_out_regions | t_out_regions |
Definition at line 216 of file distribution_context.c.
References CONS, entity_local_name(), get_externalized_function_name(), hash_defined_p(), hash_get(), hash_pointer, hash_put(), hash_table_make(), ifdebug, internal_compute_distribution_context(), MAP, module, module_name_to_entity(), NIL, pips_debug, print_statement(), and STATEMENT.
Referenced by controlize_distribution().
Build and return parameters (PHI1,PHI2) and dynamic variables for region reg.
NOT IMPLEMENTED: suppress unused dynamic variables !!!!
NOT IMPLEMENTED: suppress unused dynamic variables !!!!
An entity in a system that has an undefined storage is necesseraly a PHI entity, not dynamic !!
Definition at line 626 of file phrase_distributor_communication.c.
References Ssysteme::base, CONS, dynamic_area_p(), ENTITY, entity_global_name(), entity_storage, if(), is_storage_ram, NIL, pips_assert, pips_debug, ram_section, region_system, storage_ram, storage_tag, storage_undefined, Svecteur::succ, Svecteur::var, and VECTEUR_NUL_P.
Referenced by make_array_communication_module().
entity create_integer_parameter_for_new_module | ( | const char * | parameter_name, |
const char * | module_name, | ||
entity | module, | ||
int | param_nb | ||
) |
Create new integer variable parameter for a newly created module.
parameter_name | arameter_name |
module_name | odule_name |
module | odule |
param_nb | aram_nb |
Definition at line 126 of file phrase_distributor_control_code.c.
entity create_parameter_for_new_module | ( | variable | var, |
const char * | parameter_name, | ||
const char * | module_name, | ||
entity | module, | ||
int | param_nb | ||
) |
Create new variable parameter for a newly created module.
phrase_distributor_control_code.c
This entity does not exist, we can safely create it
G used to be strdup("")
var | ar |
parameter_name | arameter_name |
module_name | odule_name |
module | odule |
param_nb | aram_nb |
Definition at line 74 of file phrase_distributor_control_code.c.
Referenced by create_integer_parameter_for_new_module().
entity create_private_variable_for_new_module | ( | entity | a_variable, |
const char * | new_name, | ||
const char * | new_module_name, | ||
entity | module | ||
) |
Creates a private variable in specified module.
This entity does not exist, we can safely create it
a_variable | _variable |
new_name | ew_name |
new_module_name | ew_module_name |
module | odule |
Definition at line 586 of file phrase_distributor.c.
Referenced by add_private_variable_to_module().
Creates all the things that need to be created in order to declare common in module (all the variable are created)
Compute the primary variables
We iterate on the primary variables declared in the common and create a new variable mapping the one declared in common
Creates the name for the new variable
Copy type of variable
Create storage for new variable
Copy initial value of variable
Build the new variable
Mark for addition
Add to declarations....
Add those new variable to common layout
common | ommon |
module | odule |
Definition at line 237 of file phrase_distributor_control_code.c.
function | unction |
Definition at line 391 of file phrase_distributor_control_code.c.
Referenced by create_externalized_function_common().
Return the identified function name of the externalized portion of code by searching comment matching tag EXTERNALIZED_CODE_PRAGMA_BEGIN.
stat | tat |
Definition at line 449 of file distribution_context.c.
References EXTERNALIZED_CODE_PRAGMA_BEGIN, and get_function_name_by_searching_tag().
Referenced by identify_statements_to_distribute(), and isolate_code_portion().
Return the identified function name of the externalized portion of code by searching comment matching tags EXTERNALIZED_CODE_PRAGMA_ANALYZED Sets the number of statements of this externalizable statement.
stat | tat |
stats_nb | tats_nb |
Definition at line 470 of file distribution_context.c.
References EXTERNALIZED_CODE_PRAGMA_ANALYZED, gen_nth(), instruction_sequence, instruction_tag, is_instruction_sequence, malloc(), pips_debug, sequence_statements, STATEMENT, statement_comments, statement_instruction, statement_with_empty_comment_p(), and strdup().
Referenced by compute_distribution_context().
Return the identified function name of the externalized portion of code by searching comment matching tag EXTERNALIZED_CODE_PRAGMA_CALL.
stat | tat |
Definition at line 459 of file distribution_context.c.
References EXTERNALIZED_CODE_PRAGMA_CALL, and get_function_name_by_searching_tag().
Referenced by compute_distribution_controlization_context().
function | unction |
Definition at line 367 of file phrase_distributor_control_code.c.
Referenced by controlize_distribution(), and make_global_common_and_initialize().
Return the identified function name of the externalized portion of code by searching comment matching tag.
stat | tat |
tag | ag |
Definition at line 82 of file phrase_distributor.c.
function | unction |
Definition at line 341 of file phrase_distributor_control_code.c.
Referenced by controlize_distribution(), and make_global_common_and_initialize().
function | unction |
Definition at line 354 of file phrase_distributor_control_code.c.
Referenced by controlize_distribution(), and make_global_common_and_initialize().
Return RECEIVE_PARAM module name for function and region.
Definition at line 543 of file phrase_distributor_communication.c.
References asprintf, buffer, entity_local_name(), entity_type, get_receive_parameter_module_name(), RECEIVE_ARRAY_PARAM_MODULE_NAME, region_entity, region_scalar_p, and type_variable.
Referenced by make_array_communication_module().
var | ar |
Definition at line 424 of file phrase_distributor_control_code.c.
Return SEND_PARAM module name for function and region.
Definition at line 525 of file phrase_distributor_communication.c.
References asprintf, buffer, entity_local_name(), entity_type, get_send_parameter_module_name(), region_entity, region_scalar_p, SEND_ARRAY_PARAM_MODULE_NAME, and type_variable.
Referenced by make_array_communication_module().
list make_receive_array_params_modules | ( | entity | function, |
list | l_regions, | ||
entity | global_common, | ||
entity | externalized_fonction_common, | ||
int | number_of_deployment_units | ||
) |
Make all RECEIVE_PARAM communication modules for non-scalar regions for a given function.
function | unction |
l_regions | _regions |
global_common | lobal_common |
externalized_fonction_common | xternalized_fonction_common |
number_of_deployment_units | umber_of_deployment_units |
Definition at line 961 of file phrase_distributor_communication.c.
list make_receive_scalar_params_modules | ( | hash_table | ht_out_communications, |
int | number_of_deployment_units, | ||
entity | global_common, | ||
list | l_commons | ||
) |
Build and return list of modules used for OUTPUT communications (RECEIVE_PARAMETERS...)
ht_out_communications | t_out_communications |
number_of_deployment_units | umber_of_deployment_units |
global_common | lobal_common |
l_commons | _commons |
Definition at line 609 of file phrase_distributor_communication.c.
list make_send_array_params_modules | ( | entity | function, |
list | l_regions, | ||
entity | global_common, | ||
entity | externalized_fonction_common, | ||
int | number_of_deployment_units | ||
) |
Make all SEND_PARAM communication modules for non-scalar regions for a given function.
function | unction |
l_regions | _regions |
global_common | lobal_common |
externalized_fonction_common | xternalized_fonction_common |
number_of_deployment_units | umber_of_deployment_units |
Definition at line 943 of file phrase_distributor_communication.c.
list make_send_scalar_params_modules | ( | hash_table | ht_in_communications, |
int | number_of_deployment_units, | ||
entity | global_common, | ||
list | l_commons | ||
) |
Build and return list of modules used for INPUT communications (SEND_PARAMETERS...)
ht_in_communications | t_in_communications |
number_of_deployment_units | umber_of_deployment_units |
global_common | lobal_common |
l_commons | _commons |
Definition at line 593 of file phrase_distributor_communication.c.
entity make_start_ru_module | ( | hash_table | ht_params, |
statement * | module_statement, | ||
int | number_of_deployment_units, | ||
entity | global_common, | ||
list | l_commons | ||
) |
Build and store new module START_RU.
Create statement module_statement
Build and store new module START_RU.
phrase_distributor_communication.c
Build and store new module START_RU. Create statement module_statement
Declare CONTROL_DATA common to be visible here
Declare commons for all externalized functions to be visible here
Compute the parameters of call function
Processing PARAMS regions
Make the CALL statement
ht_params | t_params |
module_statement | odule_statement |
number_of_deployment_units | umber_of_deployment_units |
global_common | lobal_common |
l_commons | _commons |
Definition at line 71 of file phrase_distributor_communication.c.
entity make_wait_ru_module | ( | statement * | module_statement, |
int | number_of_deployment_units, | ||
entity | global_common, | ||
list | l_commons | ||
) |
Build and store new module WAIT_RU.
Create statement module_statement
void register_scalar_communications | ( | hash_table * | ht_communications, |
entity | function, | ||
list | l_regions | ||
) |
Build an HASHTABLE where keys are VARIABLE and values are HASHTABLE where keys are modules or externalized function (ENTITY) and values are list of regions.
Iterate on all regions of the given list
Get the variable type
Look if this variable is already registered
ht_communications | t_communications |
function | unction |
l_regions | _regions |
Definition at line 538 of file distribution_context.c.
References basic_to_string(), CONS, entity_type, gen_length(), hash_defined_p(), hash_get(), HASH_MAP, hash_pointer, hash_put(), hash_table_make(), hash_update(), MAP, NIL, pips_debug, print_region, REGION, region_entity, region_scalar_p, type_variable, variable_basic, variable_dimensions, and variable_equal_p().
Referenced by controlize_distribution().
Store (PIPDBM) newly created module module with module_statement as USER_FILE by saving pretty printing.
module_name | odule_name |
module | odule |
module_statement | odule_statement |
Definition at line 143 of file phrase_distributor_control_code.c.
Return a unique (regarding variable_equal_p(var1,var2)) string representation of a variable var.
var | ar |
Definition at line 511 of file distribution_context.c.
References basic_to_string(), buffer, concatenate(), DIMENSION, dimension_lower, dimension_upper, expression_integer_value(), FOREACH, intptr_t, strdup(), variable_basic, variable_dimensions, and VARIABLE_NAME_FORMAT.
Referenced by get_receive_parameter_module_name(), and get_send_parameter_module_name().