PIPS
|
Go to the source code of this file.
Macros | |
#define | set_undefined ((set)(-16)) |
#define | set_undefined_p(s) ((s)==set_undefined) |
#define | set_equal(s1, s2) set_equal_p(s1,s2) |
#define | SET_MAP(element, code, the_set) |
#define | SET_FOREACH(type_name, the_item, the_set) |
enumerate set elements in their internal order. More... | |
Typedefs | |
typedef struct _set_chunk * | set |
Enumerations | |
enum | set_type { set_string = hash_string , set_int = hash_int , set_pointer = hash_pointer , set_private = hash_private } |
Note: hash_chunk is not included in set_type. More... | |
Functions | |
set | set_generic_make (set_type, hash_equals_t, hash_rank_t) |
what about this replacement? #define SET_MAP(the_item, the_code, the_set) \ { SET_FOREACH(void *, the_item, the_set) the_code; } More... | |
set | set_make (set_type) |
Create an empty set of any type but hash_private. More... | |
set | set_singleton (set_type, const void *) |
create a singleton set of any type but hash_private More... | |
set | set_dup (const set) |
void | set_free (set) |
void | sets_free (set,...) |
Free several sets in one call. More... | |
int | set_size (const set) |
returns the number of items in s. More... | |
int | set_own_allocated_memory (const set) |
set_type | set_get_type (const set) |
return the type of set s More... | |
hash_table | set_private_get_hash_table (const set) |
return the internal hash table of set s More... | |
bool | set_belong_p (const set, const void *) |
bool | list_in_set_p (const list, const set) |
bool | set_equal_p (const set, const set) |
returns whether s1 == s2 More... | |
bool | set_empty_p (const set) |
tell whether set s is empty. More... | |
bool | set_inclusion_p (const set, const set) |
return whether s1 \included s2 More... | |
bool | set_intersection_p (const set, const set) |
returns whether s1 n s2 <> 0 complexity of the intersection More... | |
set | set_clear (set) |
Assign the empty set to s s := {}. More... | |
set | set_assign (set, const set) |
Assign a set with the content of another set. More... | |
set | set_append_list (set, const list) |
add list l items to set s, which is returned. More... | |
set | set_assign_list (set, const list) |
assigns a list contents to a set all duplicated elements are lost More... | |
set | set_add_element (set, const set, const void *) |
set | set_add_elements (set, const set, const void *e,...) |
set | set_union (set, const set, const set) |
set | set_intersection (set, const set, const set) |
set | set_difference (set, const set, const set) |
set | set_del_element (set, const set, const void *) |
set | set_delfree_element (set, const set, const void *) |
May be useful for string sets ... More... | |
void | gen_set_closure_iterate (void(*)(void *, set), set, bool) |
void | gen_set_closure (void(*)(void *, set), set) |
a set-based implementation of gen_closure that does not go twice in the same object. More... | |
string | set_to_string (string, const set, gen_string_func_t) |
return allocated string for set s More... | |
void | set_fprint (FILE *, string, const set, gen_string_func_t) |
print set s to file stream out. More... | |
list | set_to_sorted_list (const set, gen_cmp_func_t) |
list | set_to_list (const set) |
create a list from a set the set is not freed More... | |
#define set_equal | ( | s1, | |
s2 | |||
) | set_equal_p(s1,s2) |
Definition at line 52 of file newgen_set.h.
#define SET_FOREACH | ( | type_name, | |
the_item, | |||
the_set | |||
) |
enumerate set elements in their internal order.
caution, this enumeration is not deterministic!
var_type | is the plain type name (not capitalized). |
var | variable name, unique in scope |
the_set | expression that lead to a set, for instance a variable |
SET_FOREACH(var_type, var, the_set) { instructions; }
note that due to variables which are declared in the current scope:
Definition at line 78 of file newgen_set.h.
#define SET_MAP | ( | element, | |
code, | |||
the_set | |||
) |
Definition at line 54 of file newgen_set.h.
#define set_undefined ((set)(-16)) |
Definition at line 48 of file newgen_set.h.
#define set_undefined_p | ( | s | ) | ((s)==set_undefined) |
Definition at line 49 of file newgen_set.h.
typedef struct _set_chunk* set |
Definition at line 38 of file newgen_set.h.
enum set_type |
Note: hash_chunk is not included in set_type.
Enumerator | |
---|---|
set_string | |
set_int | |
set_pointer | |
set_private |
Definition at line 41 of file newgen_set.h.
a set-based implementation of gen_closure that does not go twice in the same object.
FC 27/10/95.
Definition at line 418 of file set.c.
References gen_set_closure_iterate().
Definition at line 372 of file set.c.
References hash_table_equals_function(), hash_table_rank_function(), seen, set_assign(), set_clear(), set_difference(), set_empty_p(), SET_FOREACH, set_free(), set_generic_make(), set_union(), _set_chunk::table, _set_chunk::type, and x.
Referenced by gen_set_closure().
Definition at line 201 of file set.c.
References FOREACH, and set_belong_p().
Referenced by compute_dead_vertices(), dag_computable_vertices(), freia_dag_optimize(), and opencl_merge_and_compile().
Definition at line 152 of file set.c.
References HASH_MAP, hash_put(), s1, set_belong_p(), set_clear(), and _set_chunk::table.
Referenced by __attribute__(), add_arc_to_pt_map(), add_arc_to_pt_map_(), add_arc_to_simple_pt_map(), add_loop_index_entity(), add_read_resource(), add_resource_to_make_cache(), add_stat_called_user_entities(), add_stat_referenced_entities(), add_statement_declarations(), add_subscript_dependent_arc_to_simple_pt_map(), add_write_resource(), array_formal_parameter_to_stub_points_to(), bootstrap(), callgraph(), check_control_coherency(), check_ref(), collect_images(), compact_list(), compute_dead_vertices(), compute_points_to_gen_set(), compute_points_to_kill_set(), conflict_is_a_real_conflict_p(), copy_from_call(), copy_from_loop(), copy_to_call(), cyclic_graph_to_points_to(), dag_cleanup_other_statements(), dag_computable_vertices(), dag_compute_outputs(), dag_connected_component(), dag_consistency_asserts(), dag_dot(), dag_fix_image_reuse(), dag_split_on_scalars(), dag_statements(), dag_stats(), derived_formal_parameter_to_stub_points_to(), display_linked_control_nodes(), distributable_statement_p(), do_get_declared_entities(), do_get_referenced_entities_on_entity(), do_group_constant_entity(), do_group_statement_constant(), do_linearize_array(), do_prune_arcs(), do_reduction_detection(), do_reduction_propagation(), do_redundant_load_store_elimination(), do_scalar_renaming_in_successors(), do_solve_hardware_constraints_on_nb_proc(), do_solve_hardware_constraints_on_volume(), do_unfolding(), DoInvariantsStatements(), DoRedundantsStatements(), effects_to_dma(), expand_call(), expand_reference(), extract_matching_statements(), fcs_call_flt(), find_covering_reference_path(), find_entities_to_wrap(), fis_call_flt(), fix_loop_index_sign(), flint_initialize_statement_def_use_variables(), freia_allocate_new_images_if_needed(), freia_compute_output_images(), freia_dag_optimize(), freia_spoc_pipeline(), freia_substitute_by_helper_call(), freia_terapix_call(), fsi_seq_flt(), fsi_stmt_flt(), full_copy_pt_map(), full_copy_simple_pt_map(), gen_copy_set(), gen_list_cyclic_p(), gen_may_constant_paths(), gen_may_set(), gen_must_constant_paths(), gen_must_set(), generic_type_depth(), genref_one_statement(), get_loop_locals_and_remove_walker(), get_more_derived_resources(), get_referenced_entities_filtered(), get_statement_matching_types(), get_written_entities(), graph_to_live_writes(), init_statement_equivalence_table(), inline_split_declarations(), interprocedural_mapping(), invariant_vertex_to_invariant_entities(), keep_recv_or_send_referenced_entity(), kill_effects(), kill_may_set(), kill_must_set(), loop_basic_workchunk_to_workchunk(), merge_points_to_set(), migrate_statements(), mppa_helper_args_params(), new_points_to_unstructured(), oi_call_rwt(), opencl_generate_special_kernel_ops(), opencl_merge_and_compile(), opgen_null_location(), outliner_independent_recursively(), pixel_name(), pointer_formal_parameter_to_stub_points_to(), points_to_anywhere(), points_to_anywhere_typed(), points_to_independent_store(), points_to_may_filter(), points_to_must_filter(), points_to_nowhere(), pragma_omp_merge_expr(), propagate_constant_image_to_succs(), Ready_p(), ready_to_be_processed_set(), recursive_functional_type_supporting_entities(), recursive_type_supporting_entities(), recursive_type_supporting_references(), recursive_type_supporting_types(), reduction_rewrite_filter(), region_of_statement(), remove_all_unreachable_controls_of_an_unstructured(), remove_simple_scalar_pointers(), replace_entity_by_expression_entity_walker(), rssp_ref(), sbp_context_add_kernel_task_buffer(), sc_delimiter(), scc_region(), set_add_elements(), set_add_scalars(), set_append_list(), set_append_vertex_statements(), set_glopriv(), set_RT_add_local(), simdize_simple_statements_pass2(), SimplifyInvariantVertex(), SimplifyRedundantVertex(), single_image_assignement_p(), step_add_created_symbolic(), step_directive_to_strings(), step_get_comparable_effects(), step_get_directive_reductions(), transfert_statement(), typedef_formal_parameter_to_stub_points_to(), update_number_to_statement(), update_written_variables(), vertex_in_cycle_aux_p(), vertex_to_chains(), and vertices_to_statements().
The statement list
Analyze in args the variadic arguments that may be after s2:
Since a variadic function in C must have at least 1 non variadic argument (here the s), just skew the varargs analysis:
Release the variadic analyzis:
Definition at line 171 of file set.c.
References s1, and set_add_element().
Referenced by arithmetic_intrinsic_p(), and io_intrinsic_p().
add list l items to set s, which is returned.
s | modified set |
l | provided list |
Definition at line 460 of file set.c.
References FOREACH, and set_add_element().
Referenced by dag_connected_component(), dag_terapix_measures(), freia_dag_optimize(), get_private_entities_walker(), make_string_set_from_prop(), move_ahead(), set_assign_list(), and step_directive_to_strings().
Assign a set with the content of another set.
s1 | the set to write into |
s2 | the set to copy |
If the same set is given twice, nothing is done.
Definition at line 129 of file set.c.
References HASH_MAP, hash_put(), s1, set_clear(), and _set_chunk::table.
Referenced by compute_points_to_binded_set(), copy_from_all_kind_of_loop(), copy_from_block(), copy_from_call(), copy_from_statement(), copy_from_test(), copy_to_all_kind_of_loop(), copy_to_block(), copy_to_call(), copy_to_statement(), copy_to_test(), dag_computable_vertices(), gen_copy_set(), gen_set_closure_iterate(), genref_unstructured(), inout_control(), inout_unstructured(), interprocedural_mapping(), list_assignment_to_points_to(), merge_points_to_set(), new_points_to_unstructured(), points_to_function_projection(), points_to_graph_assign(), set_del_element(), set_delfree_element(), set_difference(), set_union(), and transfert_test().
assigns a list contents to a set all duplicated elements are lost
s | set being assigned to. |
l | list to turn into a set |
Definition at line 474 of file set.c.
References set_append_list(), and set_clear().
Referenced by concat_new_entities(), cyclic_graph_to_points_to(), dag_split_on_scalars(), do_array_expansion(), do_remove_redundant_communications_in_anyloop(), do_simplify_dg(), do_unfolding(), extract_non_conflicting_statements(), freia_spoc_pipeline(), generic_points_to_analysis(), graph_assign_list(), guard_expanded_statement_if_needed(), init_statement_equivalence_table(), is_consummed_by_vertex(), new_points_to_unstructured(), opencl_merge_and_compile(), simdizer_auto_tile(), sort_entities_with_dep(), sort_subsequence(), update_referenced_entities(), user_call_to_points_to_fast_interprocedural(), user_call_to_points_to_interprocedural(), and user_call_to_points_to_interprocedural_binding_set().
Definition at line 194 of file set.c.
References hash_get(), HASH_UNDEFINED_VALUE, and _set_chunk::table.
Referenced by __attribute__(), add_loop_index_entity(), add_stat_called_user_entities(), add_stat_referenced_entities(), add_statement_declarations(), AK_ignore_this_vertex(), all_previous_stats_with_deps_are_computed(), arithmetic_intrinsic_p(), callgraph(), check_control_coherency(), check_private_variables_call_walker(), collect_glopriv_data(), collect_images(), common_ignore_this_vertex(), compact_list(), concat_new_entities(), consistent_points_to_set(), copy_from_call(), copy_from_loop(), CreateIntrinsics(), dag_computable_vertices(), dag_compute_outputs(), dag_connected_component(), dag_consistency_asserts(), dag_dot(), dag_fix_image_reuse(), dagvtx_copy_list_dot(), dagvtx_list_dot(), display_linked_control_nodes(), do_array_expansion(), do_gpu_qualify_pointers(), do_group_statement_constant(), do_linearize_array_manage_callers(), do_loop_expansion(), do_loop_nest_unswitching(), do_reduction_detection(), do_reduction_propagation(), do_redundant_load_store_elimination(), do_resource_usage_check(), do_scalar_renaming_in_successors(), do_solve_hardware_constraints_on_nb_proc(), do_solve_hardware_constraints_on_volume(), DoRedundantsStatements(), effects_to_dma(), expand_call(), expand_expression(), expand_reference(), fcs_call_flt(), find_covering_reference_path(), find_entities_to_wrap(), flint_variable_uninitialize_elsewhere(), freia_allocate_new_images_if_needed(), freia_cleanup_sequence_rec(), freia_compile(), freia_dag_optimize(), freia_migrate_statements(), freia_spoc_pipeline(), freia_substitute_by_helper_call(), freia_terapix_call(), gen_list_cyclic_p(), generic_type_depth(), get_loop_locals_and_remove_walker(), get_more_derived_resources(), glc_call(), glc_cast(), guard_expanded_statement_if_needed(), init_statement_equivalence_table(), inv_entity_filter(), invariant_vertex_to_invariant_entities(), io_intrinsic_p(), keep_recv_or_send_referenced_entity(), list_in_set_p(), make_cache_hit_p(), merge_points_to_set(), move_ahead(), mppa_helper_args_params(), only_minor_statements_in_between(), opencl_merge_and_compile(), pixel_name(), pragma_omp_merge_expr(), print_entity_task_buffers(), propagate_constant_image_to_succs(), Ready_p(), recursive_functional_type_supporting_entities(), recursive_type_supporting_entities(), recursive_type_supporting_references(), recursive_type_supporting_types(), reduction_p(), reductions_rewrite(), remove_all_unreachable_controls_of_an_unstructured(), remove_simple_scalar_pointers(), rename_op(), replace_entity_by_expression_entity_walker(), rice_update_dependence_graph(), rssp_ref(), sc_delimiter(), search_parallel_loops(), set_add_element(), set_glopriv(), set_inclusion_p(), simdize_simple_statements_pass2(), simdizer_auto_tile(), single_image_assignement_p(), sort_subsequence(), statement_clean_declarations_helper(), statement_depends_p(), statements_conflict_p(), terapix_loop_handler(), terapix_loop_optimizer(), terapixify_loop_purge(), terapixify_loops(), update_referenced_entities(), update_SUMMARY_SENDRECV_regions(), vertex_in_cycle_aux_p(), vertex_invariant_p(), vertex_redundant_p(), and vertex_to_chains().
Assign the empty set to s s := {}.
Definition at line 326 of file set.c.
References hash_table_clear(), and _set_chunk::table.
Referenced by check_for_effected_statement(), dag_computable_vertices(), dag_split_on_scalars(), dag_statements(), do_resource_usage_check(), freia_dag_optimize(), freia_terapix_call(), fsi_seq_flt(), gen_set_closure_iterate(), genref_one_statement(), genref_unstructured(), init_one_statement(), init_points_to_analysis(), init_resource_usage_check(), inout_control(), intrinsic_call_to_points_to(), kill_effects(), merge_points_to_set(), new_points_to_unstructured(), opencl_merge_and_compile(), order_condition_to_points_to(), points_to_binding(), points_to_binding_arguments(), set_add_element(), set_assign(), set_assign_list(), set_intersection(), step_RT_clean_local(), and test_to_points_to().
Definition at line 265 of file set.c.
References hash_del(), s1, and set_assign().
Referenced by compute_points_to_binded_set(), copy_from_call(), copy_from_test(), copy_to_call(), copy_to_test(), dag_computable_vertices(), do_resource_usage_check(), freia_dag_optimize(), freia_spoc_pipeline(), interprocedural_mapping(), is_consummed_by_vertex(), mask_effects(), new_points_to_unstructured(), opencl_merge_and_compile(), points_to_cell_source_projection(), points_to_function_projection(), points_to_set_block_projection(), points_to_source_projection(), remove_arc_from_simple_pt_map(), remove_resource_from_make_cache(), select_imagelet(), sort_entities_with_dep(), and update_referenced_entities().
May be useful for string sets ...
NOT TESTED
FI:Confusing for Newgen users because gen_free() is expected?
Definition at line 276 of file set.c.
References free(), hash_delget(), s1, and set_assign().
Definition at line 256 of file set.c.
References hash_del(), HASH_MAP, s1, set_assign(), and _set_chunk::table.
Referenced by copy_from_loop(), copy_to_statement(), do_group_statement_constant_filter(), do_unfolding(), freia_spoc_pipeline(), freia_substitute_by_helper_call(), gen_set_closure_iterate(), genref_unstructured(), get_private_entities(), kill_effects(), list_assignment_to_points_to(), new_points_to_unstructured(), other_significant_uses(), points_to_anywhere(), points_to_anywhere_typed(), points_to_nowhere(), simdize_simple_statements_pass2(), sort_entities_with_dep(), transfert_loop(), transfert_statement(), user_call_to_points_to_fast_interprocedural(), and user_call_to_points_to_interprocedural().
Definition at line 143 of file set.c.
References HASH_MAP, hash_put(), set_make(), _set_chunk::table, and _set_chunk::type.
Referenced by compute_dead_vertices(), inout_any_loop(), inout_test(), and outliner_independent_recursively().
tell whether set s is empty.
returnn s=={}
Definition at line 367 of file set.c.
References set_size().
Referenced by compile_reduction(), consistent_points_to_graph_p(), do_unfolding(), extract_matching_statements(), fi_points_to_storage(), freia_spoc_pipeline(), gen_set_closure_iterate(), init_statement_equivalence_table(), list_assignment_to_points_to(), merge_points_to_set(), new_points_to_unstructured(), points_to_storage(), real_freia_scalar_rw_dep(), select_imagelet(), set_intersection_p(), simdize_simple_statements_pass2(), SimplifyInvariantVertex(), and SimplifyRedundantVertex().
bool set_equal_p | ( | const | set, |
const | set | ||
) |
returns whether s1 == s2
Definition at line 316 of file set.c.
References s1, set_inclusion_p(), and set_size().
Referenced by any_loop_to_points_to(), arguments_set_equal_p(), copy_to_all_kind_of_loop(), inout_control(), and new_any_loop_to_points_to().
void set_fprint | ( | FILE * | out, |
string | name, | ||
const | set, | ||
gen_string_func_t | item_name | ||
) |
print set s to file stream out.
Definition at line 523 of file set.c.
References out, set_to_string_buffer(), string_buffer_free(), and string_buffer_to_file().
Referenced by dag_compute_outputs(), freia_migrate_statements(), select_imagelet(), and update_written_variables().
void set_free | ( | set | s | ) |
Definition at line 332 of file set.c.
References gen_free_area(), hash_table_free(), and _set_chunk::table.
Referenced by bootstrap(), build_number_to_statement(), C_loop_range(), callgraph(), check_control_coherency(), check_for_effected_statement(), check_private_variables_call_walker(), clean_stats_to_image(), compact_list(), compute_dead_vertices(), compute_points_to_gen_set(), concat_new_entities(), conflict_is_a_real_conflict_p(), ConnectedStatements(), copy_from_call(), copy_from_loop(), copy_to_all_kind_of_loop(), copy_to_call(), copy_to_statement(), dag_computable_vertices(), dag_compute_outputs(), dag_connected_component(), dag_consistency_asserts(), dag_dot(), dag_fix_image_reuse(), dag_terapix_measures(), delete_derived_resources(), display_linked_control_nodes(), distributable_loop(), do_array_expansion(), do_get_referenced_entities_on_statement(), do_group_statement_constant(), do_group_statement_constant_filter(), do_group_statement_constant_prune(), do_linearize_array(), do_loop_expansion(), do_loop_nest_unswitching(), do_prune_arcs(), do_reduction_detection(), do_reduction_propagation(), do_remove_redundant_communications_in_anyloop(), do_scalar_renaming_in_graph(), do_simplify_dg(), do_solve_hardware_constraints_on_nb_proc(), do_solve_hardware_constraints_on_volume(), do_terapix_pointer_initialized_from_a_mask_p(), do_terapix_warmup(), do_unfolding(), DoInvariantsStatements(), DoRedundantsStatements(), effects_to_dma(), entity_generate_missing_declarations(), extract_matching_statements(), extract_non_conflicting_statements(), filter_formal_context_according_to_actual_context(), fix_loop_index_sign(), flint_free_statement_def_use_variables(), for_to_do_loop_conversion(), fortran_constant_expression_supporting_entities(), free_glopriv(), free_simple_out(), freia_allocate_new_images_if_needed(), freia_clean_image_occurrences(), freia_cleanup_main_sequence(), freia_cleanup_status(), freia_compile(), freia_dag_optimize(), freia_mppa_compile_calls(), freia_opencl_compile_calls(), freia_spoc_pipeline(), freia_substitute_by_helper_call(), freia_terapix_call(), fsi_seq_flt(), functional_type_supporting_entities(), functional_type_supporting_types(), gather_local_indices(), gen_list_cyclic_p(), genref_unstructured(), get_loop_locals_and_remove_walker(), get_private_entities(), get_referenced_entities_filtered(), group_constants(), guard_expanded_statement_if_needed(), icm_codegen(), init_points_to_analysis(), init_statement_equivalence_table(), inline_expression_call(), inline_split_declarations(), inout_any_loop(), inout_control(), inout_test(), inout_unstructured(), is_consummed_by_vertex(), keep_recv_or_send_referenced_entity(), kill_effects(), maximal_type_depth(), merge_points_to_set(), migrate_statements(), module_to_value_mappings(), move_ahead(), mppa_helper_args_params(), new_filter_formal_context_according_to_actual_context(), opencl_compile_mergeable_dag(), opencl_merge_and_compile(), other_significant_uses(), outliner_independent_recursively(), outliner_statements_referenced_entities(), pointer_formal_parameter_to_stub_points_to(), points_to_binding(), points_to_binding_arguments(), pragma_omp_merge_expr(), private_variables(), promote_local_entities(), propagate_constant_image_to_succs(), prune_non_constant(), rdg_loop(), real_freia_scalar_rw_dep(), remove_all_unreachable_controls_of_an_unstructured(), remove_simple_scalar_pointers(), rename_operator(), replace_entity_by_expression_with_filter(), reset_make_cache(), rice_loop(), sc_delimiter(), scalopify(), simd_remove_reductions(), simdize_simple_statements_pass2(), simdizer_auto_tile(), SimplifyGraph(), SimplifyInvariantVertex(), SimplifyRedundantVertex(), single_image_assignement_p(), solve_name_clashes(), sort_entities_with_dep(), sort_subsequence(), statement_clean_declarations_helper(), statement_dependence_graph(), statement_to_called_user_entities(), statement_to_declarations(), statement_to_referenced_entities(), statements_conflict_p(), SupressDependances(), terapix_loop_optimizer(), terapixify_loop_purge(), terapixify_loops(), text_loop_90(), transfert_loop(), transfert_statement(), type_supporting_entities(), type_supporting_references(), type_supporting_types(), update_referenced_entities(), user_call_to_points_to_interprocedural_binding_set(), vertex_in_cycle_p(), and vertex_to_chains().
set set_generic_make | ( | set_type | typ, |
hash_equals_t | private_equal_p, | ||
hash_rank_t | private_rank | ||
) |
what about this replacement? #define SET_MAP(the_item, the_code, the_set) \ { SET_FOREACH(void *, the_item, the_set) the_code; }
functions implemented in set.c
what about this replacement? #define SET_MAP(the_item, the_code, the_set) \ { SET_FOREACH(void *, the_item, the_set) the_code; }
discrepancy: size_t sometimes, _uint elsewhere why not use the functional types now defined in newgen_hash.h?
Definition at line 83 of file set.c.
References alloc(), hash_table_generic_make(), INITIAL_SET_SIZE, message_assert, _set_chunk::table, and _set_chunk::type.
Referenced by array_formal_parameter_to_stub_points_to(), compute_points_to_binded_set(), derived_formal_parameter_to_stub_points_to(), formal_points_to_parameter(), gen_may_constant_paths(), gen_may_set(), gen_must_constant_paths(), gen_must_set(), gen_set_closure_iterate(), init_points_to_analysis(), kill_may_set(), merge_points_to_set(), new_points_to_unstructured(), opgen_null_location(), pointer_formal_parameter_to_stub_points_to(), points_to_anywhere(), points_to_anywhere_typed(), points_to_function_projection(), points_to_independent_store(), points_to_may_filter(), points_to_must_filter(), points_to_nowhere(), set_make(), typedef_formal_parameter_to_stub_points_to(), and user_call_to_points_to_fast_interprocedural().
set_type set_get_type | ( | const | set | ) |
bool set_inclusion_p | ( | const | set, |
const | set | ||
) |
return whether s1 \included s2
Definition at line 305 of file set.c.
References s1, set_belong_p(), and SET_FOREACH.
Referenced by do_simplify_dg(), and set_equal_p().
Definition at line 229 of file set.c.
References hash_get(), HASH_MAP, hash_put(), HASH_UNDEFINED_VALUE, s1, set_clear(), and _set_chunk::table.
Referenced by copy_from_all_kind_of_loop(), copy_from_test(), copy_to_all_kind_of_loop(), copy_to_statement(), copy_to_test(), do_group_statement_constant_prune(), do_unfolding(), extract_matching_statements(), extract_non_conflicting_statements(), for_to_do_loop_conversion(), freia_dag_optimize(), merge_points_to_set(), new_points_to_unstructured(), real_freia_scalar_rw_dep(), set_intersection_p(), and transfert_statement().
bool set_intersection_p | ( | const | set, |
const | set | ||
) |
returns whether s1 n s2 <> 0 complexity of the intersection
Definition at line 288 of file set.c.
References s1, set_empty_p(), set_free(), set_intersection(), set_make(), and set_pointer.
Referenced by do_remove_redundant_communications_in_anyloop(), is_consummed_by_vertex(), and new_points_to_unstructured().
Create an empty set of any type but hash_private.
Use default functions for equality check and rank computation.
Definition at line 102 of file set.c.
References message_assert, set_generic_make(), and set_private.
Referenced by arithmetic_intrinsic_p(), bootstrap(), build_number_to_statement(), callgraph(), check_control_coherency(), check_for_effected_statement(), check_ref(), check_stmt(), compact_list(), concat_new_entities(), conflict_is_a_real_conflict_p(), copy_from_call(), create_or_get_a_set_from_control(), cyclic_graph_to_points_to(), dag_cleanup_other_statements(), dag_computable_vertices(), dag_compute_outputs(), dag_connected_component(), dag_consistency_asserts(), dag_dot(), dag_fix_image_reuse(), dag_split_on_scalars(), dag_stats(), dag_terapix_measures(), delete_derived_resources(), display_linked_control_nodes(), distributable_loop(), do_array_expansion(), do_group_statement_constant(), do_linearize_array(), do_prune_arcs(), do_reduction_detection(), do_reduction_propagation(), do_redundant_load_store_elimination(), do_remove_redundant_communications_in_anyloop(), do_scalar_renaming_in_successors(), do_simplify_dg(), do_solve_hardware_constraints_on_nb_proc(), do_solve_hardware_constraints_on_volume(), do_unfolding(), DoInvariantsStatements(), DoRedundantsStatements(), effects_to_dma(), extract_matching_statements(), extract_non_conflicting_statements(), find_covering_reference_path(), flint_initialize_statement_def_use_variables(), for_to_do_loop_conversion(), fortran_constant_expression_supporting_entities(), freia_allocate_new_images_if_needed(), freia_cleanup_main_sequence(), freia_cleanup_status(), freia_compile(), freia_compute_output_images(), freia_dag_optimize(), freia_mppa_compile_calls(), freia_opencl_compile_calls(), freia_spoc_pipeline(), freia_substitute_by_helper_call(), freia_terapix_call(), freia_trpx_compile_one_dag(), fsi_seq_flt(), functional_type_supporting_entities(), functional_type_supporting_types(), gen_copy_set(), gen_list_cyclic_p(), get_declared_entities(), get_loop_locals_and_remove(), get_private_entities(), get_referenced_entities_filtered(), get_statement_matching_types(), graph_to_live_writes(), group_constants(), guard_expanded_statement_if_needed(), icm_codegen(), init_make_cache(), init_resource_usage_check(), init_statement_equivalence_table(), inline_split_declarations(), io_intrinsic_p(), is_consummed_by_vertex(), keep_recv_or_send_referenced_entity(), make_string_set_from_prop(), maximal_type_depth(), migrate_statements(), move_ahead(), mppa_helper_args_params(), new_glopriv(), opencl_compile_mergeable_dag(), opencl_merge_and_compile(), other_significant_uses(), outliner_statements_referenced_entities(), pragma_omp_merge_expr(), propagate_constant_image_to_succs(), Ready_p(), ready_to_be_processed_set(), real_freia_scalar_rw_dep(), recursive_functional_type_supporting_entities(), region_of_loop(), remove_all_unreachable_controls_of_an_unstructured(), remove_simple_scalar_pointers(), replace_entity_by_expression_with_filter(), sbp_context_add_kernel_task_buffer(), sbp_context_init(), sc_delimiter(), scalopify(), scc_region(), set_dup(), set_intersection_p(), set_RT_add_local(), set_singleton(), simd_remove_reductions(), simdize_simple_statements_pass2(), simdizer_auto_tile(), SimplifyGraph(), SimplifyInvariantVertex(), SimplifyRedundantVertex(), single_image_assignement_p(), sort_entities_with_dep(), sort_subsequence(), statement_dependence_graph(), statement_to_called_user_entities(), statement_to_declarations(), statement_to_referenced_entities(), step_add_created_symbolic(), step_analyse_CHAINS_DG(), step_directive_to_strings(), step_get_directive_reductions(), SupressDependances(), text_loop_90(), transfert_test(), type_supporting_entities(), type_supporting_references(), type_supporting_types(), update_referenced_entities(), vertex_in_cycle_p(), and vertex_to_chains().
int set_own_allocated_memory | ( | const | set | ) |
Definition at line 423 of file set.c.
References hash_table_own_allocated_memory(), and _set_chunk::table.
Referenced by allocated_memory_simple_in().
hash_table set_private_get_hash_table | ( | const | set | ) |
return the internal hash table of set s
Definition at line 68 of file set.c.
References _set_chunk::table.
create a singleton set of any type but hash_private
use set_add_element() instead for hash_private
Definition at line 113 of file set.c.
References hash_put(), set_make(), and _set_chunk::table.
int set_size | ( | const | set | ) |
returns the number of items in s.
Definition at line 359 of file set.c.
References hash_table_entry_count(), and _set_chunk::table.
Referenced by dag_split_on_scalars(), freia_allocate_new_images_if_needed(), freia_image_shuffle(), freia_migrate_statements(), freia_spoc_pipeline(), list_assignment_to_points_to(), print_or_dump_points_to_set(), sc_delimiter(), set_empty_p(), set_equal_p(), and set_to_string_buffer().
create a list from a set the set is not freed
s | set where the data are |
Definition at line 436 of file set.c.
References gen_cons(), NIL, and SET_FOREACH.
Referenced by copy_from_call(), copy_from_test(), freia_allocate_new_images_if_needed(), generic_points_to_analysis(), get_referenced_entities_filtered(), kernel_data_mapping(), make_simd_statements(), outliner_independent_recursively(), outliner_statements_referenced_entities(), set_to_sorted_list(), and step_update_SUMMARY_SENDRECV_regions().
list set_to_sorted_list | ( | const set | s, |
gen_cmp_func_t | cmp | ||
) |
Definition at line 447 of file set.c.
References gen_sort_list(), and set_to_list().
Referenced by compile_reduction(), copy_from_statement(), copy_to_statement(), dag_compute_outputs(), do_group_constants_terapix(), do_scalar_renaming_in_graph(), do_unfolding(), fi_points_to_storage(), init_points_to_analysis(), inline_expression_call(), order_isomorphic_statements(), points_to_storage(), print_entity_task_buffers(), print_sesam_tasks_buffers_header(), real_freia_scalar_rw_dep(), sort_entities_with_dep(), transfert_block(), transfert_loop(), transfert_statement(), and update_referenced_entities().
string set_to_string | ( | string | name, |
const set | s, | ||
gen_string_func_t | item_name | ||
) |
return allocated string for set s
name | set description |
s | the set |
item_name | user function to build a string for each item |
Definition at line 513 of file set.c.
References set_to_string_buffer(), string_buffer_free(), and string_buffer_to_string().
Referenced by any_scalar_dep().
Definition at line 211 of file set.c.
References hash_dont_warn_on_redefinition(), HASH_MAP, hash_put(), hash_warn_on_redefinition(), hash_warn_on_redefinition_p(), s1, set_assign(), and _set_chunk::table.
Referenced by compute_points_to_binded_set(), copy_from_call(), copy_to_all_kind_of_loop(), copy_to_call(), do_get_referenced_entities_on_statement(), do_simplify_dg(), formal_points_to_parameter(), freia_compile(), freia_dag_optimize(), freia_mppa_compile_calls(), freia_opencl_compile_calls(), gather_local_indices(), gen_may_set(), gen_must_set(), gen_set_closure_iterate(), genref_any_loop(), genref_block(), genref_test(), genref_unstructured(), get_loop_locals_and_remove_walker(), get_referenced_entities_filtered(), init_points_to_analysis(), inout_any_loop(), inout_call(), inout_control(), inout_test(), inout_unstructured(), list_assignment_to_points_to(), merge_points_to_set(), migrate_statements(), new_points_to_unstructured(), outliner_statements_referenced_entities(), pointer_formal_parameter_to_stub_points_to(), points_to_anywhere(), points_to_anywhere_typed(), points_to_binding(), points_to_binding_arguments(), points_to_nowhere(), sc_delimiter(), sort_entities_with_dep(), user_call_to_points_to_fast_interprocedural(), and user_call_to_points_to_interprocedural().
void sets_free | ( | set | s, |
... | |||
) |
Free several sets in one call.
Useful when many sets are used simultaneously.
Analyze in args the variadic arguments that may be after t:
Since a variadic function in C must have at least 1 non variadic argument (here the s), just skew the varargs analysis:
Get the next argument
Release the variadic analysis
Definition at line 340 of file set.c.
References set_free().
Referenced by list_assignment_to_points_to().