27 #if defined(BUILDER_IDENTITY_ELIMINATION) || \
28 defined(BUILDER_IDENTITY_ELIMINATION_WITH_POINTS_TO)
31 #include "pips_config.h"
90 static void identity_statement_remove(
statement s) {
175 static bool generic_identity_elimination(
180 bool good_result_p =
true;
182 debug_on(
"IDENTITY_ELIMINATION_DEBUG_LEVEL");
235 return (good_result_p);
243 return generic_identity_elimination(
module_name,
false);
252 pips_user_warning(
"identity_elimination_with_points_to not implemented, identity_elimination was done instead.");
253 return generic_identity_elimination(
module_name,
true);
bool statement_consistent_p(statement p)
void free_instruction(instruction p)
static statement module_statement
void reset_proper_rw_effects(void)
void set_proper_rw_effects(statement_effects)
void set_pointer_info_kind(pointer_info_val)
methods.c
bool expression_with_side_effect_p(expression)
const char * module_name(const char *s)
Return the module part of an entity name.
#define gen_recurse(start, domain_number, flt, rwt)
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
bool gen_true(__attribute__((unused)) gen_chunk *unused)
Return true and ignore the argument.
instruction make_continue_instruction()
Creates a CONTINUE instruction, that is the FORTRAN nop, the ";" in C or the "pass" in Python for exa...
#define NIL
The empty list (nil in Lisp)
#define CAR(pcons)
Get the value of the first element 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.
bool empty_comments_p(const char *)
void statement_remove_extensions(statement)
That's all folks.
#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
hash_table set_ordering_to_statement(statement s)
To be used instead of initialize_ordering_to_statement() to make sure that the hash table ots is in s...
void reset_ordering_to_statement(void)
Reset the mapping from ordering to statement.
void print_statement(statement)
Print a statement on stderr.
bool module_reorder(statement body)
Reorder a module and recompute order to statement if any.
#define ENTITY_ASSIGN_P(e)
#define call_intrinsic_p(C)
#define empty_comments
Empty comments (i.e.
entity module_name_to_entity(const char *mn)
This is an alias for local_name_to_top_level_entity.
bool expression_equal_p(expression e1, expression e2)
Syntactic equality e1==e2.
#define statement_domain
newgen_sizeofexpression_domain_defined
#define EXPRESSION(x)
EXPRESSION.
#define instruction_call_p(x)
#define statement_instruction(x)
#define statement_comments(x)
#define instruction_call(x)
#define call_arguments(x)
The structure used to build lists in NewGen.