25 #include "pips_config.h"
55 bool entity_written =
false;
58 { entity_written =
true;
break; }
127 if(!effects_read_variable) {
129 pips_debug(4,
"Entity %s is never read, we can remove "
130 "statements that only produce it.\n",
162 debug_on(
"CLEAN_DECLARATIONS_DEBUG_LEVEL");
instruction make_instruction_expression(expression _field_)
expression copy_expression(expression p)
EXPRESSION.
void free_instruction(instruction p)
static statement module_statement
void set_cumulated_rw_effects(statement_effects)
list load_cumulated_rw_effects_list(statement)
void reset_cumulated_rw_effects(void)
#define effect_any_reference(e)
FI: cannot be used as a left hand side.
#define effect_write_p(eff)
bool effects_read_variable_p(list, entity)
const char * module_name(const char *s)
Return the module part of an entity name.
#define gen_context_recurse(start, ctxt, domain_number, flt, rwt)
#define gen_recurse(start, domain_number, flt, rwt)
bool entities_must_conflict_p(entity e1, entity e2)
Check if two entities must conflict.
bool entities_may_conflict_p(entity e1, entity e2)
Check if two entities may conflict.
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.
void gen_recurse_stop(void *obj)
Tells the recursion not to go in this object.
bool gen_true2(__attribute__((unused)) gen_chunk *u1, __attribute__((unused)) void *u2)
bool gen_true(__attribute__((unused)) gen_chunk *unused)
Return true and ignore the argument.
#define ENDP(l)
Test if a list is empty.
#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.
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.
call statement_call(statement)
Get the call of a statement.
bool statement_call_p(statement)
bool declaration_statement_p(statement)
Had to be optimized according to Beatrice Creusillet.
#define pips_debug
these macros use the GNU extensions that allow variadic macros, including with an empty list.
#define pips_internal_error
#define binary_call_rhs(c)
#define statement_block_p(stat)
#define entity_declarations(e)
MISC: newgen shorthands.
#define CONTINUE_FUNCTION_NAME
#define entity_variable_p(e)
An entity_variable_p(e) may hide a typedef and hence a functional type.
#define binary_call_lhs(c)
entity module_name_to_entity(const char *mn)
This is an alias for local_name_to_top_level_entity.
entity entity_intrinsic(const char *name)
FI: I do not understand this function name (see next one!).
bool expression_call_p(expression e)
call expression_call(expression e)
bool expression_reference_p(expression e)
Test if an expression is a reference.
reference expression_reference(expression e)
Short cut, meaningful only if expression_reference_p(e) holds.
bool entity_scalar_p(entity)
The concrete type of e is a scalar type.
bool formal_parameter_p(entity)
#define reference_variable(x)
#define statement_domain
newgen_sizeofexpression_domain_defined
#define statement_declarations(x)
#define statement_instruction(x)
#define instruction_call(x)
#define call_arguments(x)
#define expression_syntax(x)
The structure used to build lists in NewGen.
#define exp
Avoid some warnings from "gcc -Wshadow".