25 #include "pips_config.h"
46 #include "constants.h"
55 #include "resources.h"
115 debug_on(
"CONTINUATION_DEBUG_LEVEL");
158 make_current_stmt_stack();
161 free_current_stmt_stack();
178 current_stmt_push(s);
transformer transformer_dup(transformer t_in)
transformer package - basic routines
transformer transformer_identity()
Allocate an identity transformer.
transformer transformer_empty()
Allocate an empty transformer.
bool continuation_conditions(const string module_name)
INTERFACE
static void statement_continuation_conditions(statement s)
static void statement_continuation_conditions(statement s) input : the current instruction output : n...
static transformer may_sum_cont_t
static void loop_continuation_conditions(loop l)
static void block_continuation_conditions(list l_stat)
static void test_continuation_conditions(test t)
static void unstructured_continuation_conditions(unstructured u)
static void module_continuation_conditions(statement mod_stat)
statement stack
static void call_continuation_conditions(call c)
static transformer must_sum_cont_t
package continuation : Be'atrice Creusillet, 1996
static void module_summary_continuation_conditions(statement mod_stat)
INTERPROCEDURAL SUMMARIZATION.
statement_mapping get_must_continuation_map(void)
transformer load_statement_must_continuation(statement)
void set_may_continuation_map(statement_mapping)
transformer load_statement_may_continuation(statement)
void set_must_continuation_map(statement_mapping)
void store_statement_must_continuation(statement, transformer)
void store_statement_may_continuation(statement, transformer)
void reset_may_continuation_map(void)
void reset_must_continuation_map(void)
statement_mapping get_may_continuation_map(void)
static statement current_stmt
void reset_proper_rw_effects(void)
void set_proper_rw_effects(statement_effects)
void set_cumulated_rw_effects(statement_effects)
void reset_cumulated_rw_effects(void)
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
entity get_current_module_entity(void)
Get the entity of the current module.
bool gen_true(__attribute__((unused)) gen_chunk *unused)
Return true and ignore the argument.
#define NIL
The empty list (nil in Lisp)
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 current_stmt_head()
We want to keep track of the current statement inside the recurse.
static statement mod_stat
We want to keep track of the current statement inside the recurse.
#define pips_debug
these macros use the GNU extensions that allow variadic macros, including with an empty list.
#define pips_assert(what, predicate)
common macros, two flavors depending on NDEBUG
#define MAKE_STATEMENT_MAPPING()
#define GENERIC_MAPPING(PREFIX, name, result, type)
PIPS level:
#define DEFINE_LOCAL_STACK(name, type)
#define unstructured_control
After the modification in Newgen: unstructured = entry:control x exit:control we have create a macro ...
#define is_instruction_block
soft block->sequence transition
#define instruction_block(i)
entity local_name_to_top_level_entity(const char *n)
This function try to find a top-level entity from a local name.
#define transformer_undefined
#define control_predecessors(x)
#define instruction_loop(x)
#define statement_domain
newgen_sizeofexpression_domain_defined
@ is_instruction_unstructured
#define instruction_tag(x)
#define control_successors(x)
#define statement_instruction(x)
#define instruction_call(x)
#define control_statement(x)
#define instruction_test(x)
#define statement_number(x)
#define instruction_unstructured(x)
void module_to_value_mappings(entity m)
void module_to_value_mappings(entity m): build hash tables between variables and values (old,...
void set_transformer_map(statement_mapping)
void reset_transformer_map(void)
The structure used to build lists in NewGen.