26 #include "pips_config.h"
69 #define StorePost(stat, val) \
70 (debug(9, "StorePost", "storing 0x%x, 0x%x\n", stat, val), \
71 hash_put(current_postcondition_map, (char*) (stat), (char*) (val)))
73 #define StorePre(stat, val) \
74 (debug(9, "StorePre", "storing 0x%x, 0x%x\n", stat, val), \
75 hash_put(current_precondition_map, (char*) (stat), (char*) (val)))
77 #define LoadPost(stat) \
78 (debug(9, "LoadPost", "loading 0x%x\n", stat), \
79 (transformer) (hash_get(current_postcondition_map, (char*) stat)))
81 #define LoadPre(stat) \
82 (debug(9, "LoadPre", "loading 0x%x\n", stat), \
83 (transformer) (hash_get(current_precondition_map, (char*) stat)))
93 pips_debug(5,
"statement %p (post %p)\n", stat, post);
191 debug_on(
"SEMANTICS_POSTCONDITION_DEBUG_LEVEL");
float a2sf[2] __attribute__((aligned(16)))
USER generates a user error (i.e., non fatal) by printing the given MSG according to the FMT.
transformer transformer_identity()
Allocate an identity transformer.
static list blocks
lisp of loops
#define gen_recurse(start, domain_number, flt, rwt)
#define CONTROL_MAP(ctl, code, c, list)
Macro to walk through all the controls reachable from a given control node of an unstructured.
void gen_null(__attribute__((unused)) void *unused)
Ignore the argument.
list gen_nreverse(list cp)
reverse a list in place
#define NIL
The empty list (nil in Lisp)
list gen_copy_seq(list l)
Copy a list structure.
void gen_free_list(list l)
free the spine of the list
#define MAP(_map_CASTER, _map_item, _map_code, _map_list)
Apply/map an instruction block on all the elements of a list (old fashioned)
#define pips_debug
these macros use the GNU extensions that allow variadic macros, including with an empty list.
#define pips_internal_error
#define GENERIC_CURRENT_MAPPING(name, result, type)
#define hash_table_undefined
Value of an undefined hash_table.
static statement_mapping current_postcondition_map
#define StorePost(stat, val)
statement_mapping compute_postcondition(statement stat, statement_mapping post_map, statement_mapping pre_map)
statement_mapping compute_postcondition(stat, post_map, pre_map) statement stat; statement_mapping po...
static bool postcondition_filter(statement stat)
filter used by gen_recurse: Top-down computation of the postcondition mapping
static statement_mapping current_precondition_map
filtering of postconditions
void print_statement(statement)
Print a statement on stderr.
#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)
#define transformer_undefined_p(x)
#define instruction_loop(x)
#define statement_domain
newgen_sizeofexpression_domain_defined
#define CONTROL(x)
CONTROL.
@ is_instruction_unstructured
#define instruction_tag(x)
#define statement_instruction(x)
#define control_statement(x)
#define instruction_test(x)
#define instruction_unstructured(x)
#define STATEMENT(x)
STATEMENT.
The structure used to build lists in NewGen.