PIPS
|
Go to the source code of this file.
Data Structures | |
struct | annotation |
struct | cluster |
Macros | |
#define | MPI_COMM_WORLD_STRING "MPI_COMM_WORLD" |
#define | MPI_GENERATION_NBR_CLUSTER "MPI_NBR_CLUSTER" |
#define | MPI_GENERATION_PREFIX "MPI_DUPLICATE_VARIABLE_PREFIX" |
#define | MPI_GENERATION_PRIVATE_VARIABLES_LIST "MPI_PRIVATE_VARIABLES_LIST" |
#define | MPI_GENERATION_PRIVATE_PARAMETER "MPI_PRIVATE_PARAMETER" |
#define | COMMENT_VARIABLE_REPLICATION " Generated by Pass VARIABLE_REPLICATION\n" |
#define | COMMENT_COPY_VARIABLE " Generated by Pass COPY_VARIABLE\n" |
#define | COMMENT_MPI_CONVERSION " Generated by Pass MPI_CONVERSION\n" |
Typedefs | |
typedef dg_arc_label | arc_label |
Warning! Do not modify this file that is automatically generated! More... | |
typedef dg_vertex_label | vertex_label |
Variables | |
int | NBCLUSTERS |
cproto-generated files More... | |
int | MEMORY_SIZE |
string | INSTRUMENTED_FILE |
gen_array_t | annotations |
Global variables. More... | |
gen_array_t | clusters |
graph | kdg |
HBDSC.c. More... | |
graph | ddg |
statement | return_st |
persistant_statement_to_cluster | stmt_to_cluster |
list | com_declarations_to_add |
spire_generation.c More... | |
#define COMMENT_COPY_VARIABLE " Generated by Pass COPY_VARIABLE\n" |
Definition at line 47 of file task_parallelization.h.
#define COMMENT_MPI_CONVERSION " Generated by Pass MPI_CONVERSION\n" |
Definition at line 48 of file task_parallelization.h.
#define COMMENT_VARIABLE_REPLICATION " Generated by Pass VARIABLE_REPLICATION\n" |
Definition at line 46 of file task_parallelization.h.
#define MPI_COMM_WORLD_STRING "MPI_COMM_WORLD" |
Definition at line 38 of file task_parallelization.h.
#define MPI_GENERATION_NBR_CLUSTER "MPI_NBR_CLUSTER" |
Definition at line 40 of file task_parallelization.h.
#define MPI_GENERATION_PREFIX "MPI_DUPLICATE_VARIABLE_PREFIX" |
Definition at line 41 of file task_parallelization.h.
#define MPI_GENERATION_PRIVATE_PARAMETER "MPI_PRIVATE_PARAMETER" |
Definition at line 44 of file task_parallelization.h.
#define MPI_GENERATION_PRIVATE_VARIABLES_LIST "MPI_PRIVATE_VARIABLES_LIST" |
Definition at line 43 of file task_parallelization.h.
typedef dg_arc_label arc_label |
Warning! Do not modify this file that is automatically generated!
Modify src/Libs/task_parallelization/task_parallelization-local.h instead, to add your own modifications. header file built by cproto task_parallelization-local.h Instantiation of the dependence graph:
Definition at line 15 of file task_parallelization.h.
typedef dg_vertex_label vertex_label |
Definition at line 16 of file task_parallelization.h.
ready_st | eady_st |
cl_p | l_p |
order | rder |
Definition at line 100 of file BDSC.c.
References annotations, bound_persistant_statement_to_cluster_p(), annotation::cluster, clusters, annotation::data, cluster::data, annotation::edge_cost, extend_persistant_statement_to_cluster(), FOREACH, gen_array_addto(), gen_array_item(), gen_length(), graph_vertices, kdg, malloc(), annotation::order_sched, r_w_combinable_p(), regions_dup(), RegionsMustUnion(), annotation::scheduled, statement_equal_p(), statement_ordering, statement_to_vertex(), stmt_to_cluster, SUCCESSOR, successor_vertex, annotation::task_time, cluster::time, annotation::tlevel, update_persistant_statement_to_cluster(), update_priority_values(), VERTEX, vertex_successors, and vertex_to_statement().
Referenced by BDSC(), DSC(), DSRW(), find_cluster(), hierarchical_schedule(), and zeroing_multiple_edges().
canf instruction should be scheduled in the master cluster (by convention 0)
f(get_bool_property("BDSC_DISTRIBUTED_MEMORY")) zeroing_p = zeroing_multiple_edges(ready_task, order,M); function Not validated else
seq | eq |
ordering | rdering |
Definition at line 535 of file BDSC.c.
References allocate_task_to_cluster(), annotations, bottom_level(), call_function, annotation::cluster, CONS, declaration_statement_p(), DSRW(), ENTITY_FSCANF_P, ENTITY_ISOC99_FSCANF_P, ENTITY_ISOC99_SCANF_P, ENTITY_ISOC99_SSCANF_P, ENTITY_SCANF_P, ENTITY_SSCANF_P, f(), find_cluster(), FOREACH, gen_array_free(), gen_array_item(), gen_length(), gen_remove_once(), initialization_clusters(), kdg, min_start_time::min_tau, NIL, priorities(), ready_node(), schedule_failsafe(), select_task_with_highest_priority(), sequence_statements, STATEMENT, statement_call(), statement_call_p(), statement_ordering, statement_undefined, statement_undefined_p, tlevel_decrease(), top_level(), and update_parallel_task().
Referenced by hierarchical_schedule().
_Bool bdsc_code_instrumentation | ( | char * | module_name | ) |
The proper effect to detect the I/O operations:
omplexities (task processing time)
irst step is to cumulate dependences hierarchically (between sequences) on granularities : loop, test and simple instruction
Reorder the module, because new statements have been generated.
module_name | odule_name |
Definition at line 141 of file instrumentation.c.
References db_get_memory_resource(), DB_PUT_MEMORY_RESOURCE, declaration_statement_p(), edge_cost_polynome(), FOREACH, free_value_mappings(), gen_consistent_p(), get_current_module_entity(), graph_vertices, init_convex_rw_prettyprint(), kdg, module_name(), module_name_to_entity(), module_reorder(), module_to_value_mappings(), reset_complexity_map(), reset_cumulated_rw_effects(), reset_current_module_entity(), reset_current_module_statement(), reset_ordering_to_statement(), reset_precondition_map(), reset_proper_rw_effects(), reset_rw_effects(), reset_transformer_map(), set_complexity_map(), set_cumulated_rw_effects(), set_current_module_entity(), set_current_module_statement(), set_methods_for_convex_effects(), set_ordering_to_statement(), set_precondition_map(), set_proper_rw_effects(), set_rw_effects(), set_transformer_map(), statement_to_vertex(), strdup(), SUCCESSOR, successor_vertex, task_time_polynome(), VERTEX, vertex_successors, and vertex_to_statement().
void bottom_level | ( | graph | dg, |
gen_array_t | annotations | ||
) |
Second parameter is the bottom level (latest start time) for each node.
dg | g |
annotations | nnotations |
Definition at line 223 of file cost_model.c.
References annotations, annotation::blevel, dg, annotation::edge_cost, FOREACH, gen_array_addto(), gen_array_item(), graph_vertices, level, max, statement_equal_p(), statement_ordering, SUCCESSOR, successor_vertex, annotation::task_time, VERTEX, vertex_successors, and vertex_to_statement().
Referenced by BDSC(), and DSC().
void close_parallel_task_mapping | ( | void | ) |
void cluster_stage_spire_generation | ( | persistant_statement_to_cluster | stmt_to_cluster, |
graph | tg, | ||
statement | stmt, | ||
int | P | ||
) |
he main function
stmt_to_cluster | tmt_to_cluster |
tg | g |
stmt | tmt |
Definition at line 120 of file spire_generation.c.
References add_declaration_statement_at_beginning(), cluster_stage_spire(), CONS, costly_task(), ENTITY, FOREACH, gen_consistent_p(), gen_free_list(), gen_nreverse(), get_bool_property(), instruction_tag, instruction_test, is_instruction_block, is_instruction_loop, is_instruction_test, LIST, loop_body, make_instruction_sequence(), make_sequence(), NIL, STATEMENT, statement_declarations, statement_instruction, statement_loop(), statement_undefined, stmt_to_cluster, test_false, test_true, and topological_sort().
Referenced by cluster_stage_spire(), spire_distributed_unstructured_to_structured(), and spire_shared_unstructured_to_structured().
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().
bool copy_value_of_write | ( | const char * | module_name | ) |
Reorder the module, because some statements have been added. Well, the order on the remaining statements should be the same, but by reordering the statements, the number are consecutive. Just for pretty print... :-)
module_name | odule_name |
Definition at line 542 of file copy_value_of_write.c.
References copy_write_statement(), db_get_memory_resource(), DB_PUT_MEMORY_RESOURCE, debug_off, debug_on, gen_recurse, gen_true(), get_current_module_statement(), get_parallel_task_mapping(), module_name(), module_name_to_entity(), module_reorder(), module_statement, pips_assert, pips_debug, reset_cumulated_rw_effects(), reset_current_module_entity(), reset_current_module_statement(), reset_ordering_to_statement(), reset_parallel_task_mapping(), reset_proper_rw_effects(), set_cumulated_rw_effects(), set_current_module_entity(), set_current_module_statement(), set_ordering_to_statement(), set_parallel_task_mapping(), set_proper_rw_effects(), statement_consistent_p(), statement_domain, strdup(), and unspaghettify_statement().
bool copy_value_of_write_with_cumulated_regions | ( | const char * | module_name | ) |
PIPS pass.
Reorder the module, because some statements have been added. Well, the order on the remaining statements should be the same, but by reordering the statements, the number are consecutive. Just for pretty print... :-)
module_name | odule_name |
Definition at line 806 of file copy_value_of_write.c.
References copy_write_statement_with_cumulated_regions(), db_get_memory_resource(), DB_PUT_MEMORY_RESOURCE, debug_off, debug_on, get_current_module_statement(), module_name(), module_name_to_entity(), module_reorder(), module_statement, pips_assert, pips_debug, reset_cumulated_rw_effects(), reset_current_module_entity(), reset_current_module_statement(), reset_live_out_regions(), reset_ordering_to_statement(), reset_parallel_task_mapping(), reset_proper_rw_effects(), set_cumulated_rw_effects(), set_current_module_entity(), set_current_module_statement(), set_live_out_regions(), set_ordering_to_statement(), set_parallel_task_mapping(), set_proper_rw_effects(), statement_consistent_p(), strdup(), and unspaghettify_statement().
_Bool costly_task | ( | statement | st | ) |
st | t |
Definition at line 52 of file cost_model.c.
References CAR, instruction_block, instruction_tag, instruction_test, is_instruction_block, is_instruction_call, is_instruction_forloop, is_instruction_loop, is_instruction_test, is_instruction_whileloop, MAPL, STATEMENT, statement_call(), statement_contains_user_call_p(), statement_instruction, test_false, test_true, and user_call_p().
Referenced by cluster_stage_spire(), cluster_stage_spire_generation(), hierarchical_schedule(), and hierarchical_schedule_step().
seq | eq |
ordering | rdering |
Definition at line 623 of file BDSC.c.
References allocate_task_to_cluster(), annotations, bottom_level(), annotation::cluster, clusters, CONS, cluster::data, DSRW(), FOREACH, gen_array_addto(), gen_array_free(), gen_array_item(), gen_length(), gen_remove_once(), get_bool_property(), kdg, malloc(), min_start_time::min_tau, NIL, priorities(), ready_node(), schedule_failsafe(), select_task_with_highest_priority(), sequence_statements, STATEMENT, statement_ordering, statement_undefined, statement_undefined_p, cluster::time, tlevel_decrease(), top_level(), update_parallel_task(), and zeroing_multiple_edges().
Referenced by hierarchical_schedule().
_Bool dsc_code_parallelization | ( | char * | module_name | ) |
he main function for performing the hierarchical scheduling (scheduled SDG) using DSC and generating SPIRE
The proper effect to detect the I/O operations:
omplexities (task processing time)
roperties to set the parameters of BDSC
ost model generation
SC-based top-down hierarchical scheduling
Reorder the module, because new statements have been generated.
module_name | odule_name |
Definition at line 473 of file HBDSC.c.
References annotations, clusters, db_get_memory_resource(), DB_PUT_MEMORY_RESOURCE, free_value_mappings(), gen_array_free(), gen_array_make(), generic_effects_reset_all_methods(), get_bool_property(), get_current_module_entity(), get_string_property(), hierarchical_schedule(), init_convex_rw_prettyprint(), initialization(), INSTRUMENTED_FILE, kdg, make_persistant_statement_to_cluster(), MEMORY_SIZE, module_name(), module_name_to_entity(), module_reorder(), module_to_value_mappings(), NBCLUSTERS, parse_instrumented_file(), reset_complexity_map(), reset_cumulated_rw_effects(), reset_current_module_entity(), reset_current_module_statement(), reset_in_effects(), reset_ordering_to_statement(), reset_out_effects(), reset_precondition_map(), reset_proper_rw_effects(), reset_rw_effects(), reset_transformer_map(), set_bool_property(), set_complexity_map(), set_cumulated_rw_effects(), set_current_module_entity(), set_current_module_statement(), set_in_effects(), set_methods_for_convex_effects(), set_ordering_to_statement(), set_out_effects(), set_precondition_map(), set_proper_rw_effects(), set_rw_effects(), set_transformer_map(), stmt_to_cluster, and strdup().
s1 | 1 |
s2 | 2 |
Definition at line 147 of file cost_model.c.
References FOREACH, load_statement_local_regions(), polynome_add(), POLYNOME_NUL, polynomial_to_numerical(), REGION, region_enumerate(), regions_dup(), regions_read_regions(), regions_write_regions(), RegionsIntersection(), s1, and w_r_combinable_p().
Referenced by initialization().
bool eliminate_original_variables | ( | const char * | module_name | ) |
eliminate_original_variables.c
eliminate_original_variables.c
Reorder the module, because some statements have been added. Well, the order on the remaining statements should be the same, but by reordering the statements, the number are consecutive. Just for pretty print... :-)
module_name | odule_name |
Definition at line 474 of file eliminate_original_variables.c.
References db_get_memory_resource(), DB_PUT_MEMORY_RESOURCE, debug_off, debug_on, get_current_module_entity(), get_current_module_statement(), make_eliminate_original_variables(), module, module_name(), module_name_to_entity(), module_reorder(), module_statement, pips_assert, pips_debug, reset_current_module_entity(), reset_current_module_statement(), reset_ordering_to_statement(), reset_parallel_task_mapping(), set_current_module_entity(), set_current_module_statement(), set_ordering_to_statement(), set_parallel_task_mapping(), statement_consistent_p(), and strdup().
void error_reset_parallel_task_mapping | ( | void | ) |
statement_task get_parallel_task_mapping | ( | void | ) |
Referenced by copy_value_of_write(), and task_mapping().
_Bool hbdsc_parallelization | ( | char * | module_name | ) |
he main function for performing the hierarchical scheduling (scheduled SDG) using BDSC and generating the graph (unstructured) BDSC-based top-down hierarchical scheduling
The proper effect to detect the I/O operations:
omplexities (task processing time)
roperties to set the parameters of BDSC
ost model generation
module_name | odule_name |
Definition at line 396 of file HBDSC.c.
References annotations, clusters, concatenate(), db_get_current_workspace_directory(), db_get_memory_resource(), DB_PUT_MEMORY_RESOURCE, fprintf(), free(), free_value_mappings(), gen_array_full_free(), gen_array_make(), gen_consistent_p(), generic_effects_reset_all_methods(), get_bool_property(), get_current_module_entity(), get_int_property(), get_string_property(), hierarchical_schedule(), init_convex_rw_prettyprint(), initialization(), initialization_clusters(), INSTRUMENTED_FILE, kdg, make_persistant_statement_to_cluster(), MEMORY_SIZE, module_name(), module_name_to_entity(), module_to_value_mappings(), NBCLUSTERS, parse_instrumented_file(), print_SDGs(), reset_complexity_map(), reset_cumulated_rw_effects(), reset_current_module_entity(), reset_current_module_statement(), reset_in_effects(), reset_ordering_to_statement(), reset_out_effects(), reset_precondition_map(), reset_proper_rw_effects(), reset_rw_effects(), reset_transformer_map(), safe_fclose(), safe_fopen(), set_bool_property(), set_complexity_map(), set_cumulated_rw_effects(), set_current_module_entity(), set_current_module_statement(), set_in_effects(), set_methods_for_convex_effects(), set_ordering_to_statement(), set_out_effects(), set_precondition_map(), set_proper_rw_effects(), set_rw_effects(), set_transformer_map(), stmt_to_cluster, and strdup().
void init_parallel_task_mapping | ( | void | ) |
void initialization | ( | graph | dg, |
gen_array_t | annotations | ||
) |
dg | g |
annotations | nnotations |
Definition at line 267 of file cost_model.c.
References annotations, annotation::cluster, annotation::data, dg, edge_cost(), annotation::edge_cost, FOREACH, gen_array_addto(), gen_array_make(), gen_length(), get_int_property(), graph_vertices, malloc(), annotation::nbclusters, annotation::order_sched, annotation::scheduled, statement_ordering, SUCCESSOR, successor_vertex, task_time(), annotation::task_time, used_data(), VERTEX, vertex_successors, vertex_to_statement(), and x.
Referenced by dsc_code_parallelization(), hbdsc_parallelization(), and make_unstructured_from_loop().
Referenced by assign_statement_task_mapping(), copy_n_reference(), copy_n_statement(), copy_write_statement(), copy_write_statement_with_cumulated_regions(), ctx_set_statement_work_on(), make_declaration_replication(), and prepare_context().
bool mpi_conversion | ( | const char * | module_name | ) |
Reorder the module, because some statements have been added. Well, the order on the remaining statements should be the same, but by reordering the statements, the number are consecutive. Just for pretty print... :-)
module_name | odule_name |
Definition at line 1989 of file mpi_conversion.c.
References db_get_memory_resource(), DB_PUT_MEMORY_RESOURCE, debug_off, debug_on, get_current_module_entity(), get_current_module_statement(), make_mpi_conversion(), module, module_name(), module_name_to_entity(), module_reorder(), module_statement, pips_assert, pips_debug, reset_current_module_entity(), reset_current_module_statement(), reset_ordering_to_statement(), reset_parallel_task_mapping(), set_current_module_entity(), set_current_module_statement(), set_ordering_to_statement(), set_parallel_task_mapping(), statement_consistent_p(), strdup(), and unspaghettify_statement().
_Bool mpi_task_generation | ( | char * | module_name | ) |
module_name | odule_name |
Definition at line 348 of file mpi_generation.c.
References copy_statement(), db_get_memory_resource(), DB_PUT_MEMORY_RESOURCE, gen_consistent_p(), gen_flat_mpi(), init_stmt, local_name_to_top_level_entity(), module, module_name(), module_name_to_entity(), module_reorder(), mpi_finalize(), mpi_initialize(), reset_current_module_entity(), reset_current_module_statement(), reset_ordering_to_statement(), set_current_module_entity(), set_current_module_statement(), and set_ordering_to_statement().
_Bool openmp_task_generation | ( | char * | module_name | ) |
module_name | odule_name |
Definition at line 160 of file openmp_generation.c.
References copy_statement(), db_get_memory_resource(), DB_PUT_MEMORY_RESOURCE, gen_omp_parallel(), gen_openmp(), insert_statement(), module_name(), module_name_to_entity(), module_reorder(), omp_parallel, reset_current_module_entity(), reset_current_module_statement(), reset_ordering_to_statement(), return_st, set_current_module_entity(), set_current_module_statement(), set_ordering_to_statement(), and statement_undefined_p.
bool parallel_task_mapping_undefined_p | ( | void | ) |
void parse_instrumented_file | ( | char * | file_name, |
graph | dg, | ||
gen_array_t | annotations | ||
) |
file_name | ile_name |
dg | g |
annotations | nnotations |
Definition at line 296 of file cost_model.c.
References annotations, dg, annotation::edge_cost, file_name, FOREACH, gen_array_addto(), gen_array_item(), gen_array_make(), graph_vertices, malloc(), statement_ordering, statement_to_vertex(), SUCCESSOR, successor_vertex, annotation::task_time, VERTEX, vertex_successors, and vertex_to_statement().
Referenced by dsc_code_parallelization(), and hbdsc_parallelization().
module_stmt | odule_stmt |
Definition at line 455 of file SDG.c.
References clean_sdg(), gen_null(), gen_recurse, sdg, sequence_dg(), and statement_domain.
Referenced by sequence_dependence_graph().
double polynomial_to_numerical | ( | Ppolynome | poly_amount | ) |
if polynomial is not a constant monomial, we use
an heuristic to map it into a numerical constant take the higher degree monomial and decide upon its coefficient
poly_amount | oly_amount |
Definition at line 93 of file cost_model.c.
References int, monome_coeff, monome_term, polynome_max_degree(), polynome_monome, POLYNOME_NUL_P, polynome_succ, POLYNOME_UNDEFINED_P, and vect_sum().
Referenced by edge_cost(), size_of_regions(), and task_time().
void print_SDGs | ( | statement | stmt, |
graph | tg, | ||
FILE * | ftg, | ||
gen_array_t | annotations | ||
) |
stmt | tmt |
tg | g |
ftg | tg |
annotations | nnotations |
Definition at line 520 of file SDG.c.
References annotations, annotation::cluster, count, annotation::edge_cost, FOREACH, forloop_body, fprintf(), gen_array_item(), gen_array_nitems(), graph_vertices, instruction_tag, instruction_test, intptr_t, is_instruction_block, is_instruction_forloop, is_instruction_loop, is_instruction_test, is_instruction_whileloop, loop_body, print_sdg_task(), sequence_statements, STATEMENT, statement_equal_p(), statement_forloop(), statement_instruction, statement_loop(), statement_ordering, statement_sequence(), statement_whileloop(), SUCCESSOR, successor_vertex, test_false, test_true, VERTEX, vertex_successors, vertex_to_statement(), and whileloop_body.
Referenced by hbdsc_parallelization(), and sequence_dependence_graph().
void print_task | ( | task | t | ) |
Pass: TASK_MAPPING Debug mode: MPI_GENERATION_DEBUG_LEVEL Resource generated:
Definition at line 73 of file task_mapping.c.
References fprintf(), task_domain, task_domain_number, task_to_string(), and task_undefined_p.
Referenced by assign_statement_task_mapping(), and print_ctx().
void priorities | ( | gen_array_t | annotations | ) |
annotations | nnotations |
Definition at line 253 of file cost_model.c.
References annotations, annotation::blevel, gen_array_addto(), gen_array_item(), gen_array_nitems(), annotation::prio, and annotation::tlevel.
Referenced by BDSC(), and DSC().
void reset_parallel_task_mapping | ( | void | ) |
Referenced by copy_value_of_write(), copy_value_of_write_with_cumulated_regions(), eliminate_original_variables(), mpi_conversion(), task_mapping(), and variable_replication().
_Bool sequence_dependence_graph | ( | char * | module_name | ) |
The proper effect to detect the I/O operations:
dg contains the original dependences before clustering and scheduling, it is saved to not make a side effect on the original dg when constructing the SDG
module_name | odule_name |
Definition at line 593 of file SDG.c.
References concatenate(), copy_graph(), db_get_current_workspace_directory(), db_get_memory_resource(), DB_PUT_MEMORY_RESOURCE, ddg, fprintf(), free(), free_value_mappings(), gen_array_make(), generic_effects_reset_all_methods(), get_current_module_entity(), init_convex_rw_prettyprint(), module_name(), module_name_to_entity(), module_to_value_mappings(), partitioning_sdg(), print_SDGs(), reset_cumulated_rw_effects(), reset_current_module_entity(), reset_current_module_statement(), reset_in_effects(), reset_ordering_to_statement(), reset_out_effects(), reset_precondition_map(), reset_proper_rw_effects(), reset_rw_effects(), reset_transformer_map(), safe_fclose(), safe_fopen(), sdg, set_cumulated_rw_effects(), set_current_module_entity(), set_current_module_statement(), set_in_effects(), set_methods_for_convex_effects(), set_ordering_to_statement(), set_out_effects(), set_precondition_map(), set_proper_rw_effects(), set_rw_effects(), set_transformer_map(), and strdup().
void set_parallel_task_mapping | ( | statement_task | ) |
Referenced by copy_value_of_write(), copy_value_of_write_with_cumulated_regions(), eliminate_original_variables(), mpi_conversion(), and variable_replication().
double size_of_regions | ( | list | l_data | ) |
l_data | _data |
Definition at line 115 of file cost_model.c.
References entity_type, expression_to_polynome(), FOREACH, int_to_expression(), polynome_add(), polynome_mult(), POLYNOME_NUL, polynomial_to_numerical(), REGION, region_entity, region_enumerate(), SizeOfElements(), type_variable, and variable_basic.
Referenced by MCW(), and transfer_cost().
_Bool spire_distributed_unstructured_to_structured | ( | char * | module_name | ) |
The proper effect to detect the I/O operations:
Reorder the module, because new statements have been generated.
module_name | odule_name |
Definition at line 192 of file spire_generation.c.
References add_declaration_statement(), cluster_stage_spire_generation(), com_declarations_to_add, communications_construction(), copy_persistant_statement_to_cluster(), copy_statement(), db_get_memory_resource(), DB_PUT_MEMORY_RESOURCE, entity_domain, entity_local_name(), FOREACH, free_value_mappings(), gen_clear_tabulated_element(), gen_filter_tabulated(), gen_true(), generic_effects_reset_all_methods(), get_current_module_entity(), get_int_property(), init_convex_rw_prettyprint(), insert_statement(), kdg, MEMORY_SIZE, module_name(), module_name_to_entity(), module_reorder(), module_to_value_mappings(), NBCLUSTERS, NIL, reset_cumulated_rw_effects(), reset_current_module_entity(), reset_current_module_statement(), reset_in_effects(), reset_ordering_to_statement(), reset_out_effects(), reset_precondition_map(), reset_proper_rw_effects(), reset_rw_effects(), reset_transformer_map(), return_st, set_cumulated_rw_effects(), set_current_module_entity(), set_current_module_statement(), set_in_effects(), set_methods_for_convex_effects(), set_ordering_to_statement(), set_out_effects(), set_precondition_map(), set_proper_rw_effects(), set_rw_effects(), set_transformer_map(), statement_undefined_p, stmt_to_cluster, and strdup().
_Bool spire_shared_unstructured_to_structured | ( | char * | module_name | ) |
module_name | odule_name |
Definition at line 163 of file spire_generation.c.
References cluster_stage_spire_generation(), copy_persistant_statement_to_cluster(), copy_statement(), db_get_memory_resource(), DB_PUT_MEMORY_RESOURCE, gen_consistent_p(), get_int_property(), insert_statement(), kdg, MEMORY_SIZE, module_name(), module_name_to_entity(), module_reorder(), NBCLUSTERS, reset_current_module_entity(), reset_current_module_statement(), reset_ordering_to_statement(), return_st, set_current_module_entity(), set_current_module_statement(), set_ordering_to_statement(), statement_undefined_p, stmt_to_cluster, and strdup().
s1 | 1 |
s2 | 2 |
Definition at line 123 of file SDG.c.
References s1, statement_number, and statement_ordering.
Referenced by print_SDGs(), same_level_p(), sequence_dg(), statement_in_sequence_p(), and statement_to_vertex().
Definition at line 131 of file SDG.c.
References graph_vertices, MAP, statement_equal_p(), VERTEX, vertex_to_statement(), and vertex_undefined.
Referenced by sequence_dg().
Referenced by assign_statement_task_mapping(), copy_n_reference(), copy_n_statement(), and copy_write_statement_with_cumulated_regions().
double t_level | ( | vertex | v, |
graph | dg, | ||
gen_array_t | annotations | ||
) |
First parameter is the top level (earliest start time) for each node.
intptr_t)
dg | g |
annotations | nnotations |
Definition at line 168 of file cost_model.c.
References annotations, dg, annotation::edge_cost, FOREACH, gen_array_addto(), gen_array_item(), gen_array_size(), graph_vertices, level, malloc(), max, statement_equal_p(), statement_ordering, SUCCESSOR, successor_vertex, annotation::task_time, annotation::tlevel, VERTEX, vertex_successors, and vertex_to_statement().
Referenced by top_level(), and update_priority_values().
bool task_mapping | ( | const char * | module_name | ) |
PIPS pass.
module_name | odule_name |
Definition at line 430 of file task_mapping.c.
References db_get_memory_resource(), DB_PUT_MEMORY_RESOURCE, debug_off, debug_on, get_current_module_entity(), get_current_module_statement(), get_parallel_task_mapping(), init_parallel_task_mapping(), make_task_mapping(), module, module_name(), module_name_to_entity(), module_statement, pips_assert, pips_debug, reset_current_module_entity(), reset_current_module_statement(), reset_parallel_task_mapping(), set_current_module_entity(), set_current_module_statement(), and statement_consistent_p().
pretty_print | retty_print |
Definition at line 84 of file task_mapping.c.
References _intFMT, concatenate(), ENTITY, entity_name, entity_user_name(), FOREACH, pips_debug, strdup(), task_id, task_on_cluster, task_private_data, and task_synchronization.
Referenced by prepare_context(), and print_task().
void top_level | ( | graph | dg, |
gen_array_t | annotations | ||
) |
dg | g |
annotations | nnotations |
Definition at line 211 of file cost_model.c.
References annotations, dg, FOREACH, graph_vertices, t_level(), and VERTEX.
Referenced by BDSC(), and DSC().
stmt | tmt |
Definition at line 192 of file HBDSC.c.
References CAR, CONS, FOREACH, gen_array_addto(), gen_array_free(), gen_array_item(), gen_array_make(), gen_copy_seq(), gen_last(), gen_length(), gen_occurences(), gen_remove_once(), graph_vertices, kdg, LIST, NIL, rebuild_topological_sort(), sequence_statements, STATEMENT, statement_equal_p(), statement_ordering, statement_sequence(), SUCCESSOR, successor_vertex, VERTEX, vertex_successors, and vertex_to_statement().
Referenced by cluster_stage_spire_generation(), and hierarchical_schedule_step().
bool variable_replication | ( | const char * | module_name | ) |
Reorder the module, because some statements have been added. Well, the order on the remaining statements should be the same, but by reordering the statements, the number are consecutive. Just for pretty print... :-)
module_name | odule_name |
Definition at line 148 of file variable_replication.c.
References db_get_memory_resource(), DB_PUT_MEMORY_RESOURCE, debug_off, debug_on, get_current_module_statement(), make_declaration_replication(), make_global_variable_declaration_replication(), module_name(), module_name_to_entity(), module_reorder(), module_statement, pips_assert, pips_debug, reset_current_module_entity(), reset_current_module_statement(), reset_ordering_to_statement(), reset_parallel_task_mapping(), set_current_module_entity(), set_current_module_statement(), set_ordering_to_statement(), set_parallel_task_mapping(), statement_consistent_p(), and strdup().
|
extern |
Global variables.
Definition at line 62 of file SDG.c.
Referenced by allocate_task_to_cluster(), BDSC(), bottom_level(), cancel_schedule(), DSC(), dsc_code_parallelization(), DSRW(), end_idle_clusters(), hbdsc_parallelization(), hierarchical_schedule(), hierarchical_schedule_step(), initialization(), MCW(), move_task_to_cluster(), parse_instrumented_file(), print_sdg_task(), print_SDGs(), priorities(), ready_node(), schedule_failsafe(), select_task_with_highest_priority(), t_level(), tlevel_decrease(), top_level(), update_parallel_task(), update_priority_values(), and zeroing_multiple_edges().
|
extern |
Definition at line 63 of file SDG.c.
Referenced by allocate_task_to_cluster(), critical_path_length(), DSC(), dsc_code_parallelization(), end_idle_clusters(), hbdsc_parallelization(), initialization_clusters(), max_start_time_cluster(), MCW(), min_start_time_cluster(), move_task_to_cluster(), tlevel_decrease(), and zeroing_multiple_edges().
|
extern |
Definition at line 49 of file spire_generation.c.
Referenced by com_call(), and spire_distributed_unstructured_to_structured().
|
extern |
Definition at line 52 of file HBDSC.c.
Referenced by sequence_dependence_graph().
|
extern |
Definition at line 59 of file SDG.c.
Referenced by dsc_code_parallelization(), and hbdsc_parallelization().
|
extern |
Definition at line 52 of file HBDSC.c.
Referenced by allocate_task_to_cluster(), BDSC(), bdsc_code_instrumentation(), DSC(), dsc_code_parallelization(), end_idle_clusters(), hbdsc_parallelization(), MCW(), move_task_to_cluster(), ready_node(), schedule_failsafe(), spire_distributed_unstructured_to_structured(), spire_shared_unstructured_to_structured(), tlevel_decrease(), topological_sort(), update_priority_values(), and zeroing_multiple_edges().
|
extern |
Definition at line 58 of file SDG.c.
Referenced by dsc_code_parallelization(), find_cluster(), hbdsc_parallelization(), spire_distributed_unstructured_to_structured(), spire_shared_unstructured_to_structured(), tlevel_decrease(), and zeroing_multiple_edges().
|
extern |
cproto-generated files
cproto-generated files
Definition at line 57 of file SDG.c.
Referenced by cluster_stage_spire(), dsc_code_parallelization(), gen_recv_communications(), gen_send_communications(), hbdsc_parallelization(), hierarchical_schedule(), initialization_clusters(), rebuild_topological_sort(), spire_distributed_unstructured_to_structured(), and spire_shared_unstructured_to_structured().
|
extern |
Definition at line 53 of file HBDSC.c.
Referenced by gen_omp_parallel(), mpi_finalize(), mpi_initialize(), openmp_task_generation(), rebuild_topological_sort(), spire_distributed_unstructured_to_structured(), and spire_shared_unstructured_to_structured().
|
extern |
Definition at line 56 of file HBDSC.c.
Referenced by allocate_task_to_cluster(), cancel_schedule(), cluster_stage_spire(), cluster_stage_spire_generation(), dsc_code_parallelization(), hbdsc_parallelization(), move_task_to_cluster(), rebuild_topological_sort(), spire_distributed_unstructured_to_structured(), and spire_shared_unstructured_to_structured().