6 #ifndef effects_generic_header_included
7 #define effects_generic_header_included
38 #define ACTION_UNDEFINED string_undefined
39 #define ACTION_READ "R"
40 #define ACTION_WRITE "W"
41 #define ACTION_IN "IN"
42 #define ACTION_OUT "OUT"
43 #define ACTION_COPYIN "COPYIN"
44 #define ACTION_COPYOUT "COPYOUT"
45 #define ACTION_PRIVATE "PRIVATE"
46 #define ACTION_LIVE_IN "ALIVE (IN)"
47 #define ACTION_LIVE_OUT "ALIVE (OUT)"
54 #define pips_debug_effect(level, message, eff) \
55 ifdebug(level) { pips_debug(level, "%s\n", message); \
56 (*effect_consistent_p_func)(eff); \
57 (*effect_prettyprint_func)(eff);}
59 #define pips_debug_effects(level, message, l_eff) \
60 ifdebug(level) { pips_debug(level, "%s\n", message); \
61 generic_print_effects(l_eff);}
72 #define DB_GET_SE(name, NAME) \
73 static statement_effects db_get_##name(const char *module_name) \
75 return (statement_effects) \
76 db_get_memory_resource(DBR_##NAME, module_name, true); \
79 #define DB_GET_LS(name, NAME) \
80 static list db_get_##name(const char *module_name) \
82 return effects_to_list( \
83 (effects) db_get_memory_resource(DBR_##NAME, module_name, true)); \
86 #define DB_GET_EE(name, NAME) \
87 static entity_effects db_get_##name(const char *module_name) \
89 return (entity_effects) \
90 db_get_memory_resource(DBR_##NAME, module_name, true); \
93 #define DB_PUT_SE(name, NAME) \
94 static void db_put_##name( \
95 const char *module_name, statement_effects se) \
97 DB_PUT_MEMORY_RESOURCE(DBR_##NAME, module_name, (void*) se); \
100 #define DB_PUT_LS(name, NAME) \
101 static void db_put_##name(const char *module_name, list l) \
103 DB_PUT_MEMORY_RESOURCE(DBR_##NAME, module_name, \
104 (void*) list_to_effects(l)); \
107 #define DB_PUT_EE(name, NAME) \
108 static void db_put_##name( \
109 const char *module_name, entity_effects ee) \
111 DB_PUT_MEMORY_RESOURCE(DBR_##NAME, module_name, (void*) ee); \
114 #define DB_NOPUT_SE(name) \
115 static void db_put_##name(_UNUSED_ const char *m, statement_effects se) \
117 free_statement_effects(se); \
120 #define DB_NOPUT_LS(name) \
121 static void db_put_##name(_UNUSED_ const char *m, list l) \
123 gen_full_free_list(l); \
126 #define DB_NOPUT_EE(name) \
127 static void db_put_##name(_UNUSED_ const char *m, entity_effects ee) \
129 free_entity_effects(se); \
132 #define DB_GETPUT_SE(name, NAME) DB_GET_SE(name, NAME) DB_PUT_SE(name, NAME)
133 #define DB_GETNOPUT_SE(name, NAME) DB_GET_SE(name, NAME) DB_NOPUT_SE(name)
134 #define DB_GETPUT_LS(name, NAME) DB_GET_LS(name, NAME) DB_PUT_LS(name, NAME)
135 #define DB_GETNOPUT_LS(name, NAME) DB_GET_LS(name, NAME) DB_NOPUT_LS(name)
136 #define DB_GETPUT_EE(name, NAME) DB_GET_EE(name, NAME) DB_PUT_EE(name, NAME)
137 #define DB_GETNOPUT_EE(name, NAME) DB_GET_EE(name, NAME) DB_NOPUT_EE(name)
542 extern list list_of_effects_generic_binary_op(
list ,
list ,
bool (* )(
effect,
effect),
list (* )(
effect,
effect,
bool,
bool,
bool *,
bool *,
list (*)(
effect,
effect)),
list (* )(
effect,
effect),
list (* )(
effect),
list (* )(
effect));
760 extern list generic_reference_to_points_to_matching_list(
reference ,
descriptor ,
size_t *,
bool *,
transformer ,
list ,
void (* )(
reference,
reference *,
descriptor *),
bool (* )(
reference,
descriptor,
reference,
descriptor,
transformer,
bool,
bool *));
761 extern list generic_eval_cell_with_points_to(
cell ,
descriptor ,
list ,
bool *,
transformer ,
bool (* )(
reference,
descriptor,
reference,
descriptor,
transformer,
bool,
bool *),
void (* )(
reference,
descriptor,
reference,
descriptor,
int,
reference *,
descriptor *,
bool *),
void (* )(
reference,
reference *,
descriptor *));
762 extern list generic_effect_find_equivalent_simple_pointer_values(
effect ,
list ,
cell_relation *,
list *,
bool (* )(
cell,
descriptor,
cell,
descriptor,
bool *),
bool (* )(
cell,
descriptor,
cell,
descriptor,
bool *),
void (* )(
cell,
cell *,
descriptor *));
763 extern list generic_effect_find_aliases_with_simple_pointer_values(
effect ,
list ,
bool *,
transformer ,
bool (* )(
cell,
descriptor,
cell,
descriptor,
transformer,
bool,
bool *),
void (* )(
cell,
descriptor,
cell,
descriptor,
int,
cell *,
descriptor *,
bool *),
void (* )(
cell,
descriptor,
cell,
descriptor,
int,
cell *,
descriptor *,
bool *),
bool (* )(
cell,
descriptor,
cell,
descriptor,
bool *),
bool (* )(
cell,
descriptor,
cell,
descriptor,
bool *),
void (* )(
cell,
cell *,
descriptor *));
struct _newgen_struct_entity_ * entity
struct _newgen_struct_expression_ * expression
struct _newgen_struct_statement_ * statement
struct _newgen_struct_reference_ * reference
struct _newgen_struct_action_ * action
struct _newgen_struct_effect_ * effect
effects_representation_val
void update_invariant_rw_pointer_effects(statement, effects)
void free_effects_private_current_context_stack(void)
void update_proper_rw_pointer_effects_list(statement, list)
void store_live_out_regions(statement, effects)
void update_rw_pointer_effects(statement, effects)
list make_anywhere_read_write_memory_effects(void)
void set_invariant_in_effects(statement_effects)
list effects_undefined_composition_with_preconditions(list, transformer)
void update_out_summary_effects_list(list)
effects delete_cumulated_references(statement)
void close_cumulated_rw_effects(void)
void store_proper_rw_effects(statement, effects)
void set_cumulated_in_effects(statement_effects)
transformer load_undefined_transformer(statement)
void init_live_out_regions(void)
void effects_to_write_effects(list)
void update_useful_variables_effects(entity, effects)
transformer(* load_transformer_func)(statement)
effect(* effect_union_op)(effect, effect)
bool bound_out_effects_p(statement)
bool bound_invariant_rw_pointer_effects_p(statement)
effects load_out_effects(statement)
void reset_live_out_regions(void)
list(* effects_sup_difference_op)(list, list, bool(*eff1_eff2_combinable_p)(effect, effect))
list load_statement_proper_regions(statement)
list list_of_effects_generic_sup_difference_op(list, list, bool(*)(effect, effect), list(*)(effect, effect))
void(* db_put_invariant_in_effects_func)(const char *, statement_effects)
void store_or_update_out_effects(statement, effects)
list effects_to_effects_map(list, effect(*)(effect))
void set_live_in_paths(statement_effects)
list effects_store_effects(list)
void init_cumulated_rw_effects(void)
void update_statement_inv_in_regions(statement, list)
void reset_useful_variables_effects(void)
void update_proper_references(statement, effects)
void error_reset_cumulated_rw_effects(void)
effects delete_rw_effects(statement)
list generic_proper_effects_of_complex_address_expression(expression, list *, int)
list(* fortran_effects_backward_translation_op)(entity, list, list, transformer)
void store_or_update_invariant_rw_pointer_effects(statement, effects)
bool effects_private_current_context_empty_p(void)
void error_reset_out_effects(void)
list load_invariant_rw_effects_list(statement)
statement_effects(* db_get_invariant_in_effects_func)(const char *)
void set_rw_effects(statement_effects)
void reset_invariant_in_effects(void)
void error_reset_effects_private_current_stmt_stack(void)
void store_in_effects(statement, effects)
void error_reset_in_effects(void)
void close_invariant_rw_pointer_effects(void)
void set_is_user_view_p(bool)
bool effects_private_current_stmt_empty_p(void)
effects load_expr_prw_effects(expression)
void set_live_out_regions(statement_effects)
void close_live_out_paths(void)
list generic_eval_cell_with_points_to(cell, descriptor, list, bool *, transformer, bool(*)(reference, descriptor, reference, descriptor, transformer, bool, bool *), void(*)(reference, descriptor, reference, descriptor, int, reference *, descriptor *, bool *), void(*)(reference, reference *, descriptor *))
void(* db_put_summary_in_effects_func)(const char *, list)
void store_invariant_rw_effects(statement, effects)
void update_statement_local_regions(statement, list)
void proper_effects_error_handler(void)
bool invariant_rw_effects_undefined_p(void)
bool effect_pointer_type_p(effect)
void(* db_put_in_effects_func)(const char *, statement_effects)
void store_rw_pointer_effects(statement, effects)
effects load_cumulated_references(statement)
persistant_expression_to_effects get_expr_prw_effects(void)
list effect_to_may_effect_list(effect)
void effect_to_must_effect(effect)
void reset_proper_rw_pointer_effects(void)
descriptor effects_undefined_vector_to_descriptor(Pvecteur)
effects delete_invariant_rw_pointer_effects(statement)
list generic_proper_effects_of_complex_address_dereferencing_cast_op(list, list *, bool)
list effects_undefined_union_over_range(list, entity, range, descriptor)
statement_effects get_cumulated_references(void)
void effects_to_may_effects(list)
list old_generic_proper_effects_of_complex_address_conditional_op(list, list *, bool)
void set_proper_references(statement_effects)
string action_interpretation(int tag)
void update_live_out_regions_list(statement, list)
void update_invariant_rw_effects(statement, effects)
list generic_proper_effects_of_address_expression(expression, int)
effect make_undefined_pointer_value_effect(action)
bool invariant_in_effects_undefined_p(void)
list(* effect_to_constant_path_effects_func)(effect)
list list_of_effects_generic_union_op(list, list, bool(*)(effect, effect), list(*)(effect, effect), list(*)(effect))
void store_or_update_in_effects(statement, effects)
bool live_out_summary_paths_engine(const char *)
void update_in_effects(statement, effects)
void close_in_effects(void)
int effects_private_current_stmt_size(void)
void close_live_out_regions(void)
statement effects_private_current_stmt_nth(int)
bool bound_rw_pointer_effects_p(statement)
list effects_read_effects_dup(list)
effect make_anywhere_effect(action)
void error_reset_invariant_rw_effects(void)
void error_reset_cumulated_in_effects(void)
void store_or_update_rw_effects(statement, effects)
transformer effects_private_current_context_head(void)
bool(* empty_context_test)(transformer)
effects delete_in_effects(statement)
void store_invariant_rw_pointer_effects_list(statement, list)
list generic_c_effects_forward_translation(entity, list, list, transformer)
void error_reset_cumulated_references(void)
bool live_out_region_engine(const char *, effects_representation_val)
list(* effects_intersection_op)(list, list, bool(*eff1_eff2_combinable_p)(effect, effect))
effects delete_invariant_rw_effects(statement)
void reset_live_out_paths(void)
list generic_proper_effects_of_complex_address_update_op(list, list *, bool)
void init_out_effects(void)
transformer(* load_completed_transformer_func)(statement)
bool live_in_summary_paths_engine(const char *)
liveness_analysis_engine.c
void make_effects_private_current_context_stack(void)
list effects_descriptors_variable_change_nop(list, entity, entity)
effect effect_nop(effect)
void set_contracted_rw_effects(bool)
rw_effects_engine.c
void init_cumulated_in_effects(void)
void error_reset_proper_rw_effects(void)
void reset_cumulated_references(void)
list(* c_effects_on_formal_parameter_backward_translation_func)(list, expression, transformer)
list load_out_effects_list(statement)
void init_cumulated_references(void)
bool useful_variables_effects_undefined_p(void)
void close_out_effects(void)
void store_live_out_paths(statement, effects)
list load_live_out_paths_list(statement)
void effect_add_dereferencing_dimension(effect)
list effects_lhs_expression_to_sinks(expression)
Returns a list of cells corresponding to the value,i.e.
void store_or_update_expr_prw_effects(expression, effects)
void close_cumulated_references(void)
transformer(* load_context_func)(statement)
bool proper_rw_effects_undefined_p(void)
void effect_to_write_effect(effect)
void reset_out_summary_effects_list(void)
out_effects_engine.c
void set_effects_private_current_stmt_stack(stack)
effects load_proper_rw_effects(statement)
statement_effects(* db_get_live_in_paths_func)(const char *)
list generic_effects_forward_translation(entity, list, list, transformer)
void store_or_update_proper_rw_pointer_effects(statement, effects)
list effects_composition_with_preconditions_nop(list, transformer, bool)
void close_expr_prw_effects(void)
list generic_proper_effects_of_read_reference(reference)
void make_effects_private_current_stmt_stack(void)
utils.c
bool live_out_paths_undefined_p(void)
effect(* proper_to_summary_effect_func)(effect)
list make_effects_for_array_declarations(list)
list(* effects_union_op)(list, list, bool(*eff1_eff2_combinable_p)(effect, effect))
bool bound_invariant_in_effects_p(statement)
string vect_debug_entity_name(entity)
list statement_modified_pointers_effects_list(statement)
void effects_private_current_stmt_rewrite(statement)
statement_effects get_rw_pointer_effects(void)
list generic_proper_effects_of_complex_address_cast_dereferencing_op(cast, expression, list *, bool)
void(* db_put_rw_effects_func)(const char *, statement_effects)
bool in_effects_engine(const char *, effects_representation_val)
bool bound_cumulated_rw_effects_p(statement)
void init_live_out_paths(void)
bool null_pointer_value_effect_p(effect)
list generic_proper_effects_of_range(range)
list generic_proper_effects_of_reference(reference, bool)
void(* effect_descriptor_interprocedural_translation_op)(effect)
list load_live_in_paths_list(statement)
statement_effects get_live_out_regions(void)
list list_of_effects_generic_binary_op(list, list, bool(*)(effect, effect), list(*)(effect, effect, bool, bool, bool *, bool *, list(*)(effect, effect)), list(*)(effect, effect), list(*)(effect), list(*)(effect))
binary_operators.c
list effects_undefined_descriptors_variable_change(list, entity, entity)
void store_in_effects_list(statement, list)
list proper_to_summary_effects(list)
list generic_r_proper_effects_of_call(call)
void(* db_put_useful_variables_effects_func)(const char *, entity_effects)
list db_get_empty_list(string)
void init_invariant_in_effects(void)
void(* effects_translation_end_func)(void)
void store_statement_cumulated_in_regions(statement, list)
list generic_proper_effects_of_complex_address_assign_dereferencing_op(expression, expression, list *, bool)
void store_or_update_cumulated_in_effects(statement, effects)
void(* effects_descriptor_normalize_func)(list)
list effects_to_effects_filter_map(list, bool(*)(effect), effect(*)(effect))
list effects_add_effect(list, effect)
list type_to_effects(type)
list get_out_summary_effects_list(void)
void effect_backward_translation_error(entity, effect)
void update_live_out_paths_list(statement, list)
list load_invariant_in_effects_list(statement)
pointer_info_val get_pointer_info_kind(void)
void descriptor_variable_rename(descriptor, entity, entity)
bool effects_write_at_least_once_p(list)
list effects_read_effects(list)
void reset_cumulated_in_effects(void)
statement_effects get_cumulated_rw_effects(void)
list(* effects_transformer_composition_op)(list, transformer)
effects load_invariant_in_effects(statement)
void(* db_put_invariant_rw_effects_func)(const char *, statement_effects)
list proper_effects_contract(list)
void error_reset_proper_rw_pointer_effects(void)
void store_proper_rw_effects_list(statement, list)
effect make_some_anywhere_effect(action, entity)
effects load_in_effects(statement)
statement_effects(* db_get_invariant_rw_effects_func)(const char *)
list(* effect_to_store_independent_effect_list_func)(effect, bool)
bool(* effect_consistent_p_func)(effect)
bool cumulated_rw_effects_undefined_p(void)
void expression_proper_effects_engine(const char *, statement)
void close_proper_rw_pointer_effects(void)
bool abstract_effect_in_effect_list_p(action, type, list)
effects load_live_out_regions(statement)
void store_cumulated_in_effects(statement, effects)
statement_effects get_proper_rw_pointer_effects(void)
list effect_to_constant_path_effects_with_no_pointer_information(effect)
statement_effects get_proper_references(void)
void array_effects_to_may_effects(list)
void proper_effects_of_module_statement(statement)
void update_invariant_rw_pointer_effects_list(statement, list)
void(* loop_range_in_effect_func)(loop, list *, list *, bool(*)(effect, effect), entity *, range)
void store_or_update_proper_references(statement, effects)
effects load_invariant_rw_pointer_effects(statement)
void reset_action_interpretation(void)
statement_effects(* db_get_live_out_paths_func)(const char *)
void update_proper_rw_effects_list(statement, list)
void close_invariant_rw_effects(void)
void error_reset_expr_prw_effects(void)
void init_live_in_paths(void)
void store_proper_rw_pointer_effects(statement, effects)
bool out_effects_engine(const char *, effects_representation_val)
void store_rw_effects_list(statement, list)
list effects_write_effects_dup(list)
list generic_fortran_effects_backward_translation(entity, list, list, transformer)
interprocedural.c
list list_of_effects_generic_cells_inf_difference_op(list, list, bool(*)(effect, effect), list(*)(effect, effect))
list generic_proper_effects_of_complex_memory_access_expression(expression, list *, list *, int)
void init_invariant_rw_pointer_effects(void)
bool summary_in_effects_engine(const char *)
in_effects_engine.c
void update_invariant_in_effects(statement, effects)
void effects_filter_map(list, bool(*)(effect), void(*)(effect))
void add_range_information_to_cells(list, expression)
list load_statement_inv_regions(statement)
list generic_effect_find_aliases_with_simple_pointer_values(effect, list, bool *, transformer, bool(*)(cell, descriptor, cell, descriptor, transformer, bool, bool *), void(*)(cell, descriptor, cell, descriptor, int, cell *, descriptor *, bool *), void(*)(cell, descriptor, cell, descriptor, int, cell *, descriptor *, bool *), bool(*)(cell, descriptor, cell, descriptor, bool *), bool(*)(cell, descriptor, cell, descriptor, bool *), void(*)(cell, cell *, descriptor *))
void error_reset_live_out_paths(void)
effects load_rw_pointer_effects(statement)
void close_rw_effects(void)
void update_cumulated_rw_effects_list(statement, list)
list generic_proper_effects_of_written_reference(reference)
void store_statement_inv_regions(statement, list)
void close_cumulated_in_effects(void)
void init_useful_variables_effects(void)
bool bound_in_effects_p(statement)
bool in_effects_undefined_p(void)
list load_proper_rw_effects_list(statement)
list cells_to_read_effects(list)
bool bound_cumulated_references_p(statement)
expression count_and_offset_expressions_to_range_expression(expression, expression)
list effects_composition_with_transformer_nop(list, transformer)
void add_a_generic_prettyprint(string, bool, generic_text_function, generic_prettyprint_function, generic_attachment_function)
descriptor(* loop_descriptor_make_func)(loop)
entity_effects get_useful_variables_effects(void)
bool(* cell_preceding_p_func)(cell, descriptor, cell, descriptor, bool, bool *)
void add_precondition_information_to_effects(list)
void set_invariant_rw_pointer_effects(statement_effects)
void store_rw_effects(statement, effects)
void(* effect_free_func)(effect eff)
list load_rw_pointer_effects_list(statement)
bool w_r_combinable_p(effect, effect)
statement_effects get_cumulated_in_effects(void)
void close_live_in_paths(void)
void reset_proper_references(void)
transformer descriptor_to_context(descriptor)
bool bound_proper_rw_effects_p(statement)
effects load_cumulated_in_effects(statement)
list(* effects_local_to_global_translation_op)(list)
statement effects_private_current_stmt_replace(statement)
void update_cumulated_references(statement, effects)
statement_effects get_invariant_rw_pointer_effects(void)
list effects_union_over_range_nop(list, entity, range, descriptor)
effects delete_expr_prw_effects(expression)
transformer transformer_remove_variable_and_dup(transformer, entity)
list generic_proper_effects_of_any_lhs(expression)
void(* attach_effects_decoration_to_text_func)(text)
int effects_private_current_context_size(void)
void init_rw_effects(void)
void store_or_update_rw_pointer_effects(statement, effects)
list(* db_get_summary_in_effects_func)(const char *)
effect(* reference_to_effect_func)(reference, action, bool)
statement_effects(* db_get_out_effects_func)(const char *)
void error_reset_invariant_rw_pointer_effects(void)
void store_or_update_live_in_paths(statement, effects)
expression count_expression_to_range_expression(expression)
statement effects_private_current_stmt_pop(void)
void store_useful_variables_effects(entity, effects)
void error_reset_invariant_in_effects(void)
void update_live_out_paths(statement, effects)
bool expr_prw_effects_undefined_p(void)
bool region_weakly_consistent_p(effect)
list load_invariant_rw_pointer_effects_list(statement)
list proper_effects_combine(list, bool)
void reset_out_effects(void)
void update_in_effects_list(statement, list)
list effects_entities_inf_difference(list, list, bool(*)(effect, effect))
void set_live_out_paths(statement_effects)
transformer effects_private_current_context_nth(int)
void update_live_in_paths(statement, effects)
void effects_map(list, void(*)(effect))
unary_operators.c
descriptor loop_undefined_descriptor_make(loop)
void(* db_put_out_effects_func)(const char *, statement_effects)
effect make_declaration_effect(entity, bool)
bool regions_weakly_consistent_p(list)
void set_proper_rw_pointer_effects(statement_effects)
bool print_source_or_code_effects_engine(const char *, string, bool)
void error_reset_effects_private_current_context_stack(void)
bool get_descriptor_range_p(void)
effect make_anywhere_write_memory_effect(void)
void update_cumulated_rw_effects(statement, effects)
stack get_effects_private_current_stmt_stack(void)
void update_expr_prw_effects(expression, effects)
void effects_computation_no_init(const char *)
void store_invariant_in_effects_list(statement, list)
void set_descriptor_range_p(bool)
void set_useful_variables_effects(entity_effects)
text get_any_effect_type_text(const char *, string, string, bool)
void effects_to_proper_approximation(list)
void store_or_update_cumulated_references(statement, effects)
list cells_to_write_effects(list)
void update_rw_pointer_effects_list(statement, list)
void store_or_update_live_out_paths(statement, effects)
void update_cummulated_in_effects_list(statement, list)
void store_or_update_useful_variables_effects(entity, effects)
void store_live_out_regions_list(statement, list)
bool bound_expr_prw_effects_p(expression)
void update_proper_rw_effects(statement, effects)
statement_effects get_invariant_in_effects(void)
void(* db_put_live_out_paths_func)(const char *, statement_effects)
void reset_proper_rw_effects(void)
void update_cumulated_in_effects(statement, effects)
void free_effects_private_current_stmt_stack(void)
list effect_to_nil_list_and_free(effect)
effects load_useful_variables_effects(entity)
list clean_anywhere_effects(list)
effects delete_cumulated_rw_effects(statement)
void update_live_in_paths_list(statement, list)
bool effects_combinable_p(effect, effect)
list effect_to_nil_list(effect)
bool proper_rw_pointer_effects_undefined_p(void)
list recursive_type_to_effects(type, set)
statement_effects get_live_in_paths(void)
list generic_effects_store_update(list, statement, bool)
list generic_proper_effects_of_complex_address_address_of_dereferencing_op(expression, list *, bool)
effects delete_invariant_in_effects(statement)
void(* generic_prettyprint_function)(list)
void rw_effects_of_module_statement(statement)
void(* effects_computation_init_func)(const char *)
void init_proper_rw_effects(void)
bool bound_proper_rw_pointer_effects_p(statement)
void set_proper_rw_effects(statement_effects)
list generic_proper_effects_of_derived_reference(reference, bool)
void reset_effects_private_current_stmt_stack(void)
bool cumulated_references_undefined_p(void)
text(* effects_to_text_func)(list)
bool undefined_pointer_value_effect_p(effect)
list(* db_get_summary_out_effects_func)(const char *)
void reset_rw_pointer_effects(void)
void close_rw_pointer_effects(void)
bool normalizable_and_linear_loop_p(entity, range)
entity_effects(* db_get_useful_variables_effects_func)(const char *)
list generic_effects_backward_translation(entity, list, list, transformer)
void(* db_put_live_in_summary_paths_func)(const char *, list)
effects load_proper_references(statement)
list load_in_effects_list(statement)
void store_proper_rw_pointer_effects_list(statement, list)
descriptor descriptor_inequality_add(descriptor, Pvecteur)
bool effects_private_current_context_stack_initialized_p(void)
void effects_private_current_context_rewrite(transformer)
bool live_paths_engine(const char *, effects_representation_val)
bool check_sdfi_effects_p(entity, list)
void set_rw_pointer_effects(statement_effects)
bool effects_scalars_and_same_action_p(effect, effect)
statement_effects(* db_get_cumulated_in_effects_func)(const char *)
void store_out_effects(statement, effects)
bool summary_out_effects_engine(const char *)
bool live_out_regions_undefined_p(void)
void effects_to_must_effects(list)
statement effects_private_current_stmt_head(void)
transformer effects_private_current_context_replace(transformer)
void(* db_put_live_out_summary_paths_func)(const char *, list)
list generic_proper_effects_of_complex_address_assign_op(list, list *, bool)
bool statement_has_a_formal_argument_write_effect_p(statement)
void store_statement_inv_in_regions(statement, list)
list(* effects_test_union_op)(list, list, bool(*eff1_eff2_combinable_p)(effect, effect))
list generic_proper_effects_of_c_function_call_argument(expression)
effects delete_out_effects(statement)
list generic_proper_effects_of_subscript(subscript)
void update_rw_effects_list(statement, list)
void set_cumulated_rw_effects(statement_effects)
void set_out_effects(statement_effects)
void error_reset_proper_references(void)
void effects_private_current_stmt_push(statement)
bool bound_rw_effects_p(statement)
void set_cumulated_references(statement_effects)
void store_or_update_invariant_rw_effects(statement, effects)
list effect_to_effects_with_given_tag(effect, tag)
list effects_expression_to_points_to_sinks(expression)
list effects_to_constant_path_effects_with_no_pointer_information(list)
statement_effects get_live_out_paths(void)
void error_reset_rw_effects(void)
void error_reset_live_out_regions(void)
descriptor descriptor_append(descriptor, descriptor)
void(* effects_translation_init_func)(entity, list, bool)
void set_action_interpretation(string, string)
prettyprint.c
bool rw_effects_undefined_p(void)
bool bound_cumulated_in_effects_p(statement)
void set_in_effects(statement_effects)
list generic_effect_find_equivalent_simple_pointer_values(effect, list, cell_relation *, list *, bool(*)(cell, descriptor, cell, descriptor, bool *), bool(*)(cell, descriptor, cell, descriptor, bool *), void(*)(cell, cell *, descriptor *))
find pointer_values in l_in which give (possible or exact) paths equivalent to eff.
void store_invariant_rw_pointer_effects(statement, effects)
bool summary_rw_effects_engine(const char *)
list load_cumulated_in_effects_list(statement)
effects delete_proper_references(statement)
void store_or_update_cumulated_rw_effects(statement, effects)
void reset_in_effects(void)
void close_invariant_in_effects(void)
bool bound_invariant_rw_effects_p(statement)
void effect_to_may_effect(effect)
effect make_anywhere_read_memory_effect(void)
void store_cumulated_rw_effects_list(statement, list)
bool w_w_combinable_p(effect, effect)
effects delete_proper_rw_pointer_effects(statement)
bool rw_pointer_effects_undefined_p(void)
void update_invariant_rw_effects_list(statement, list)
list(* effects_loop_normalize_func)(list, entity, range, entity *, descriptor, bool)
list generic_intermediary_proper_effects_of_reference(reference)
bool rw_effects_engine(const char *)
void reset_generic_prettyprints(void)
void reset_expr_prw_effects(void)
list generic_p_proper_effect_of_reference(reference, effect *, bool, bool)
list filter_effects_with_declaration(list, entity)
void store_statement_local_regions(statement, list)
void update_statement_inv_regions(statement, list)
bool bound_live_out_regions_p(statement)
list load_rw_effects_list(statement)
bool effects_private_current_context_filter(transformer)
list effects_entities_intersection(list, list, bool(*)(effect, effect))
void(* effect_prettyprint_func)(effect)
list effect_intermediary_pointer_paths_effect(effect)
void set_contracted_proper_effects(bool)
end of effects-generic-local.h
list load_cumulated_rw_effects_list(statement)
list backward_translation_of_points_to_formal_context_effect(entity, list, effect, set)
void reset_invariant_rw_pointer_effects(void)
bool live_in_paths_undefined_p(void)
bool get_constant_paths_p(void)
statement_effects get_rw_effects(void)
void(* db_put_summary_out_effects_func)(const char *, list)
void store_or_update_live_out_regions(statement, effects)
list effects_undefined_loop_normalize(list, entity, range, entity *, descriptor, bool)
void error_reset_useful_variables_effects(void)
effects load_cumulated_rw_effects(statement)
void update_rw_effects(statement, effects)
void set_expr_prw_effects(persistant_expression_to_effects)
list effects_undefined_composition_with_transformer(list, transformer)
list(* effects_descriptors_variable_change_func)(list, entity, entity)
effect make_typed_anywhere_effect(action, type)
list(* db_get_live_out_summary_paths_func)(const char *)
list effects_undefined_binary_operator(list, list, bool(*)(effect, effect))
void store_statement_proper_regions(statement, list)
list generic_c_effects_backward_translation(entity, list, list, transformer)
statement_effects get_in_effects(void)
void store_cumulated_in_effects_list(statement, list)
effects load_rw_effects(statement)
list cells_to_read_or_write_effects(list, bool)
void close_proper_references(void)
list effects_to_written_scalar_entities(list)
void set_prettyprint_with_attachments(bool)
void init_proper_rw_pointer_effects(void)
descriptor(* vector_to_descriptor_func)(Pvecteur)
list list_of_effects_generic_intersection_op(list, list, bool(*)(effect, effect), list(*)(effect, effect))
list list_of_effects_generic_inf_difference_op(list, list, bool(*)(effect, effect), list(*)(effect, effect))
list new_generic_proper_effects_of_complex_address_conditional_op(list, list *, bool)
void store_live_in_paths_list(statement, list)
void(* db_put_summary_rw_effects_func)(const char *, list)
void store_cumulated_rw_effects(statement, effects)
list effects_write_effects(list)
void(* effect_add_expression_dimension_func)(effect eff, expression exp)
void update_out_effects(statement, effects)
list generic_proper_effects_of_complex_address_conditional_dereferencing_op(expression, expression, expression, list *, bool)
void store_out_effects_list(statement, list)
bool find_write_effect_on_entity(statement, entity)
type simple_effect_reference_type(reference)
list generic_proper_effects_of_expression(expression)
bool invariant_rw_pointer_effects_undefined_p(void)
void store_live_out_paths_list(statement, list)
void effect_to_read_effect(effect)
effects load_live_out_paths(statement)
void init_rw_pointer_effects(void)
void init_invariant_rw_effects(void)
effect make_null_pointer_value_effect(action)
void update_last_reference_subscript(reference, expression)
void store_live_in_paths(statement, effects)
list effects_loop_normalize_nop(list, entity, range, entity *, descriptor, bool)
bool effects_reference_sharing_p(list, bool)
void store_or_update_invariant_in_effects(statement, effects)
effects load_proper_rw_pointer_effects(statement)
list generic_proper_effects_of_application(application)
void reset_invariant_rw_effects(void)
void update_live_out_regions(statement, effects)
bool r_r_combinable_p(effect, effect)
list(* db_get_live_in_summary_paths_func)(const char *)
void update_out_effects_list(statement, list)
effects delete_useful_variables_effects(entity)
void(* effects_computation_reset_func)(const char *)
void(* db_put_cumulated_in_effects_func)(const char *, statement_effects)
void store_invariant_rw_effects_list(statement, list)
statement_effects get_out_effects(void)
void generic_print_effects(list)
list load_statement_out_regions(statement)
bool some_integer_scalar_read_or_write_effects_p(cons *)
bool proper_references_undefined_p(void)
mappings.c
effects delete_proper_rw_effects(statement)
bool bound_proper_references_p(statement)
text(* generic_text_function)(list)
prettyprint function types:
void reset_effects_private_current_context_stack(void)
list load_statement_cumulated_in_regions(statement)
bool empty_context_test_false(transformer)
void store_rw_pointer_effects_list(statement, list)
list(* effects_inf_difference_op)(list, list, bool(*eff1_eff2_combinable_p)(effect, effect))
stack get_effects_private_current_context_stack(void)
bool out_effects_undefined_p(void)
bool bound_live_in_paths_p(statement)
effect(* effect_dup_func)(effect eff)
statement_effects(* db_get_in_effects_func)(const char *)
transformer effects_private_current_context_pop(void)
void effects_to_read_effects(list)
transformer load_undefined_context(statement)
list(* fortran_effects_forward_translation_op)(entity, list, list, transformer)
void(* effect_change_ith_dimension_expression_func)(effect eff, expression exp, int i)
list c_actual_argument_to_may_summary_effects(expression, tag)
void generic_effects_reset_all_methods(void)
void store_proper_references(statement, effects)
list load_statement_in_regions(statement)
void store_statement_out_regions(statement, list)
void reset_live_in_paths(void)
void(* db_put_proper_rw_effects_func)(const char *, statement_effects)
void close_useful_variables_effects(void)
bool r_w_combinable_p(effect, effect)
bool bound_live_out_paths_p(statement)
void error_reset_rw_pointer_effects(void)
void set_pointer_info_kind(pointer_info_val)
methods.c
effect make_generic_anywhere_effect(action, reference)
void effects_private_current_context_push(transformer)
list effects_dup_without_variables(list, list)
list list_of_effects_generic_cells_intersection_op(list, list, bool(*)(effect, effect), list(*)(effect, effect))
effects delete_live_out_regions(statement)
void effects_computation_no_reset(const char *)
list(* eval_cell_with_points_to_func)(cell, descriptor, list, bool *, transformer)
list pointer_effects_to_constant_path_effects(list)
list generic_effect_generate_all_accessible_paths_effects_with_level(effect, type, tag, bool, int, bool)
list effect_to_list(effect)
void(* generic_attachment_function)(text)
bool proper_effects_engine(const char *)
void set_invariant_rw_effects(statement_effects)
void(* effects_prettyprint_func)(list)
statement_effects(* db_get_proper_rw_effects_func)(const char *)
bool effects_private_current_stmt_filter(statement)
list(* effects_union_over_range_op)(list, entity, range, descriptor)
void effect_add_field_dimension(effect, entity)
void(* db_put_live_in_paths_func)(const char *, statement_effects)
void error_reset_live_in_paths(void)
list effects_lhs_expression_to_sources(expression)
Returns a list of cells corresponding to the possibles values, i.e.
bool statement_io_effect_p(statement)
void set_a_generic_prettyprint(string, bool, gen_chunk *, generic_text_function, generic_prettyprint_function, generic_attachment_function)
effects load_live_in_paths(statement)
void store_cumulated_references(statement, effects)
list effects_to_nil_list(effect, effect)
void init_expr_prw_effects(void)
bool print_source_or_code_with_any_effects_engine(const char *, string, string, string, bool)
void reset_cumulated_rw_effects(void)
list load_proper_rw_pointer_effects_list(statement)
list(* effects_transformer_inverse_composition_op)(list, transformer)
effects load_invariant_rw_effects(statement)
list generic_proper_effects_of_intrinsic(entity, list)
intrinsics.c
list generic_effect_generate_all_accessible_paths_effects(effect, type, tag)
void store_invariant_in_effects(statement, effects)
list load_statement_local_regions(statement)
void reset_rw_effects(void)
void init_in_effects(void)
bool bound_useful_variables_effects_p(entity)
int effects_statement_line_number(void)
eval.c
bool cells_combinable_p(cell, cell)
bool effects_same_action_p(effect, effect)
effects delete_live_out_paths(statement)
effects delete_cumulated_in_effects(statement)
void set_constant_paths_p(bool)
void store_expr_prw_effects(expression, effects)
list load_statement_inv_in_regions(statement)
effects_representation_val
bool effects_private_current_stmt_stack_initialized_p(void)
list(* db_get_summary_rw_effects_func)(const char *)
set safe_user_call_to_points_to_interprocedural_binding_set(entity, list)
list summary_effects_from_declaration(const char *)
bool(* stmt_strongly_feasible_p_func)(statement)
statement_effects get_proper_rw_effects(void)
statement_effects get_invariant_rw_effects(void)
void set_effects_private_current_context_stack(stack)
void effects_translate_fields_compilation_unit(list, string, string)
void update_invariant_in_effects_list(statement, list)
list load_live_out_regions_list(statement)
void update_proper_rw_pointer_effects(statement, effects)
void close_proper_rw_effects(void)
list(* effects_precondition_composition_op)(list, transformer, bool)
effects delete_rw_pointer_effects(statement)
bool r_effect_pointer_type_p(effect, list, type)
statement_effects(* db_get_rw_effects_func)(const char *)
void store_statement_in_regions(statement, list)
bool cumulated_in_effects_undefined_p(void)
list generic_proper_effects_of_expressions(list)
effects delete_live_in_paths(statement)
list generic_reference_to_points_to_matching_list(reference, descriptor, size_t *, bool *, transformer, list, void(*)(reference, reference *, descriptor *), bool(*)(reference, descriptor, reference, descriptor, transformer, bool, bool *))
This function has been outlined from generic_eval_cell_with_points_to() to reduce the size of a funct...
void store_or_update_proper_rw_effects(statement, effects)
list effects_expression_to_points_to_sources(expression)
points_to.c
bool effects_same_variable_p(effect, effect)
void init_proper_references(void)
list(* c_effects_on_actual_parameter_forward_translation_func)(entity, expression, entity, list, transformer)
struct _newgen_struct_cell_ * cell
struct _newgen_struct_statement_effects_ * statement_effects
struct _newgen_struct_descriptor_ * descriptor
struct _newgen_struct_entity_effects_ * entity_effects
struct _newgen_struct_range_ * range
int bool
we cannot use an enum or stdbool because we need to be compatible with newgen, thus boolean need to h...
struct _newgen_struct_transformer_ * transformer
le type des coefficients dans les vecteurs: Value est defini dans le package arithmetique
FI: I do not understand why the type is duplicated at the set level.
The structure used to build lists in NewGen.
struct _newgen_struct_text_ * text
A gen_chunk is used to store every object.
#define exp
Avoid some warnings from "gcc -Wshadow".
struct Svecteur * Pvecteur