25 #include "pips_config.h"
33 #include "resources.h"
246 bool actionWrite =
false;
272 bool actionWrite =
false;
455 !(*stat_to_process)(si))
476 bool statNotSupported =
false;
491 statNotSupported =
true;
519 printf(
"read write conflict\n");
525 statNotSupported =
true;
536 printf(
"left write effect\n");
555 statNotSupported =
true;
580 (j != last) && (j !=
NIL);
600 if(!statNotSupported && last !=
NIL)
754 pips_assert(
"Statement is consistent after DEATOMIZER",
void free_normalized(normalized p)
bool statement_consistent_p(statement p)
syntax copy_syntax(syntax p)
SYNTAX.
void free_statement(statement p)
static reference ref
Current stmt (an integer)
struct _newgen_struct_statement_ * statement
static bool da_simple_sequence_filter(statement s)
static void daCheckCallReplace(call c, reference ref)
bool deatomizer(char *mod_name)
deatomizer.c
static bool stat_has_write_eff_ref_p(reference ref, statement stat)
static void da_simple_statements(statement s)
static void daCallReplaceReference(call c, reference ref, expression next)
static list addStatementToSequence(statement stat, list seq, list *start)
static bool expr_has_write_eff_ref_p(reference ref, expression expr)
static bool gReplaceAllowed
static bool add_const_expr_p(statement stat)
static void daExpressionReplaceReference(list e, reference ref, expression next)
static void da_simple_statements_pass(statement s)
static bool stats_has_rw_conf_p(statement si, statement sj, reference refi, reference refj)
static void checkReplaceReference(expression e, reference ref)
static bool gRepOnlyInIndex
static list da_process_list(list seq, bool repOnlyInIndex, bool(*stat_to_process)(statement))
#define CONFLICT(x)
CONFLICT.
#define dg_arc_label_conflicts(x)
#define conflict_source(x)
list load_proper_rw_effects_list(statement)
void reset_proper_rw_effects(void)
void set_proper_rw_effects(statement_effects)
list expression_to_proper_effects(expression)
#define effect_write_p(eff)
#define effect_read_p(eff)
#define effect_scalar_p(eff) entity_scalar_p(effect_entity(eff))
entity effect_entity(effect)
cproto-generated files
#define action_write_p(x)
#define call_constant_p(C)
#define gen_recurse(start, domain_number, flt, rwt)
static char start[1024]
The name of the variable from which to start counting domain numbers.
#define successor_vertex(x)
#define successor_arc_label(x)
struct _newgen_struct_graph_ * graph
#define vertex_successors(x)
#define SUCCESSOR(x)
SUCCESSOR.
#define graph_vertices(x)
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.
entity set_current_module_entity(entity)
static.c
#define NIL
The empty list (nil in Lisp)
size_t gen_length(const list l)
#define CONS(_t_, _i_, _l_)
List element cell constructor (insert an element at the beginning of a list)
#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 CDR(pcons)
Get the list less its first element.
#define MAPL(_map_list_cp, _code, _l)
Apply some code on the addresses of all the elements of a list.
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.
void hash_dont_warn_on_redefinition(void)
hash_table hash_table_make(hash_key_type key_type, size_t size)
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.
void hash_warn_on_redefinition(void)
these function set the variable should_i_warn_on_redefinition to the value true or false
void hash_table_free(hash_table htp)
this function deletes a hash table that is no longer useful.
void * hash_del(hash_table htp, const void *key)
this function removes from the hash table pointed to by htp the couple whose key is equal to key.
bool expression_constant_p(expression)
HPFC module by Fabien COELHO.
statement vertex_to_statement(vertex v)
Vertex_to_statement looks for the statement that is pointed to by vertex v.
#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
#define pips_internal_error
#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,...
int f(int off1, int off2, int n, float r[n], float a[n], float b[n])
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 ENTITY_MINUS_P(e)
#define NORMALIZE_EXPRESSION(e)
bool same_entity_p(entity e1, entity e2)
predicates on entities
entity module_name_to_entity(const char *mn)
This is an alias for local_name_to_top_level_entity.
bool reference_equal_p(reference r1, reference r2)
reference expression_reference(expression e)
Short cut, meaningful only if expression_reference_p(e) holds.
#define normalized_undefined
#define instruction_sequence_p(x)
#define value_constant(x)
#define syntax_reference(x)
#define reference_variable(x)
#define statement_domain
newgen_sizeofexpression_domain_defined
#define range_increment(x)
#define EXPRESSION(x)
EXPRESSION.
#define constant_int_p(x)
#define expression_normalized(x)
#define sequence_statements(x)
#define reference_indices(x)
#define instruction_sequence(x)
#define instruction_call_p(x)
#define statement_instruction(x)
#define instruction_call(x)
#define call_arguments(x)
#define expression_syntax(x)
#define STATEMENT(x)
STATEMENT.
#define entity_initial(x)
int fprintf()
test sc_min : ce test s'appelle par : programme fichier1.data fichier2.data ...
The structure used to build lists in NewGen.
#define exp
Avoid some warnings from "gcc -Wshadow".