30 #include "pips_config.h"
56 #define PT_TO_SUFFIX ".points_to"
57 #define PT_TO_DECO "points to = "
58 #define SUMMARY_PT_TO_SUFFIX ".summary_points_to"
59 #define SUMMARY_PT_TO_DECO "summary points to = "
194 fprintf(stderr,
"Points-to graph does not exist, dead code\n");
215 pips_assert(
"there should not be preference cells in points to (source) \n",
217 pips_assert(
"there should not be preference cells in points to (sink) \n",
237 string undef =
"undefined" ;
245 #define append(s) add_to_current_line(line_buffer, s, str_prefix, tpt_to)
257 bool foresys =
false;
270 "undefined points to relation\n",
283 pips_assert(
"there should not be preference cells in points to relation (source) \n",
285 pips_assert(
"there should not be preference cells in points to relation (sink) \n",
316 string undef =
"undefined" ;
377 else if(
ENDP(l_pt_to))
float a2sf[2] __attribute__((aligned(16)))
USER generates a user error (i.e., non fatal) by printing the given MSG according to the FMT.
sentence make_sentence(enum sentence_utype tag, void *val)
bool entity_typed_nowhere_locations_p(entity e)
test if an entity is the bottom of the lattice
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...
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.
list effect_words_reference(reference)
prettyprint.c
const char * pips_region_user_name(entity)
char * pips_region_user_name(entity ent) output : the name of entity.
list points_to_list_sort(list)
Allocate a copy of ptl and sort it.
bool nowhere_cell_p(cell)
Target of an undefined pointer.
list words_points_to_list(string, points_to_list)
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 approximation_exact_p(x)
#define approximation_may_p(x)
#define descriptor_convex(x)
#define cell_preference_p(x)
#define descriptor_none_p(x)
const char * module_name(const char *s)
Return the module part of an entity name.
bool get_bool_property(const string)
FC 2015-07-20: yuk, moved out to prevent an include cycle dependency include "properties....
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.
#define ENDP(l)
Test if a list is empty.
#define NIL
The empty list (nil in Lisp)
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 FOREACH(_fe_CASTER, _fe_item, _fe_list)
Apply/map an instruction block on all the elements of a list.
#define list_undefined
Undefined list definition :-)
string db_get_memory_resource(const char *rname, const char *oname, bool pure)
Return the pointer to the resource, whatever it is.
#define pips_debug
these macros use the GNU extensions that allow variadic macros, including with an empty list.
#define pips_user_warning
#define pips_assert(what, predicate)
common macros, two flavors depending on NDEBUG
string concatenate(const char *,...)
Return the concatenation of the given strings.
#define GENERIC_GLOBAL_FUNCTION(name, type)
#define HASH_UNDEFINED_VALUE
value returned by hash_get() when the key is not found; could also be called HASH_KEY_NOT_FOUND,...
bool bound_printed_points_to_list_p(statement)
void set_printed_points_to_list(statement_points_to)
void print_points_to_set(string, set)
void reset_printed_points_to_list(void)
points_to_list load_printed_points_to_list(statement)
void print_points_to_relation(points_to pt_to)
print a points-to arc, print_points_to() or print_points_to_arc()
bool print_code_points_to(const char *module_name, string resource_name __attribute__((__unused__)), string file_suffix)
bool print_code_points_to(const char* module_name,
void print_points_to_relations(list l_pt_to)
print a list of points-to arcs
text text_code_points_to(statement s)
bool print_code_points_to_list(const char *module_name)
text text_points_to_relation(points_to pt_to)
text text_region(effect reg) input : a region output : a text consisting of several lines of commenta...
void print_points_to_list(points_to_list ptl)
text text_points_to_relations(points_to_list ptl, string header)
text text_pt_to(entity __attribute__((unused)) module_name, int __attribute__((unused)) margin, statement s)
void print_points_to_graph(points_to_graph ptg)
list words_points_to(points_to pt)
text text_points_to(entity module __attribute__((__unused__)), int margin __attribute__((__unused__)), statement s)
#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_graph_bottom(x)
#define POINTS_TO(x)
POINTS_TO.
#define points_to_list_bottom(x)
struct _newgen_struct_points_to_list_ * points_to_list
#define points_to_graph_set(x)
#define points_to_descriptor(x)
#define points_to_source(x)
string get_comment_sentinel()
Start a single line comment.
string get_comment_continuation()
Start a single line comment with continuation (blank spaces)
void close_prettyprint()
because some prettyprint functions may be used for debug, so the last hook set by somebody may have s...
void init_prettyprint(text(*hook)(entity, int, statement))
checks that the prettyprint hook was actually reset...
text text_module(entity, statement)
bool make_text_resource_and_free(const char *, const char *, const char *, text)
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...
entity local_name_to_top_level_entity(const char *n)
This function try to find a top-level entity from a local name.
#define reference_variable(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...
text words_predicate_to_commentary(list w_pred, string comment_prefix)
text words_predicate_to_commentary(list w_pred, string comment_prefix) input : a list of strings,...
FI: I do not understand why the type is duplicated at the set level.
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)
void close_current_line(string, text, string)
#define SENTENCE(x)
newgen_unformatted_domain_defined
char *(* get_variable_name_t)(Variable)