PIPS
NewGen useful functions for recursion visitors

They may be used by some recursion. More...

+ Collaboration diagram for NewGen useful functions for recursion visitors:

Functions

void gen_null (__attribute__((unused)) void *unused)
 Ignore the argument. More...
 
void gen_null2 (__attribute__((unused)) void *u1, __attribute__((unused)) void *u2)
 idem with 2 args, to please overpeaky compiler checks More...
 
void * gen_NULL (__attribute__((unused)) void *unused)
 idem with a void* return More...
 
void * gen_NULL2 (__attribute__((unused)) void *u1, __attribute__((unused)) void *u2)
 idem with 2 args, to please overpeaky compiler checks More...
 
bool gen_true (__attribute__((unused)) gen_chunk *unused)
 Return true and ignore the argument. More...
 
bool gen_true2 (__attribute__((unused)) gen_chunk *u1, __attribute__((unused)) void *u2)
 
bool gen_false (__attribute__((unused)) gen_chunk *unused)
 Return false and ignore the argument. More...
 
bool gen_false2 (__attribute__((unused)) gen_chunk *u1, __attribute__((unused)) void *u2)
 
void * gen_identity (const void *x)
 Just return the argument. More...
 
void * gen_chunk_identity (gen_chunk x)
 
void gen_core (__attribute__((unused)) void *p)
 Abort when called. More...
 
void * gen_core_NULL (__attribute__((unused)) void *p)
 

Detailed Description

They may be used by some recursion.

Function Documentation

◆ gen_chunk_identity()

void* gen_chunk_identity ( gen_chunk  x)

Definition at line 2812 of file genClib.c.

2813 {
2814  return x.e;
2815 }
static char * x
Definition: split_file.c:159

References x.

Referenced by reference_dependence_variable_check_and_add(), step_compute_CHAINS_DG_SENDRECV_regions(), and step_statement_path_first_directive_statement().

+ Here is the caller graph for this function:

◆ gen_core()

void gen_core ( __attribute__((unused)) void *  p)

Abort when called.

Useful in a gen_recurse if we want to be sure a type of object is not here for example.

Definition at line 2822 of file genClib.c.

2823 {
2824  abort();
2825 }
#define abort()
Definition: misc-local.h:53

References abort.

Referenced by initialize_newgen(), make_mpi_conversion(), sequence_working_false(), and test_working_false().

+ Here is the caller graph for this function:

◆ gen_core_NULL()

void* gen_core_NULL ( __attribute__((unused)) void *  p)

dead code

Definition at line 2827 of file genClib.c.

2828 {
2829  abort();
2830  /* dead code */
2831  return NULL;
2832 }

References abort.

Referenced by initialize_newgen().

+ Here is the caller graph for this function:

◆ gen_false()

◆ gen_false2()

bool gen_false2 ( __attribute__((unused)) gen_chunk u1,
__attribute__((unused)) void *  u2 
)

Definition at line 2801 of file genClib.c.

2802 {
2803  return false;
2804 }

Referenced by normalize_wp65_code(), NormalizeCodeForHpfc(), and statement_to_declarations().

+ Here is the caller graph for this function:

◆ gen_identity()

void* gen_identity ( const void *  x)

Just return the argument.

Definition at line 2807 of file genClib.c.

2808 {
2809  return (void *) x;
2810 }

References x.

Referenced by gpu_memory(), initialize_newgen(), and old__gpu_ify().

+ Here is the caller graph for this function:

◆ gen_null()

void gen_null ( __attribute__((unused)) void *  unused)

Ignore the argument.

It is useful for example in a gen_recurse when we do not want to do anything in the rewrite part (bottom-up).

Definition at line 2752 of file genClib.c.

2753 {
2754  return;
2755 }

