25 #include "pips_config.h"
35 #include "resources.h"
161 bool entInStat =
false;
222 printf(
"entity_in_ref_rwt\n");
235 printf(
"entity_in_ref\n");
297 if((
entity)tog1 == oldTog)
327 *lInBody =
gen_nconc(lMmcdStats, *lInBody);
328 *lInBody =
gen_nconc(*lInBody, lIncStats);
389 &lInBody, &lOutBody);
414 printf(
"comEngine_opt_loop_interchange\n");
497 printf(
"comEngine_opt_loop_interchange newStat\n");
instruction make_instruction_loop(loop _field_)
execution make_execution(enum execution_utype tag, void *val)
range copy_range(range p)
RANGE.
loop make_loop(entity a1, range a2, statement a3, entity a4, execution a5, list a6)
basic make_basic(enum basic_utype tag, void *val)
statement copy_statement(statement p)
STATEMENT.
reference make_reference(entity a1, list a2)
statement make_statement(entity a1, intptr_t a2, intptr_t a3, string a4, instruction a5, list a6, string a7, extensions a8, synchronization a9)
synchronization make_synchronization_none(void)
void free_statement(statement p)
static reference ref
Current stmt (an integer)
hash_table gLoopToToggleEnt
entity comEngine_make_new_scalar_variable(const char *prefix, basic bas)
statement make_toggle_init_statement(entity toggleEnt)
statement make_toggle_inc_statement(entity toggleEnt, int val)
void comEngine_replace_reference_in_stat(statement stat, reference ref, expression new)
statement make_toggle_mmcd(entity ent)
static bool entity_in_stat(entity ind, statement stat)
static void entity_in_ref_rwt(reference curRef)
static entity gSearchedEnt
static statement make_loopPattern(statement innerStat)
static statement make_seqStat(statement stat, statement loopPattern, list oldCurList, entity newInd)
static void regenerate_toggles(statement stat, statement newStat, list *lInBody)
static void move_statements_stat(statement stat, entity ind, list *lInBody, list *lOutBody)
static void entity_in_stat_rwt(reference curRef, bool *entInStat)
static void move_statements(statement stat, entity ind, list *lInBody, list *lOutBody)
static bool entity_in_ref(entity ent, reference ref)
static void opt_loop_interchange_fill_lists(statement stat)
static void opt_loop_interchange_fill_lists_stat(statement stat)
hash_table gLoopToOpt
cproto-generated files
statement comEngine_opt_loop_interchange(statement stat, statement innerStat, entity newInd)
#define gen_context_recurse(start, ctxt, domain_number, flt, rwt)
#define gen_recurse(start, domain_number, flt, rwt)
statement make_block_statement(list)
Make a block statement from a list of statement.
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 NIL
The empty list (nil in Lisp)
#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
#define CAR(pcons)
Get the value of the first element of a list.
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.
#define MAP(_map_CASTER, _map_item, _map_code, _map_list)
Apply/map an instruction block on all the elements of a list (old fashioned)
list gen_full_copy_list(list l)
Copy a list structure with element copy.
list statement_block(statement)
Get the list of block statements of a statement sequence.
loop statement_loop(statement)
Get the loop of a statement.
bool statement_loop_p(statement)
void * hash_get(const hash_table htp, const void *key)
this function retrieves in the hash table pointed to by htp the couple whose key is equal to key.
void hash_put(hash_table htp, const void *key, const void *val)
This functions stores a couple (key,val) in the hash table pointed to by htp.
#define pips_assert(what, predicate)
common macros, two flavors depending on NDEBUG
#define pips_internal_error
#define STATEMENT_ORDERING_UNDEFINED
mapping.h inclusion
#define HASH_MAP(k, v, code, ht)
#define HASH_UNDEFINED_VALUE
value returned by hash_get() when the key is not found; could also be called HASH_KEY_NOT_FOUND,...
void print_entity_variable(entity e)
print_entity_variable(e)
void print_reference(reference r)
void print_statement(statement)
Print a statement on stderr.
#define statement_block_p(stat)
#define STATEMENT_NUMBER_UNDEFINED
default values
#define instruction_block(i)
#define empty_comments
Empty comments (i.e.
entity entity_empty_label(void)
expression entity_to_expression(entity e)
if v is a constant, returns a constant call.
extensions empty_extensions(void)
extension.c
void AddEntityToCurrentModule(entity)
Add a variable entity to the current module declarations.
#define REFERENCE(x)
REFERENCE.
#define reference_variable(x)
#define reference_domain
newgen_range_domain_defined
@ is_instruction_sequence
#define instruction_tag(x)
#define sequence_statements(x)
#define instruction_sequence(x)
#define statement_instruction(x)
@ is_execution_sequential
#define statement_undefined
#define STATEMENT(x)
STATEMENT.
The structure used to build lists in NewGen.