25 #include "pips_config.h"
55 bool not_found =
true;
57 for(; (dg_vertices !=
NIL) && not_found ; dg_vertices =
CDR(dg_vertices))
86 effect source_eff, sink_eff;
87 entity source_ent, sink_ent;
145 bool true_dep_found =
false;
180 for(; (succs !=
NIL) && (! true_dep_found) ; succs =
CDR(succs))
184 for(; (confs !=
NIL) && (! true_dep_found) ; confs =
CDR(confs))
186 true_dep_found =
true;
191 "Vertex of assign stmt should not be undefined\n");
193 debug(5,
"defs_elim_of_assign_call",
"end ASSIGN , true dep : %s\n",
196 return(! true_dep_found);
218 debug(4,
"defs_elim_of_statement",
"begin STATEMENT\n");
258 debug(4,
"defs_elim_of_statement",
"Stmt CALL: %s\n",
273 debug(4,
"defs_elim_of_statement",
"end STATEMENT\n");
297 debug(3,
"defs_elim_of_unstructured",
"begin UNSTRUCTURED\n");
305 debug(3,
"defs_elim_of_unstructured",
"end UNSTRUCTURED\n");
static graph dg
dg is the dependency graph ; FIXME : should not be static global ?
static vertex get_vertex_of_statement(graph dg, statement stmt)
– defs_elim.c
bool true_dependence_with_entity_p(conflict conf, entity e)
===========================================================================
bool defs_elim_of_statement(statement s, graph dg)
===========================================================================
static bool entity_dynamic_p(entity e)
===========================================================================
bool defs_elim_of_assign_call(statement assign_stmt, graph dg)
===========================================================================
void defs_elim_of_unstructured(unstructured u, graph dg)
===========================================================================
struct _newgen_struct_dg_arc_label_ * dg_arc_label
#define CONFLICT(x)
CONFLICT.
#define dg_arc_label_conflicts(x)
#define conflict_source(x)
string effect_to_string(effect)
entity effect_entity(effect)
cproto-generated files
#define successor_arc_label(x)
#define vertex_successors(x)
#define SUCCESSOR(x)
SUCCESSOR.
#define graph_vertices(x)
#define CONTROL_MAP(ctl, code, c, list)
Macro to walk through all the controls reachable from a given control node of an unstructured.
#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 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,...)
void debug(const int the_expected_debug_level, const char *calling_function_name, const char *a_message_format,...)
ARARGS0.
string bool_to_string(bool)
list Words_Call(call obj, int precedence, bool leftmost, bool is_a_subroutine)
#define ENTITY_ASSIGN_P(e)
#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 make_empty_statement
An alias for make_empty_block_statement.
bool dynamic_area_p(entity aire)
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...
bool same_entity_p(entity e1, entity e2)
predicates on entities
#define syntax_reference(x)
#define reference_variable(x)
#define instruction_loop(x)
#define statement_ordering(x)
#define entity_storage(x)
#define EXPRESSION(x)
EXPRESSION.
@ is_instruction_unstructured
#define instruction_tag(x)
#define statement_instruction(x)
#define instruction_call(x)
#define call_arguments(x)
#define control_statement(x)
#define instruction_test(x)
#define expression_syntax(x)
#define instruction_unstructured(x)
#define STATEMENT(x)
STATEMENT.
int vertex_ordering(vertex)
The structure used to build lists in NewGen.
string words_to_string(cons *lw)