PIPS
|
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
#include "genC.h"
#include "newgen_set.h"
#include "newgen_include.h"
#include "newgen_string_buffer.h"
Go to the source code of this file.
Data Structures | |
struct | _set_chunk |
FI: I do not understand why the type is duplicated at the set level. More... | |
Macros | |
#define | INITIAL_SET_SIZE 10 |
Functions | |
hash_table | set_private_get_hash_table (const set s) |
return the internal hash table of set s More... | |
set_type | set_get_type (const set s) |
return the type of set s More... | |
set | set_generic_make (set_type typ, hash_equals_t private_equal_p, hash_rank_t private_rank) |
Create an empty set of any type. More... | |
set | set_make (set_type typ) |
Create an empty set of any type but hash_private. More... | |
set | set_singleton (set_type type, const void *p) |
create a singleton set of any type but hash_private More... | |
set | set_assign (set s1, const set s2) |
Assign a set with the content of another set. More... | |
set | set_dup (const set s) |
set | set_add_element (set s1, const set s2, const void *e) |
set | set_add_elements (set s1, const set s2, const void *e,...) |
bool | set_belong_p (const set s, const void *e) |
bool | list_in_set_p (const list l, const set s) |
set | set_union (set s1, const set s2, const set s3) |
set | set_intersection (set s1, const set s2, const set s3) |
set_assign (s1, tmp) | |
set_free (tmp) | |
return (s1) | |
set | set_difference (set s1, const set s2, const set s3) |
set | set_del_element (set s1, const set s2, const void *e) |
set | set_delfree_element (set s1, const set s2, const void *e) |
May be useful for string sets ... More... | |
bool | set_intersection_p (const set s1, const set s2) |
returns whether s1 n s2 <> 0 complexity of the intersection More... | |
bool | set_inclusion_p (const set s1, const set s2) |
return whether s1 \included s2 More... | |
bool | set_equal_p (const set s1, const set s2) |
returns whether s1 == s2 More... | |
set | set_clear (set s) |
Assign the empty set to s s := {}. More... | |
void | set_free (set s) |
void | sets_free (set s,...) |
Free several sets in one call. More... | |
int | set_size (const set s) |
returns the number of items in s. More... | |
bool | set_empty_p (const set s) |
tell whether set s is empty. More... | |
void | gen_set_closure_iterate (void(*iterate)(void *, set), set initial, bool dont_iterate_twice) |
void | gen_set_closure (void(*iterate)(void *, set), set initial) |
a set-based implementation of gen_closure that does not go twice in the same object. More... | |
int | set_own_allocated_memory (const set s) |
list | set_to_list (const set s) |
create a list from a set the set is not freed More... | |
list | set_to_sorted_list (const set s, gen_cmp_func_t cmp) |
set | set_append_list (set s, const list l) |
add list l items to set s, which is returned. More... | |
set | set_assign_list (set s, const list l) |
assigns a list contents to a set all duplicated elements are lost More... | |
static string_buffer | set_to_string_buffer (string name, const set s, gen_string_func_t item_name) |
convert set s to a string_buffer used internally, but may be exported if needed. More... | |
string | set_to_string (string name, const set s, gen_string_func_t item_name) |
return allocated string for set s More... | |
void | set_fprint (FILE *out, string name, const set s, gen_string_func_t item_name) |
print set s to file stream out. More... | |
Variables | |
else | |
s1 == s2) ? s3->table : s2->table ) | |
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().
return | ( | s1 | ) |
Referenced by ajoute_new_var(), anyloop_rwt(), compute_cumulated_reductions(), copy_leaf_out(), ecrit_une_var(), free_leaf_out(), gen_init_external(), gen_list_and(), gen_list_and_not(), gen_member(), gen_read_spec(), gen_write_spec(), points_to_cell_list_and(), reconnect(), and statement_insertion_fix_access().
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().
set_assign | ( | s1 | , |
tmp | |||
) |
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().
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 | s, | ||
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_free | ( | tmp | ) |
Referenced by gen_set_closure_iterate(), set_intersection_p(), and sets_free().
set set_generic_make | ( | set_type | typ, |
hash_equals_t | private_equal_p, | ||
hash_rank_t | private_rank | ||
) |
Create an empty set of any type.
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().
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().
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().
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 | s | ) |
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.
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().
|
static |
convert set s to a string_buffer used internally, but may be exported if needed.
Definition at line 488 of file set.c.
References i2a(), SET_FOREACH, set_size(), string_buffer_append(), string_buffer_cat(), and string_buffer_make().
Referenced by set_fprint(), and set_to_string().
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().
else |
s1 == s2) ? s3->table : s2->table ) |
Definition at line 247 of file set.c.
Referenced by abc_instrumentation_insert_before_statement(), actual_convex_union(), add_arrow_in_ctrl_graph(), adjust_goto_from_to(), bases_strictly_equal_p(), basic_maximum(), bottom_up_abc_insert_before_statement(), build_signature(), cell_is_xxx_p(), cell_reference_compare(), check_way_between_two_statements(), compact_phi_functions(), comparable_statements_on_distance_p(), compare_entities_without_scope(), compare_statements_on_distance_to_origin(), compare_statements_on_ordering(), compatible_points_to_subscripts_p(), compute_communications(), computebounds(), conflicts_sort_callback(), constant_constraint_check(), contains_level_l_dependence(), control_cons_compare(), control_equal_p(), cute_convex_union(), db_resource_name_or_owner_name(), dependencies_filter(), dma_statements_conflict_p(), dmas_invert_p(), edge_cost(), edge_cost_polynome(), elementary_convex_union(), entity_locations_max(), equal_must_vreference(), expression_equal_p(), extract_common_syst(), extract_nredund_subsystem(), flint_initialize_statement_def_use_variables(), fortran_string_compare(), free_guards(), freia_allocate_new_images_if_needed(), freia_close_dep_cache(), freia_cmp_statement(), function_same_string_p(), gen_qsort_string_cmp(), general_build_signature(), generate_alternate_return_targets(), generate_io_wp65_code(), generic_basic_equal_p(), generic_insert_statement(), generic_unary_operation_to_transformer(), get_request_string_timers(), get_string_timers(), gfc2pips_code2instruction_(), guard_elimination(), Hierarchical_tiling(), ignore_this_conflict(), insert_impact_description_as_comment(), insert_statement(), insert_statement_no_matter_what(), instruction_to_wp65_code(), interprocedural_abc_insert_before_statement(), ith_loop_in_loop_nest(), jpips_tag2(), logic_condition_filter(), loop_flt(), main(), make_exit_statement(), make_filtered_dg_or_dvdg(), MakeArithmIfInst(), MakeForloop(), MakeIoInstA(), MakeNewLabelledStatement(), MakeWhileLoop(), merge_points_to_graphs(), merge_points_to_set(), old_value_entity_p(), only_minor_statements_in_between(), opkill_may_vreference(), opkill_must_vreference(), pips_code_abc_statement_rwt(), pointer_unary_operation_to_transformer(), points_to_binding_arguments(), points_to_cell_translation(), points_to_compare_cell(), points_to_compare_cells(), points_to_compare_location(), points_to_compare_ptr_cell(), points_to_name(), points_to_rank(), points_to_reference_included_p(), ppt_assignement(), ppt_binary(), prettyprint_dependence_graph(), prettyprint_dependence_graph_view(), prettyprint_dot_dependence_graph(), quick_privatize_graph(), quick_privatize_statement_pair(), references_do_not_conflict_p(), regions_may_convex_hull(), regions_must_convex_hull(), replace_expression_content(), ReuseLabelledStatement(), rice_update_dependence_graph(), safe_build_signature(), same_distribute_p(), same_level_p(), same_scalar_location_p(), same_sizeofexpression_name_p(), same_struct_entity_p(), same_syntax_name_p(), same_type_name_p(), same_va_arg_name_p(), sc_append(), sc_concatenate(), sc_cute_convex_hull(), sc_enveloppe_chernikova(), sc_enveloppe_chernikova_ofl_ctrl(), sc_fusion(), sc_intersection(), sc_safe_append(), sc_safe_intersection(), search_parallel_loops(), set_add_element(), set_add_elements(), set_assign(), set_del_element(), set_delfree_element(), set_difference(), set_equal_p(), set_inclusion_p(), set_intersection(), set_intersection_p(), set_union(), sg_rm_sommets(), sizeofexpression_equal_p(), som_in_liste(), some_conflicts_between(), sommet_egal(), statement_equal_p(), statement_newbase(), statements_conflict_p(), statements_conflict_relaxed_p(), stats_has_rw_conf_p(), step_analyse_CHAINS_DG(), step_compute_CHAINS_DG_SENDRECV_regions(), step_statement_path_factorise(), strlower(), strupper(), subscript_equal_p(), syntax_equal_p(), test_dependence_using_regions(), test_rwt(), TestCoupleOfEffects(), TestCoupleOfReferences(), TestDependence(), TestDiCnst(), TestDiVariables(), Tiling2_buffer(), Tiling_buffer_allocation(), tiling_sequence(), tlevel_decrease(), top_down_abc_insert_before_statement(), transformer_general_intersection(), variable_entities_may_conflict_p(), variable_references_may_conflict_p(), varval_value_name_is_inferior_p(), vertex_sort_callback(), wp65_conform_p(), and xml_Chain_Graph().