Referenced by add_alias_pairs_for_this_caller(), add_aliases_for_current_caller(), alias_check_two_variables(), atomize_cse_this_statement_expressions(), bottom_up_abc_statement(), bourdoncle_component(), bourdoncle_partition(), bourdoncle_unstructured_free(), clean_labels(), compute_callees(), compute_postcondition(), compute_proper_reductions(), compute_statement_to_goto_table(), count_references_to_variable(), count_references_to_variable_element(), count_static_references_to_variable(), cusq_ctxt_init(), davinci_dump_all_expressions(), declarations_count_element_references_to_v_p(), declarations_count_references_to_v_p(), declarations_first_reference_to_v_p(), drop_dummy_loops(), drop_it(), equal_reference_in_expression_p(), expression_substitution(), expressions_invariant_p(), extract_distributed_non_constant_terms(), filter_proper_effects(), FindRefToDistArrayInStatement(), flint_uninitialized_variables(), freia_build_image_occurrences(), freia_compile(), freia_switch_image_in_statement(), full_unroll(), functional_object_p(), gen_allocated_memory(), gen_defined_p(), gen_free(), gen_internal_context_multi_recurse(), gen_local_copy_tree(), gen_sharing_p(), gen_write(), gen_write_tabulated(), gen_write_without_sharing(), generate_starpu_pragma(), get_list_of_rhs(), get_operator(), gpu_clear_annotations_on_loop_nest(), gpu_ify(), gpu_parallelize_annotated_loop_nest(), gpu_promote_sequential_on_statement(), group_constants(), guard_elimination(), guess_write_effect_on_entity(), handle_hpf_directives(), icm_codegen(), impact_check_two_variables(), initial_code_abc_statement(), initialize_newgen(), instruction_selection(), interprocedural_abc_statement(), inverse_normalization_of_expressions(), label_defined_in_statement_p(), live_out_paths_from_caller_to_callee(), live_out_region_engine(), live_paths_of_module_statement(), loop_statistics(), make_eliminate_original_variables(), maximum_ordering(), minimum_ordering(), node_to_linked_nodes(), nodecl_p(), normalize_first_expressions_of(), normalize_microcode(), only_io_mapping(), opgen_null_location(), out_regions_from_caller_to_callee(), parallel_loop_in_stat_p(), partitioning_sdg(), perform_ac_cse(), perform_icm_association(), perform_substitution(), pips_code_abc_statement(), print_embedding_graph(), print_module_icfg(), print_unstructured(), private_variables(), process_static_initializations(), reduction_atomization(), remove_preferences(), remove_simple_scalar_pointers(), remove_statement_redundant(), remove_variable_from_reduction(), scalopragma(), searchPragma(), shared_pointers(), sharing_obj_in(), simd_unroll_as_needed(), simple_statement(), simple_switch_old_to_new(), simplify_complex_statements(), statement_dependence_graph(), static_controlize(), subarray_shift_p(), substitute_and_create(), substitute_image_occurrences(), substitute_return(), taskify(), tiling_sequence(), top_down_abc_statement(), unstructured_shallow_copy(), unstructured_to_flow_sensitive_postconditions_or_transformers(), unstructured_to_transformer(), untrusted_call_p(), update_precondition_with_call_site_preconditions(), update_summary_precondition_in_declaration(), values_for_current_module_intraprocedural_simple_effects(), variable_is_written_p(), and verify_used_before_set_statement().

◆ gen_NULL()

void* gen_NULL ( __attribute__((unused)) void *  unused)

idem with a void* return

Definition at line 2764 of file genClib.c.

2765 {
2766  return NULL;
2767 }

Referenced by initialize_newgen().

+ Here is the caller graph for this function:

◆ gen_null2()

void gen_null2 ( __attribute__((unused)) void *  u1,
__attribute__((unused)) void *  u2 
)

idem with 2 args, to please overpeaky compiler checks

Definition at line 2758 of file genClib.c.

2759 {
2760  return;
2761 }

Referenced by add_ref_entities_in_init(), add_stat_called_in_inits(), address_of_variable_is_taken(), alias_check_scalar_and_array_variables_in_caller(), alias_check_scalar_and_array_variables_in_module(), alias_check_two_array_variables_in_caller(), alias_check_two_array_variables_in_module(), alias_check_two_scalar_variables_in_caller(), alias_check_two_scalar_variables_in_module(), alias_check_two_variables(), aliasing_p(), all_statements_defined_p(), check_if_conv_test(), computation_intensity(), do_group_statement_constant(), do_isolate_statement_preconditions_satisified_p(), do_linearize_array_walker(), effective_variables_width(), empty_code_p(), find_loop_from_label(), find_reference_to_variable(), find_statement_from_label(), find_statements_interactively(), find_statements_with_pragma(), FixCInternalLabels(), format_inside_statement_p(), forward_substitute(), freia_cleanup_status(), freia_convergence_sequence_p(), freia_image_shuffle(), freia_memory_management_statement(), freia_shuffle_move_forward(), fs_filter(), gather_all_comments_of_a_statement(), get_declared_entities(), get_upper_model(), guess_write_effect_on_entity_stmt_walker(), has_address_of_operator_p(), has_loop_inside(), kernelize(), module_loops(), number_of_logical_operators(), omp_merge_pragma(), pragma_outliner(), prettyprint_dot_dependence_graph(), process_reductions_in_loop(), reduction_in_statement_p(), rinitialize_ordering_to_statement(), sac_statement_to_expressions(), scalopify(), sesam_buffers_processing(), some_related_image_effect(), statement_contains_user_call_p(), statement_in_statement_p(), statement_may_contain_exiting_intrinsic_call_p(), statement_may_have_control_effects_p(), statement_replace_in_root_statement(), statement_substatement_p(), statement_to_called_user_entities(), statement_to_declarations(), statement_to_implicit_target_labels(), statement_to_labels(), statement_to_referenced_entities(), step_compute_SENDRECV_regions(), stmt_renumber(), store_declarations_references(), taskify_statement(), terapix_loop_optimizer(), terapix_suitable_loop_bound_p(), terapixify_loops(), and try_reorder_expressions().

