25 #include "pips_config.h"
43 #define PHI_FIRST TRUE
44 #define NOT_PHI_FIRST FALSE
119 debug_on(
"COMP_REGIONS_DEBUG_LEVEL");
182 pips_debug(3,
"begin\n\tComputation of regions of statement %03td\n",
305 list remaining_block, first_s_regions, lres =
NIL;
322 remaining_block =
CDR(linst);
327 if (!
ENDP(remaining_block))
356 lres = first_s_regions;
379 list le, lt, lf, lc, lr;
421 list index_reg, body_reg, le;
470 pips_debug(7,
"elimination of variables modified by the loop.\n");
480 pips_debug(3,
"Before Translations surrounding the loop index %s :\n",
488 pips_debug(3,
"After Translations surrounding the loop index %s :\n",
float a2sf[2] __attribute__((aligned(16)))
USER generates a user error (i.e., non fatal) by printing the given MSG according to the FMT.
reference make_reference(entity a1, list a2)
static reference ref
Current stmt (an integer)
void store_statement_local_comp_regions(statement, list)
list comp_regions_dup(list)
REGIONS AND LISTS OF REGIONS MANIPULATION
statement_mapping get_local_comp_regions_map(void)
statement_mapping listmap_to_compsecs_map(statement_mapping)
void free_local_comp_regions_map(void)
void TranslateRefsToLoop(loop, list)
}}
comp_desc InitCompDesc(reference, tag)
operators.c
void set_local_comp_regions_map(statement_mapping)
void PrintCompRegions(list)
}}
list comp_regions_of_intrinsic(entity, list, transformer)
myintrinsics.c
#define COMP_DESC(x)
COMP_DESC.
void project_regions_along_parameters(list, list)
void project_regions_along_parameters(list l_reg, list l_param) input : a list of regions to project,...
void get_regions_properties(void)
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)
bool effects_same_action_p(effect, effect)
const char * module_name(const char *s)
Return the module part of an entity name.
#define CONTROL_MAP(ctl, code, c, list)
Macro to walk through all the controls reachable from a given control node of an unstructured.
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.
#define ENDP(l)
Test if a list is empty.
#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 CDR(pcons)
Get the list less its first element.
#define MAP(_map_CASTER, _map_item, _map_code, _map_list)
Apply/map an instruction block on all the elements of a list (old fashioned)
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 pips_debug
these macros use the GNU extensions that allow variadic macros, including with an empty list.
#define pips_internal_error
#define user_warning(fn,...)
#define DEFINE_CURRENT_MAPPING(name, type)
#define MAKE_STATEMENT_MAPPING()
string expression_to_string(expression e)
list Words_Syntax(syntax obj)
list comp_regions_of_syntax(syntax s, transformer context)
}}}
list comp_regions_of_expression(expression e, transformer context)
{{{ comp_regions_of_expression
list comp_regions_of_unstructured(unstructured u, transformer t_unst)
}}}
list comp_regions_of_block(list linst)
}}}
list comp_regions_of_statement(statement s)
}}}
list CompRegionsExactUnion(list l1, list l2, bool __attribute__((unused))(*union_combinable_p)(effect, effect))
just concatentate list for now : change later
list comp_regions_of_test(test t, transformer context, list __attribute__((unused)) *plpropreg)
}}}
list comp_regions_of_expressions(list exprs, transformer context)
}}}
list comp_regions_of_loop(loop l, transformer __attribute__((unused)) loop_trans, transformer context, list __attribute__((unused)) *plpropreg)
}}}
list comp_regions_of_range(range r, transformer context)
}}}
list comp_regions_of_instruction(instruction i, transformer t_inst, transformer context, list *plpropreg)
}}}
list CompRegionsMayUnion(list l1, list l2, bool __attribute__((unused))(*union_combinable_p)(effect, effect))
just concatentate list for now : change later
list comp_regions_of_call(call c, transformer context, list *plpropreg)
}}}
list comp_regions_of_write(reference ref, transformer context)
}}}
void CheckStride(loop __attribute__((unused)) Loop)
global static variable local_regions_map, and its access functions
bool comp_regions(const char *module_name)
}}}
list comp_regions_of_read(reference ref, transformer context)
}}}
#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)
const char * entity_local_name(entity e)
entity_local_name modified so that it does not core when used in vect_fprint, since someone thought t...
entity local_name_to_top_level_entity(const char *n)
This function try to find a top-level entity from a local name.
const char * module_local_name(entity e)
Returns the module local user name.
bool entity_scalar_p(entity)
The concrete type of e is a scalar type.
#define loop_execution(x)
#define syntax_reference(x)
#define reference_variable(x)
#define control_predecessors(x)
#define instruction_loop(x)
#define range_increment(x)
#define EXPRESSION(x)
EXPRESSION.
@ is_instruction_unstructured
#define instruction_tag(x)
#define execution_sequential_p(x)
#define transformer_arguments(x)
#define reference_indices(x)
#define control_successors(x)
#define test_condition(x)
#define statement_instruction(x)
#define instruction_call(x)
#define call_arguments(x)
#define control_statement(x)
#define instruction_test(x)
#define statement_number(x)
#define expression_syntax(x)
#define instruction_unstructured(x)
#define STATEMENT(x)
STATEMENT.
#define entity_initial(x)
void module_to_value_mappings(entity m)
void module_to_value_mappings(entity m): build hash tables between variables and values (old,...
transformer load_statement_precondition(statement)
void set_transformer_map(statement_mapping)
transformer load_statement_transformer(statement)
void reset_precondition_map(void)
void set_precondition_map(statement_mapping)
void reset_transformer_map(void)
The structure used to build lists in NewGen.
string words_to_string(cons *lw)
#define exp
Avoid some warnings from "gcc -Wshadow".