25 #include "pips_config.h"
122 pips_debug(9,
"call sc_restricted_to_variables_transitive_closure for:\t\n");
281 for (r_args = real_args, arg_num = 1; r_args !=
NIL;
282 r_args =
CDR(r_args), arg_num++)
284 pips_debug(9,
"compare formal parameter arg_num %03d\n",arg_num);
346 pips_debug(9,
"relative to initial store:\n\t");
539 DBR_CUMULATED_EFFECTS,
591 debug_on(
"ALIAS_PAIRS_DEBUG_LEVEL");
627 debug_on(
"ALIAS_PAIRS_DEBUG_LEVEL");
float a2sf[2] __attribute__((aligned(16)))
USER generates a user error (i.e., non fatal) by printing the given MSG according to the FMT.
effects_classes make_effects_classes(list a)
effects make_effects(list a)
static const char * caller_name
static statement current_caller_stmt
static bool add_alias_pairs_for_this_call_site(call call_site)
constructs the alias pairs for this call site and adds them to the list global vars IN: callee,...
static void add_parameter_aliases_for_this_call_site(call call_site __attribute__((unused)), transformer context, list real_args)
static void add_parameter_aliases_for_this_call_site(call call_site, transformer context,...
static region convert_exact_to_exact_may(region reg)
"convert" EXACT regions to exact representations of MAY-in-the-usual-dataflow-sense regions
static region approx_convert_may_to_approx_may(region reg)
all MAY regions are "converted" to over-approximate representations of MAY-in-the-usual-dataflow-sens...
static Pbase make_base_phi_variables(region reg)
creation of a Pbase containing just the PHI variables of the region
static bool stmt_filter(statement s)
modifies global var current_caller_stmt
dg_vertex_label vertex_label
bool in_alias_pairs(const string module_name)
top-level creation of pairs of aliases of IN regions of the module modifies global vars callee,...
static list list_regions_callee
dg_arc_label arc_label
Instantiation of the dependence graph:
static void add_alias_pairs_for_this_caller(entity caller)
constructs the alias pairs for this caller and adds them to the list global vars IN: callee,...
static list alias_pairs(const char *module_name, list l_reg)
generic function (i.e.
bool out_alias_pairs(const char *module_name)
top-level creation of pairs of aliases of OUT regions of the module modifies global vars callee,...
static region restrict_to_phi_constraints(region reg)
strips from the region all the constraints which do not affect (even transitively) the PHI variables ...
static region approx_convert(region reg)
takes EXACT (i.e.
Pbase base_add_variable(Pbase b, Variable var)
Pbase base_add_variable(Pbase b, Variable v): add variable v as a new dimension to basis b at the end...
#define region_any_reference(reg)
To be avoided.
#define region_entity(reg)
#define region_system(reg)
#define region
simulation of the type region
#define region_scalar_p(reg)
void set_backward_arguments_to_eliminate(entity)
void get_in_out_regions_properties(void)
void set_interprocedural_translation_context_sc(entity, list)
void reset_arguments_to_eliminate(void)
effect region_dup(effect)
effect region_translation(effect, entity, reference, entity, entity, reference, Value, bool)
void print_inout_regions(list)
void reset_translation_context_sc(void)
list convex_regions_transformer_compose(list, transformer)
compose.c
void reset_action_interpretation(void)
void reset_proper_rw_effects(void)
void set_proper_rw_effects(statement_effects)
void set_cumulated_rw_effects(statement_effects)
void set_action_interpretation(string, string)
prettyprint.c
void reset_cumulated_rw_effects(void)
#define effect_may_p(eff)
#define effect_approximation_tag(eff)
#define effect_exact_p(eff)
#define variable_phi_p(e)
true if e is a phi variable PHI entities have a name like: REGIONS:PHI#, where # is a number.
list effects_to_list(effects)
#define EFFECTS(x)
EFFECTS.
const char * module_name(const char *s)
Return the module part of an entity name.
void reset_current_module_entity(void)
Reset the current module entity.
void reset_current_module_statement(void)
Reset the current module statement.
statement set_current_module_statement(statement)
Set the current module statement.
statement get_current_module_statement(void)
Get the current module statement.
entity set_current_module_entity(entity)
static.c
entity get_current_module_entity(void)
Get the entity of the current module.
void gen_multi_recurse(void *o,...)
Multi recursion visitor function.
void gen_null(__attribute__((unused)) void *unused)
Ignore the argument.
#define NIL
The empty list (nil in Lisp)
#define CONS(_t_, _i_, _l_)
List element cell constructor (insert an element at the beginning of a list)
#define CAR(pcons)
Get the value of the first element of a list.
#define CDR(pcons)
Get the list less its first element.
#define MAP(_map_CASTER, _map_item, _map_code, _map_list)
Apply/map an instruction block on all the elements of a list (old fashioned)
string db_get_memory_resource(const char *rname, const char *oname, bool pure)
Return the pointer to the resource, whatever it is.
#define DB_PUT_MEMORY_RESOURCE(res_name, own_name, res_val)
conform to old interface.
#define pips_debug
these macros use the GNU extensions that allow variadic macros, including with an empty list.
const char * entity_local_name(entity e)
entity_local_name modified so that it does not core when used in vect_fprint, since someone thought t...
entity local_name_to_top_level_entity(const char *n)
This function try to find a top-level entity from a local name.
const char * module_local_name(entity e)
Returns the module local user name.
bool ith_parameter_p(entity, entity, int)
returns true if v is the ith formal parameter of function f
struct _newgen_struct_callees_ * callees
#define syntax_reference_p(x)
#define syntax_reference(x)
#define reference_undefined
#define callees_callees(x)
#define reference_variable(x)
#define statement_domain
newgen_sizeofexpression_domain_defined
#define call_domain
newgen_callees_domain_defined
#define EXPRESSION(x)
EXPRESSION.
#define reference_indices(x)
#define call_arguments(x)
struct _newgen_struct_formal_ * formal
#define statement_number(x)
#define expression_syntax(x)
#define statement_undefined
Psysteme sc_restricted_to_variables_transitive_closure(Psysteme sc, Pbase variables)
for an improved dependence test (Beatrice Creusillet)
void module_to_value_mappings(entity m)
void module_to_value_mappings(entity m): build hash tables between variables and values (old,...
transformer load_statement_precondition(statement)
void reset_precondition_map(void)
void set_precondition_map(statement_mapping)
le type des coefficients dans les vecteurs: Value est defini dans le package arithmetique
The structure used to build lists in NewGen.
void * Variable
arithmetique is a requirement for vecteur, but I do not want to inforce it in all pips files....
#define BASE_NULLE
MACROS SUR LES BASES.