30 #include "pips_config.h"
55 #include "resources.h"
71 string begin_attachment;
98 before_first_index =
"(";
101 after_last_index =
")";
106 before_first_index =
"[";
109 after_last_index =
"]";
201 #define PT_TO_SUFFIX ".points_to"
202 #define PT_TO_DECO "points to = "
203 #define SUMMARY_PT_TO_SUFFIX ".summary_points_to"
204 #define SUMMARY_PT_TO_DECO "summary points to = "
225 static string entity_full_name(
entity e)
331 i = strcmp(n1so, n2so);
333 i = strcmp(n1si, n2si);
340 i = i2>i1? 1 : (i2<i1? -1 : 0);
348 i = i2>i1? 1 : (i2<i1? -1 : 0);
356 i = i2>i1? -11 : (i2<i1? 1 : 0);
365 for(;i==0 && !
ENDP(sli1);
POP(sli1),
POP(sli2)){
371 i = i2>i1? -1 : (i2<i1? 1 : 0);
433 pips_assert(
"there should not be preference cells in pointer values (first) \n",
435 pips_assert(
"there should not be preference cells in pointer values (second) \n",
441 pips_assert(
"the first cell must have value_of interpretation\n",
472 #define append(s) add_to_current_line(line_buffer, s, str_prefix, tpv)
484 bool foresys =
false;
497 "undefined pointer value\n",
510 pips_assert(
"there should not be preference cells in pointer values (first) \n",
512 pips_assert(
"there should not be preference cells in pointer values (second) \n",
518 pips_assert(
"the first cell must have value_of interpretation\n",
bool points_to_consistent_p(points_to p)
sentence make_sentence(enum sentence_utype tag, void *val)
static reference ref
Current stmt (an integer)
bool entity_abstract_location_p(entity al)
void attach_reference_to_word_list(string begin_word, string end_word, reference r)
Attach a module usage (CALL or function call):
int is_inferior_cell_descriptor_pvarval(Pvecteur *pvarval1, Pvecteur *pvarval2)
weight function for Pvecteur passed as argument to sc_lexicographic_sort in prettyprint functions inv...
int pointer_value_compare(cell_relation *ppv1, cell_relation *ppv2)
Compares two pointer values for sorting.
void system_sorted_text_format(string line, string prefix, text txt, Psysteme ps, string(*variable_name)(Variable), bool(*put_first)(Pvecteur), bool a_la_fortran)
lower level hook for regions.
#define cell_relation_second_cell(cr)
#define cell_relation_second_address_of_p(cr)
#define cell_relation_first_cell(cr)
#define cell_relation_first_value_of_p(cr)
static bool variable_p(entity e)
lready exist in cprettyprint but in mode static.
int points_to_compare_cells(const void *vpt1, const void *vpt2)
Comparison of two points-to arcs based on their source and sink nodes.
void print_pointer_values(list lpv)
string approximation_to_string(approximation a)
text text_pointer_value(cell_relation pv)
text text_region(effect reg) input : a region output : a text consisting of several lines of commenta...
void print_pointer_value(cell_relation pv)
list effect_words_reference(reference obj)
made from words_reference this function can print entity_name instead of entity_local_name,...
list words_fictious_reference(reference obj)
To modelize the heap locations we manufacture fictious reference, that triggered a bug when it appear...
list word_points_to(points_to pt)
text text_pointer_values(list lpv, string header)
string effect_reference_to_string(reference ref)
list points_to_words_reference(reference r)
Specific handling of references appearing in points_to.
const char * pips_region_user_name(entity ent)
char * pips_region_user_name(entity ent) output : the name of entity.
list points_to_list_sort(list ptl)
Allocate a copy of ptl and sort it.
list words_pointer_value(cell_relation pv)
list words_points_to_list(__attribute__((unused)) string note, points_to_list s)
Make sure that points-to are fully ordered before prettyprinting them or validation will be in troubl...
reference cell_to_reference(cell)
FI: probably to be moved elsewhere in ri-util.
bool vect_contains_phi_p(Pvecteur)
bool vect_contains_phi_p(Pvecteur v) input : a vector output : true if v contains a PHI variable,...
#define cell_reference(x)
#define cell_relation_descriptor(x)
#define CELL_RELATION(x)
CELL_RELATION.
#define cell_relation_approximation(x)
#define approximation_exact_p(x)
#define approximation_may_p(x)
#define approximation_must_p(x)
#define descriptor_convex(x)
#define cell_preference_p(x)
#define descriptor_none_p(x)
#define cell_relation_undefined_p(x)
bool get_bool_property(const string)
FC 2015-07-20: yuk, moved out to prevent an include cycle dependency include "properties....
void gen_full_free_list(list l)
#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)
void gen_free_string_list(list ls)
#define CONS(_t_, _i_, _l_)
List element cell constructor (insert an element at the beginning of a list)
list gen_nconc(list cp1, list cp2)
physically concatenates CP1 and CP2 but do not duplicates the elements
#define CAR(pcons)
Get the value of the first element of a list.
list gen_last(list l)
Return the last element of a 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 list_undefined
Undefined list definition :-)
list gen_full_copy_list(list l)
Copy a list structure with element copy.
void gen_sort_list(list l, gen_cmp_func_t compare)
Sorts a list of gen_chunks in place, to avoid allocations...
bool expression_constant_p(expression)
HPFC module by Fabien COELHO.
enum language_utype get_prettyprint_language_tag()
#define pips_user_warning
#define pips_assert(what, predicate)
common macros, two flavors depending on NDEBUG
#define pips_internal_error
const char * entity_minimal_user_name(entity e)
Do not preserve scope information.
const char * entity_minimal_name(entity e)
Do preserve scope informations.
string concatenate(const char *,...)
Return the concatenation of the given strings.
#define HASH_UNDEFINED_VALUE
value returned by hash_get() when the key is not found; could also be called HASH_KEY_NOT_FOUND,...
#define points_to_approximation(x)
#define points_to_undefined_p(x)
#define points_to_sink(x)
#define points_to_list_list(x)
#define POINTS_TO(x)
POINTS_TO.
#define points_to_source(x)
string expression_to_string(expression e)
list Words_Any_Reference(reference obj, list pdl, const char *(*enf)(entity))
string get_comment_sentinel()
Start a single line comment.
string get_comment_continuation()
Start a single line comment with continuation (blank spaces)
list Words_Expression(expression obj)
of string
static int * line_buffer
le buffer contenant la ligne que l'on doit lire en avance pour se rendre compte qu'on a finit de lire...
#define REGIONS_MODULE_NAME
Already defined.
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
const char * entity_and_common_name(entity e)
See next function!
bool entity_in_common_p(entity e)
int expression_to_int(expression exp)
================================================================
#define syntax_reference_p(x)
#define syntax_reference(x)
#define reference_variable(x)
#define EXPRESSION(x)
EXPRESSION.
#define type_undefined_p(x)
#define reference_indices(x)
#define expression_syntax(x)
void sc_rm(Psysteme ps)
void sc_rm(Psysteme ps): liberation de l'espace memoire occupe par le systeme de contraintes ps;
Psysteme sc_copy(Psysteme ps)
Psysteme sc_copy(Psysteme ps): duplication d'un systeme (allocation et copie complete des champs sans...
int fprintf()
test sc_min : ce test s'appelle par : programme fichier1.data fichier2.data ...
void sc_lexicographic_sort(Psysteme sc, int(*compare)(Pvecteur *, Pvecteur *))
Minimize first the lexico-graphic weight of each constraint according to the comparison function "com...
static bool __attribute__((unused))
The structure used to build lists in NewGen.
#define CHAIN_SWORD(l, s)
#define MERGE_TEXTS(r, t)
#define ADD_SENTENCE_TO_TEXT(t, p)
#define MAX_LINE_LENGTH
maximum length of a line when prettyprinting...
void print_text(FILE *fd, text t)
string words_to_string(cons *lw)
void close_current_line(string, text, string)
#define SENTENCE(x)
newgen_unformatted_domain_defined
char *(* get_variable_name_t)(Variable)