25 #include "pips_config.h"
49 #include "resources.h"
67 DB_GETPUT_SE(simple_proper_rw_pointer_effects, PROPER_POINTER_EFFECTS)
68 DB_GETNOPUT_SE(simple_invariant_rw_pointer_effects, CUMULATED_POINTER_EFFECTS)
69 DB_GETPUT_SE(simple_rw_pointer_effects, CUMULATED_POINTER_EFFECTS)
70 DB_GETPUT_LS(simple_summary_rw_pointer_effects, SUMMARY_POINTER_EFFECTS)
79 DB_GETPUT_SE(simple_cumulated_in_effects, CUMULATED_IN_EFFECTS)
80 DB_GET_SE(simple_invariant_in_effects, IN_EFFECTS)
82 DB_GETPUT_LS(simple_summary_in_effects, IN_SUMMARY_EFFECTS)
83 DB_GETPUT_LS(simple_summary_out_effects, OUT_SUMMARY_EFFECTS)
87 DB_GETPUT_LS(simple_live_in_summary_paths, LIVE_IN_SUMMARY_PATHS)
88 DB_GETPUT_LS(simple_live_out_summary_paths, LIVE_OUT_SUMMARY_PATHS)
99 static void db_put_null(
107 static void simple_in_effect_loop_range_fix(
float a2sf[2] __attribute__((aligned(16)))
USER generates a user error (i.e., non fatal) by printing the given MSG according to the FMT.
void free_effect(effect p)
bool effect_consistent_p(effect p)
effect copy_effect(effect p)
EFFECT.
struct _newgen_struct_effect_ * effect
#define DB_GETPUT_LS(name, NAME)
#define DB_GETNOPUT_SE(name, NAME)
void(* generic_prettyprint_function)(list)
#define DB_GETNOPUT_LS(name, NAME)
#define DB_NOPUT_SE(name)
#define DB_GETPUT_SE(name, NAME)
#define DB_GET_SE(name, NAME)
for db_* functions
text(* generic_text_function)(list)
prettyprint function types:
transformer load_undefined_transformer(statement)
transformer(* load_transformer_func)(statement)
effect(* effect_union_op)(effect, effect)
list(* effects_sup_difference_op)(list, list, bool(*eff1_eff2_combinable_p)(effect, effect))
void(* db_put_invariant_in_effects_func)(const char *, statement_effects)
list(* fortran_effects_backward_translation_op)(entity, list, list, transformer)
statement_effects(* db_get_invariant_in_effects_func)(const char *)
void(* db_put_summary_in_effects_func)(const char *, list)
void(* db_put_in_effects_func)(const char *, statement_effects)
descriptor effects_undefined_vector_to_descriptor(Pvecteur)
void effects_to_may_effects(list)
list(* effect_to_constant_path_effects_func)(effect)
bool(* empty_context_test)(transformer)
list(* effects_intersection_op)(list, list, bool(*eff1_eff2_combinable_p)(effect, effect))
transformer(* load_completed_transformer_func)(statement)
list effects_descriptors_variable_change_nop(list, entity, entity)
effect effect_nop(effect)
void set_contracted_rw_effects(bool)
rw_effects_engine.c
list(* c_effects_on_formal_parameter_backward_translation_func)(list, expression, transformer)
transformer(* load_context_func)(statement)
statement_effects(* db_get_live_in_paths_func)(const char *)
list effects_composition_with_preconditions_nop(list, transformer, bool)
effect(* proper_to_summary_effect_func)(effect)
list(* effects_union_op)(list, list, bool(*eff1_eff2_combinable_p)(effect, effect))
void(* db_put_rw_effects_func)(const char *, statement_effects)
void(* effect_descriptor_interprocedural_translation_op)(effect)
list effects_undefined_descriptors_variable_change(list, entity, entity)
void(* db_put_useful_variables_effects_func)(const char *, entity_effects)
void(* effects_translation_end_func)(void)
void(* effects_descriptor_normalize_func)(list)
pointer_info_val get_pointer_info_kind(void)
list(* effects_transformer_composition_op)(list, transformer)
void(* db_put_invariant_rw_effects_func)(const char *, statement_effects)
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)
list effect_to_constant_path_effects_with_no_pointer_information(effect)
void(* loop_range_in_effect_func)(loop, list *, list *, bool(*)(effect, effect), entity *, range)
void reset_action_interpretation(void)
statement_effects(* db_get_live_out_paths_func)(const char *)
list effects_composition_with_transformer_nop(list, transformer)
descriptor(* loop_descriptor_make_func)(loop)
void(* effect_free_func)(effect eff)
list(* effects_local_to_global_translation_op)(list)
list effects_union_over_range_nop(list, entity, range, descriptor)
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 *)
descriptor loop_undefined_descriptor_make(loop)
void(* db_put_out_effects_func)(const char *, statement_effects)
void effects_computation_no_init(const char *)
void set_descriptor_range_p(bool)
void(* db_put_live_out_paths_func)(const char *, statement_effects)
void(* effects_computation_init_func)(const char *)
text(* effects_to_text_func)(list)
list(* db_get_summary_out_effects_func)(const char *)
bool normalizable_and_linear_loop_p(entity, range)
entity_effects(* db_get_useful_variables_effects_func)(const char *)
void(* db_put_live_in_summary_paths_func)(const char *, list)
statement_effects(* db_get_cumulated_in_effects_func)(const char *)
void(* db_put_live_out_summary_paths_func)(const char *, list)
list(* effects_test_union_op)(list, list, bool(*eff1_eff2_combinable_p)(effect, effect))
void(* effects_translation_init_func)(entity, list, bool)
void set_action_interpretation(string, string)
prettyprint.c
list(* effects_loop_normalize_func)(list, entity, range, entity *, descriptor, bool)
list effects_entities_intersection(list, list, bool(*)(effect, effect))
void(* effect_prettyprint_func)(effect)
void set_contracted_proper_effects(bool)
end of effects-generic-local.h
bool get_constant_paths_p(void)
void(* db_put_summary_out_effects_func)(const char *, list)
list effects_undefined_loop_normalize(list, entity, range, entity *, descriptor, bool)
list effects_undefined_composition_with_transformer(list, transformer)
list(* effects_descriptors_variable_change_func)(list, entity, entity)
list(* db_get_live_out_summary_paths_func)(const char *)
list effects_undefined_binary_operator(list, list, bool(*)(effect, effect))
descriptor(* vector_to_descriptor_func)(Pvecteur)
void(* db_put_summary_rw_effects_func)(const char *, list)
void(* effect_add_expression_dimension_func)(effect eff, expression exp)
list effects_loop_normalize_nop(list, entity, range, entity *, descriptor, bool)
list(* db_get_live_in_summary_paths_func)(const char *)
void(* effects_computation_reset_func)(const char *)
void(* db_put_cumulated_in_effects_func)(const char *, statement_effects)
bool empty_context_test_false(transformer)
list(* effects_inf_difference_op)(list, list, bool(*eff1_eff2_combinable_p)(effect, effect))
effect(* effect_dup_func)(effect eff)
statement_effects(* db_get_in_effects_func)(const char *)
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)
void(* db_put_proper_rw_effects_func)(const char *, statement_effects)
bool r_w_combinable_p(effect, effect)
void effects_computation_no_reset(const char *)
list(* eval_cell_with_points_to_func)(cell, descriptor, list, bool *, transformer)
void(* effects_prettyprint_func)(list)
statement_effects(* db_get_proper_rw_effects_func)(const char *)
list(* effects_union_over_range_op)(list, entity, range, descriptor)
void(* db_put_live_in_paths_func)(const char *, statement_effects)
list(* effects_transformer_inverse_composition_op)(list, transformer)
list(* db_get_summary_rw_effects_func)(const char *)
bool(* stmt_strongly_feasible_p_func)(statement)
list(* effects_precondition_composition_op)(list, transformer, bool)
statement_effects(* db_get_rw_effects_func)(const char *)
list(* c_effects_on_actual_parameter_forward_translation_func)(entity, expression, entity, list, transformer)
list EffectsMustUnion(list l1, list l2, bool(*union_combinable_p)(effect, effect))
list EffectsMustUnion(list l1, list l2, union_combinable_p) input : two lists of effects output : a l...
list EffectsMayUnion(list l1, list l2, bool(*union_combinable_p)(effect, effect))
list EffectsMayUnion(list l1, list l2, union_combinable_p) input : two lists of effects output : a li...
list ReferenceTestUnion(list l1, list l2, bool(*union_combinable_p)(effect, effect) __attribute__((unused)))
list ReferenceUnion(list l1, list l2, bool(*union_combinable_p)(effect, effect) __attribute__((unused)))
package effect: new version by Beatrice Creusillet
list ProperEffectsMustUnion(list l1, list l2, bool(*union_combinable_p)(effect, effect))
list EffectsMustUnion(list l1, list l2, union_combinable_p) input : two lists of effects output : a l...
list EffectsInfDifference(list l1, list l2, bool(*difference_combinable_p)(effect, effect))
list EffectsInfDifference(list l1, l2) input : two lists of effects output : a list of effect,...
list EffectsSupDifference(list l1, list l2, bool(*difference_combinable_p)(effect, effect))
list EffectsSupDifference(list l1, l2) input : two lists of effects output : a list of effect,...
effect effect_must_union(effect eff1, effect eff2)
computes the must union of two combinable effects
effect proper_to_summary_simple_effect(effect eff)
FI: the goal is to get rid of array subscripts to handle the arrays atomically.
effect reference_to_reference_effect(reference, action, bool)
void reset_methods_for_inout_effects(void)
text simple_inout_effects_to_text(list)
void set_methods_for_proper_simple_effects(void)
list effect_to_store_independent_sdfi_list(effect, bool)
bool proper_references(const string)
void simple_effect_descriptor_interprocedural_translation(effect)
void set_methods_for_inout_effects(const char *)
text simple_rw_effects_to_text(list)
prettyprint.c
list simple_effect_to_constant_path_effects_with_points_to(effect)
void simple_effects_descriptor_normalize(list)
void set_methods_for_proper_simple_pointer_effects(void)
list c_simple_effects_on_formal_parameter_backward_translation(list, expression, transformer)
void simple_effect_change_ith_dimension_expression(effect, expression, int)
void simple_effect_add_expression_dimension(effect, expression)
list simple_effect_to_constant_path_effects_with_pointer_values(effect)
list effects_dynamic_elim(list)
void simple_effects_translation_init(entity, list, bool)
interprocedural.c
list c_simple_effects_on_actual_parameter_forward_translation(entity, expression, entity, list, transformer)
void set_methods_for_proper_references(void)
methods.c
effect reference_to_simple_effect(reference, action, bool)
unary_operators.c
void set_default_methods_for_proper_simple_effects(void)
void set_methods_for_live_in_paths_prettyprint(const char *)
void set_methods_for_simple_pointer_effects(void)
list simple_effects_backward_translation(entity, list, list, transformer)
text simple_live_out_paths_to_text(list)
void reset_methods_for_effects_prettyprint(const char *)
effect simple_effect_dup(effect)
void set_methods_for_cumulated_references(void)
void set_methods_for_simple_effects(void)
text simple_live_in_paths_to_text(list)
list eval_simple_cell_with_points_to(cell, descriptor, list, bool *, transformer)
bool cumulated_references(const string)
interface.c
void set_methods_for_live_paths(const char *)
list simple_effects_composition_with_effect_transformer(list, transformer)
list simple_effects_union_over_range(list, entity, range, descriptor)
void set_methods_for_live_out_paths_prettyprint(const char *)
list simple_effects_forward_translation(entity, list, list, transformer)
void set_methods_for_rw_effects_prettyprint(const char *)
void simple_effects_translation_end(void)
void set_methods_for_inout_effects_prettyprint(const char *)
#define entity_effects_undefined
const char * module_name(const char *s)
Return the module part of an entity name.
void gen_full_free_list(list l)
bool loop_executed_never_p(loop l)
Check if loop bound are constant and then if upper < lower.
bool loop_executed_at_least_once_p(loop l)
Check if loop bound are constant and then if upper >= lower.
#define NIL
The empty list (nil in Lisp)
#define pips_debug
these macros use the GNU extensions that allow variadic macros, including with an empty list.
#define pips_internal_error
The structure used to build lists in NewGen.