◆ gen_NULL2()

void* gen_NULL2 ( __attribute__((unused)) void *  u1,
__attribute__((unused)) void *  u2 
)

idem with 2 args, to please overpeaky compiler checks

Definition at line 2770 of file genClib.c.

2771 {
2772  return NULL;
2773 }

◆ gen_true()

bool gen_true ( __attribute__((unused)) gen_chunk unused)

Return true and ignore the argument.

Useful as a filter in a gen_recurse when we don't want to do anything in the filter part (top-down) but keeping visiting.

Definition at line 2780 of file genClib.c.

2781 {
2782  return true;
2783 }

Referenced by add_counters(), atomize_object(), bottom_up_abc_statement(), bourdoncle_component(), bourdoncle_partition(), bourdoncle_unstructured_free(), build_binary_operators_with_huffman(), build_full_ctrl_graph(), build_number_to_statement(), check_if_direct_reference(), check_tiling_legality(), clean_all_normalized(), clean_declarations(), clean_the_code(), cleanup_subscripts(), clear_labels(), clear_pragma(), collect_glopriv(), compute_loop_nest_dim(), convert_pointer_to_array(), convert_to_c_operators(), convert_to_standard_operators(), copy_value_of_write(), create_statements_of_labels(), cumulated_reductions(), db_get_module_list_initial_order(), debug_print_referenced_entities(), do_array_to_pointer_walker(), do_linearize_prepatch_subscripts(), do_simplify_constant_address_expression_in_decl(), do_simplify_subscripts(), do_symbolic_tiling(), eliminate_calls_to_unbounded(), entity_in_ref(), eole_manageable_expression(), eval_variable_in_statement(), expression_normalize_subscripts(), find_code_status(), FindDefinitionsOf(), FindRefToDistArray(), flatten_code(), for_loop_to_do_loop(), for_loop_to_while_loop(), forward_substitute_in_anyloop(), forward_substitute_in_call(), forward_substitute_in_exp(), freia_compute_output_images(), freia_switch_image_in_statement(), full_unroll_pragma(), generate_bminus(), generate_starpu_pragma(), generate_two_addresses_code(), get_all_entities(), get_referenced_entities(), get_referenced_entities_filtered(), group_constants(), handle_independent_directive(), handle_reduction_directive(), hpfc_overlap_kill_unused_scalars(), html_print_symbol_table(), if_conversion(), if_conversion_init(), implied_do_ranges(), initial_code_abc_statement(), initialize_newgen(), initialize_variable_used_map_for_current_loop_nest(), inline_expression_call(), instruction_selection(), interprocedural_abc_statement(), isolate_patch_entities(), kernel_data_mapping(), kill_statement_number_and_ordering(), list_of_referenced_entities(), live_paths_of_module_statement(), loop_statistics(), memory_location_for_array_p(), module_clean_declarations(), module_continuation_conditions(), module_to_value_mappings(), new_atomizer(), new_controlizer(), node_to_linked_nodes(), normalize_all_expressions_of(), normalize_microcode(), number_of_sequential_and_parallel_loops(), omp_loop_parallel_threshold_set(), only_io_mapping(), optimize_simplify_nary_patterns(), outliner(), outliner_independent_recursively(), parallel_loop_nest_to_body(), parser_substitute_all_macros(), partial_eval(), perform_ac_cse(), perform_icm_association(), perform_substitution(), phrase_remove_dependences(), phrase_remove_dependences_rwt(), pips_code_abc_statement(), print_embedding_graph(), print_loopnest_dependence_cone(), print_unstructured(), private_variables(), reduce_loop_bound_for_st(), reductions_get_omp_pragma_expr(), reductions_get_omp_pragma_str(), reference_in_statement_p(), referenced_variables(), remove_modulo(), remove_redundant_communications(), remove_simple_scalar_pointers(), rename_operator(), replace_entities(), replace_entity_by_expression(), replace_entity_by_expression_with_filter(), rm_block_block_statement(), set_current_loops(), simd_atomizer(), simdizer_auto_tile(), simdizer_init(), simple_switch_old_to_new(), simplify_c_operator(), simplify_constant_address_expressions(), simplify_expressions(), sort_all_loop_locals(), spire_distributed_unstructured_to_structured(), split_structures(), split_update_operator(), split_update_operator_statement_walker(), statement_flatten_declarations(), statement_normalize_subscripts(), statement_purge_declarations(), statement_split_initializations(), statement_structural_cleaning(), substitute_entity_in_expression(), substitute_image_occurrences(), substitute_return(), terapix_remove_divide(), tiling_sequence(), translate_unary_into_binary_ref(), type_this_chunk(), unnormalize_expression(), unspaghettify_or_restructure_statement(), unstructured_shallow_copy(), unstructured_to_flow_sensitive_postconditions_or_transformers(), unstructured_to_transformer(), update_common_references_in_obj(), update_object_for_module(), variable_declaration_coherency_p(), wrap_call_argument(), xml_Application(), xml_Argument(), xml_Arguments(), xml_Call(), xml_Chain_Graph(), xml_GlobalVariables(), xml_LocalVariables(), xml_Loops(), xml_Task(), and xml_TaskParameters().

