25 #include "pips_config.h"
60 #include "resources.h"
62 #define REGION_FORESYS_PREFIX "C$REG"
75 #define append(s) add_to_current_line(line_buffer, s, str_prefix, t_reg)
105 user_log(
"[text_region] unexpected effect undefined\n");
117 if (!foresys)
append(
" <");
169 if (!foresys)
append(
">");
184 fprintf(stderr,
"No descriptor\n");
201 text_array_regions(
list l_reg,
string ifread,
string ifwrite)
224 if (loose_p && !one_p )
236 if (loose_p && one_p)
265 get_text_regions_for_module(
280 t = text_array_regions(le, ifread, ifwrite);
287 return get_text_regions_for_module
293 return get_text_regions_for_module
299 return get_text_regions_for_module
310 static void print_regions_with_action(
list pc,
string ifread,
string ifwrite)
429 pips_assert(
"true", mod_name==mod_name && regions_type==regions_type);
void user_log(const char *format,...)
sentence make_sentence(enum sentence_utype tag, void *val)
#define REGION_FORESYS_PREFIX
#define append(s)
text text_region_no_action(effect reg) input : a region output : a text consisting of several lines o...
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 effect_compare(effect *peff1, effect *peff2)
Compares two effects 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 region_system(reg)
#define effect_region_p(e)
void print_copyinout_regions(list)
text get_text_regions(const string)
void print_rw_regions(list)
text text_copyinout_array_regions(list)
text text_rw_array_regions(list)
void print_region_sc(effect)
void print_private_regions(list)
text text_inout_array_regions(list)
void print_regions_op_statistics(char *, int)
text text_private_array_regions(list)
void print_inout_regions(list)
string region_sc_to_string(string, Psysteme)
prettyprint.c
text get_text_in_regions(const string)
text get_text_out_regions(const string)
string action_interpretation(int tag)
void reset_action_interpretation(void)
void set_action_interpretation(string, string)
prettyprint.c
#define effect_any_reference(e)
FI: cannot be used as a left hand side.
list effect_words_reference(reference obj)
made from words_reference this function can print entity_name instead of entity_local_name,...
const char * pips_region_user_name(entity ent)
char * pips_region_user_name(entity ent) output : the name of entity.
action_kind action_to_action_kind(action)
Without the consistency test, this function would certainly be inlined.
entity effect_entity(effect)
cproto-generated files
bool store_effect_p(effect)
bool malloc_effect_p(effect)
bool anywhere_effect_p(effect)
Is it an anywhere effect? ANYMMODULE:ANYWHERE
string action_kind_to_string(action_kind)
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 effect_undefined_p(x)
#define action_kind_store_p(x)
#define approximation_may_p(x)
#define effect_descriptor(x)
#define effects_effects(x)
#define descriptor_none_p(x)
#define effect_approximation(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.
entity set_current_module_entity(entity)
static.c
#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)
#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 :-)
#define MAP(_map_CASTER, _map_item, _map_code, _map_list)
Apply/map an instruction block on all the elements of a list (old fashioned)
void gen_sort_list(list l, gen_cmp_func_t compare)
Sorts a list of gen_chunks in place, to avoid allocations...
string db_get_memory_resource(const char *rname, const char *oname, bool pure)
Return the pointer to the resource, whatever it is.
#define pips_assert(what, predicate)
common macros, two flavors depending on NDEBUG
#define pips_internal_error
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,...
string get_comment_sentinel()
Start a single line comment.
string get_comment_continuation()
Start a single line comment with continuation (blank spaces)
list Words_Reference(reference obj)
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 module_name_to_entity(const char *mn)
This is an alias for local_name_to_top_level_entity.
bool entity_non_pointer_scalar_p(entity)
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...
void sc_print(Psysteme ps, get_variable_name_t nom_var)
void sc_print()
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 FORESYS_CONTINUATION_PREFIX
#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)