25 #include "pips_config.h"
55 #include "pips-libs.h"
56 #ifdef HAVE_PIPS_points_to_LIBRARY
198 bool substituted_p =
false;
210 if(
f==zero || unbounded_p) {
214 substituted_p =
true;
245 for(i=1; i<=od; i++) {
253 for(i=1;i<=delta;i++) {
361 eff = substitute_scalar_stub_in_convex_array_region(eff, l1, l2, backward_p, ppl);
380 eff = substitute_struct_stub_in_convex_array_region(eff, l1, ft, r1, ft, backward_p, ppl);
416 eff = substitute_scalar_stub_in_convex_array_region(eff, se, de, backward_p, &
pl);
421 eff = substitute_struct_stub_in_convex_array_region(eff, sr, se_t, dr, de_t, backward_p, &
pl);
431 eff = substitute_scalar_stub_in_convex_array_region(eff, se, de, backward_p, &
pl);
442 eff = substitute_scalar_stub_in_convex_array_region(eff, se, de, backward_p, &
pl);
449 eff = substitute_struct_stub_in_convex_array_region(eff, sr, de_t, dr, de_t, backward_p, &
pl);
463 eff = substitute_scalar_stub_in_convex_array_region(eff, se, de, backward_p, &
pl);
469 eff = substitute_struct_stub_in_convex_array_region(eff, sr, cst, dr, cst, backward_p, &
pl);
float a2sf[2] __attribute__((aligned(16)))
USER generates a user error (i.e., non fatal) by printing the given MSG according to the FMT.
approximation make_approximation_may(void)
void free_approximation(approximation p)
void free_normalized(normalized p)
call make_call(entity a1, list a2)
syntax make_syntax_call(call _field_)
void free_reference(reference p)
reference make_reference(entity a1, list a2)
reference copy_reference(reference p)
REFERENCE.
void free_syntax(syntax p)
syntax make_syntax_reference(reference _field_)
void const char const char const int
entity int_to_entity(_int c)
Pcontrainte contrainte_make(Pvecteur pv)
Pcontrainte contrainte_make(Pvecteur pv): allocation et initialisation d'une contrainte avec un vecte...
void adapt_phi_n_variable_in_convex_effect(effect, expression, entity)
entity make_phi_entity(int)
void region_value_substitute(effect, entity, entity)
bool adapt_convex_effect_cell_to_backward_translation(effect)
points_to.c
effect substitute_stubs_in_convex_array_region(effect, bool, set)
void region_exact_projection_along_variable(effect, entity)
effect adapt_translation_as_convex_effect(effect, effect)
void region_exact_projection_along_variables(effect, list)
void region_exact_projection_along_variables(effect reg, list l_var) input : a region and a list of v...
int phi_entity_rank(entity)
#define effect_any_reference(e)
FI: cannot be used as a left hand side.
type points_to_reference_to_concrete_type(reference)
reference cell_any_reference(cell)
API for reference.
bool pt_to_list_undefined_p(void)
points_to.c
entity constant_memory_access_path_to_location_entity(reference)
A constant memory access path may not be considered.
#define approximation_exact_p(x)
#define effect_descriptor(x)
#define approximation_must_p(x)
#define descriptor_convex(x)
#define effect_approximation(x)
#define ENDP(l)
Test if a list is empty.
#define POP(l)
Modify a list pointer to point on the next element of the list.
#define NIL
The empty list (nil in Lisp)
size_t gen_length(const list l)
#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.
void gen_free_list(list l)
free the spine of the list
#define FOREACH(_fe_CASTER, _fe_item, _fe_list)
Apply/map an instruction block on all the elements of a list.
#define CDR(pcons)
Get the list less its first element.
#define pips_user_warning
#define pips_internal_error
#define same_string_p(s1, s2)
#define SET_FOREACH(type_name, the_item, the_set)
enumerate set elements in their internal order.
#define set_undefined_p(s)
int f(int off1, int off2, int n, float r[n], float a[n], float b[n])
#define points_to_approximation(x)
#define points_to_sink(x)
#define points_to_source(x)
static hash_table pl
properties are stored in this hash table (string -> property) for fast accesses.
#define UNBOUNDED_DIMENSION_NAME
#define NORMALIZE_EXPRESSION(e)
const char * entity_user_name(entity e)
Since entity_local_name may contain PIPS special characters such as prefixes (label,...
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...
bool entity_field_p(entity e)
e is the field of a structure
expression entity_to_expression(entity e)
if v is a constant, returns a constant call.
reference add_subscript_to_reference(reference r, expression s)
Add a last subscript expression s to a reference r.
bool expression_reference_p(expression e)
Test if an expression is a reference.
bool unbounded_expression_p(expression e)
reference expression_reference(expression e)
Short cut, meaningful only if expression_reference_p(e) holds.
type entity_basic_concrete_type(entity)
retrieves or computes and then returns the basic concrete type of an entity
list struct_type_to_fields(type)
type compute_basic_concrete_type(type)
computes a new type which is the basic concrete type of the input type (this new type is not stored i...
bool type_struct_variable_p(type)
#define normalized_undefined
#define syntax_reference_p(x)
#define syntax_reference(x)
#define normalized_linear_p(x)
#define reference_variable(x)
#define EXPRESSION(x)
EXPRESSION.
#define entity_undefined_p(x)
#define expression_normalized(x)
#define reference_indices(x)
#define normalized_linear(x)
#define expression_syntax(x)
Psysteme sc_variable_rename(Psysteme s, Variable v_old, Variable v_new)
Psysteme sc_variable_rename(Psysteme s, Variable v_old, Variable v_new): reecriture du systeme s remp...
Psysteme sc_substitute_dimension(Psysteme s, Variable i, Pvecteur v)
Psysteme sc_substitute_dimension(Psysteme s, Variable i, Pvecteur v): The ith dimension of all constr...
bool sc_value_of_variable(Psysteme ps, Variable var, Value *pval)
bool sc_value_for_variable(Psysteme ps, Variable var, Value *pval): examine les egalites du systeme p...
Psysteme sc_equation_add(Psysteme sc, Pcontrainte c)
The basis of the constraint system is updated.
Pvecteur vect_multiply(Pvecteur v, Value x)
Pvecteur vect_multiply(Pvecteur v, Value x): multiplication du vecteur v par le scalaire x,...
set user_call_to_points_to_interprocedural_binding_set(call c, pt_map pt_caller)
Compute the binding relations in a complete interprocedural way: be as accurate as possible.
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.
void * Variable
arithmetique is a requirement for vecteur, but I do not want to inforce it in all pips files....
Pvecteur vect_dup(Pvecteur v_in)
Pvecteur vect_dup(Pvecteur v_in): duplication du vecteur v_in; allocation de et copie dans v_out;.
Pvecteur vect_make_1D(Value a, Variable x, Value b)
Generate a sparse vector a x + b TCST.
void vect_add_elem(Pvecteur *pvect, Variable var, Value val)
void vect_add_elem(Pvecteur * pvect, Variable var, Value val): addition d'un vecteur colineaire au ve...