◆ gen_true2()

bool gen_true2 ( __attribute__((unused)) gen_chunk u1,
__attribute__((unused)) void *  u2 
)

Definition at line 2785 of file genClib.c.

2786 {
2787  return true;
2788 }

Referenced by add_loop_parallel_threshold(), add_pragma(), add_pragma_to_sequence(), callers_to_call_sites(), check_io_list(), check_stmt(), clean_up_sequences_internal(), comEngine_replace_reference_in_stat(), compute_callees(), convert_pointer_to_array_aux2(), copy_to_statement(), dag_remove_vertex(), declaration_statement_add_call_to_callees(), delay_communications_interprocedurally(), dependence_of_dependent_type(), do_linearize_array_walker(), do_linearize_patch_expressions(), do_linearize_remove_dereferencment(), do_split_structure_return_hook(), do_terapix_warmup(), dowhile_to_while(), entity_in_expression_p(), entity_in_stat(), entity_read_somewhere_p(), entity_to_declaring_statement(), entity_used_in_calls(), entity_used_in_loop_bound_p(), entity_used_in_loop_bound_walker(), expression_substitute_variable(), extract_references_from_declarations(), find_calls_to_function(), find_calls_to_function_walker_in_declaration(), flag_loops(), freia_cleanup_sequence_rec(), freia_dag_optimize(), freia_remove_scalar_ww_deps(), freia_shuffle_move_forward(), freia_unroll_while_for_spoc(), full_simd_unroll_loop_filter(), gather_and_remove_all_format_statements(), gather_call_sites_in_block(), get_loop_locals_and_remove(), get_private_entities(), get_statements_with_comments_containing(), gpu_xml_dump(), has_loop_inside(), if_conversion_compact(), init_expression_is_pointer(), inline_calls(), inline_expression_call(), inline_has_inlinable_calls(), inline_statement_crawler(), kernel_load_store_engine(), loop_nest_unswitching(), make_send_receive_conversion(), make_statement_copy_i(), make_task_mapping(), merge_on_outer(), normalize_microcode(), oi_stmt_rwt(), outliner_smart_replacment(), prepare_context(), recurse_statements_conflict_p(), reductions_rewrite(), remove_unread_variables(), rename_statement_declarations(), rename_statement_reductions(), replace_entity_by_expression_entity_walker(), replace_field_by_reference(), sequence_statement_containing(), simd_atomize_this_expression(), simd_memory_packing(), simdizer_auto_tile(), simple_simd_unroll_rate(), slightly_rename_entities(), substitute_entity_variable_in_expression(), substitute_expression(), substitute_reference_variable(), switch_cast_to_copy(), terapix_pointer_initialized_from_a_mask_p(), terapixify_loops(), test_working_false(), transfert_statement(), variable_is_used(), and wrap_kernel_argument().