26 #include "pips_config.h"
82 set referenced_entities =
97 bool has_side_effects_p =
false;
118 has_side_effects_p =
true;
123 if(!has_side_effects_p) {
230 bool exception = (*label_pattern!=0) && (strstr(
entity_user_name(e),label_pattern)!=NULL);
277 static int get_cache_line_size(
void)
281 static int get_minimal_task_size(
void)
struct _newgen_struct_statement_ * statement
list expression_to_proper_effects(expression)
#define action_write_p(x)
char * get_string_property(const char *)
#define gen_chunk_undefined_p(c)
#define gen_context_recurse(start, ctxt, domain_number, flt, rwt)
#define gen_recurse(start, domain_number, flt, rwt)
void gen_full_free_list(list l)
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.
entity set_current_module_entity(entity)
static.c
entity get_current_module_entity(void)
Get the entity of the current module.
void gen_recurse_stop(void *obj)
Tells the recursion not to go in this object.
gen_chunk * gen_get_ancestor(int, const void *)
return the first ancestor object found of the given type.
void gen_null2(__attribute__((unused)) void *u1, __attribute__((unused)) void *u2)
idem with 2 args, to please overpeaky compiler checks
void gen_null(__attribute__((unused)) void *unused)
Ignore the argument.
#define NIL
The empty list (nil in Lisp)
list gen_copy_seq(list l)
Copy a list structure.
#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
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.
void * gen_find_eq(const void *item, const list seq)
bool gen_eq(const void *obj1, const void *obj2)
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.
#define SET_FOREACH(type_name, the_item, the_set)
enumerate set elements in their internal order.
bool set_belong_p(const set, const void *)
#define statement_block_p(stat)
#define INSTANCE_OF(type, value)
polymorhism thanks to newgen !
#define entity_declarations(e)
MISC: newgen shorthands.
#define entity_variable_p(e)
An entity_variable_p(e) may hide a typedef and hence a functional type.
bool entity_area_p(entity e)
bool entity_not_constant_or_intrinsic_p(entity e)
Default entity filter for get_referenced_entities()
const char * entity_user_name(entity e)
Since entity_local_name may contain PIPS special characters such as prefixes (label,...
bool entity_struct_p(entity e)
Is entity e the entity corresponding to a struct declaration?
bool same_entity_p(entity e1, entity e2)
predicates on entities
set get_referenced_entities_filtered(void *elem, bool(*chunk_filter)(void *), bool(*entity_filter)(entity))
Same as get_referenced_entities, but will only consider entities that fulfills entity_filter and will...
entity module_name_to_entity(const char *mn)
This is an alias for local_name_to_top_level_entity.
bool typedef_entity_p(entity e)
entity entity_empty_label(void)
void sort_list_of_entities(list l)
sorted in place.
bool entity_empty_label_p(entity e)
bool fortran_module_p(entity m)
Test if a module is in Fortran.
set get_referenced_entities(void *elem)
retrieves the set of entities used in elem beware that this entities may be formal parameters,...
bool entity_union_p(entity e)
Is entity e an entity representing the union declaration?
void RemoveLocalEntityFromDeclarations(entity, entity, statement)
bool formal_parameter_p(entity)
#define loop_domain
newgen_language_domain_defined
#define dimension_lower(x)
#define entity_storage(x)
#define statement_domain
newgen_sizeofexpression_domain_defined
#define statement_label(x)
#define entity_undefined_p(x)
#define dimension_upper(x)
#define variable_dimensions(x)
#define statement_declarations(x)
#define value_expression_p(x)
#define storage_return_p(x)
#define value_expression(x)
#define statement_undefined
#define entity_initial(x)
FI: I do not understand why the type is duplicated at the set level.
The structure used to build lists in NewGen.
void gen_clear_tabulated_element(gen_chunk *obj)
GEN_CLEAR_TABULATED_ELEMENT only clears the entry for object OBJ in the gen_tabulated_ and gen_tabula...
A gen_chunk is used to store every object.