25 #include "pips_config.h"
59 #include "constants.h"
76 #include "resources.h"
77 #include "scheduling.h"
101 #define MY_MIN(a,b) ((a)>(b)?(b):(a))
105 #define DFG_MARK_OLD(v) \
106 (sccflags_mark(dfg_vertex_label_sccflags((dfg_vertex_label) \
107 vertex_vertex_label(v))) = OLD_MARK)
108 #define DFG_MARK_NEW(v) \
109 (sccflags_mark(dfg_vertex_label_sccflags((dfg_vertex_label) \
110 vertex_vertex_label(v))) = NEW_MARK)
111 #define DFG_MARKED_NEW_P(v) \
112 (sccflags_mark(dfg_vertex_label_sccflags((dfg_vertex_label) \
113 vertex_vertex_label(v))) == NEW_MARK)
115 #define DFG_VERTEX_ENCLOSING_SCC(v) \
116 (sccflags_enclosing_scc(dfg_vertex_label_sccflags((dfg_vertex_label)\
117 vertex_vertex_label(v))))
142 if (
Stack[i] == v)
return(
true);
234 for (pv = vertices; pv !=
NIL; pv =
CDR(pv))
263 list nodes_l, su_l, df_l, scc_l;
267 fprintf(fp,
"\n Graphe des Composantes Connexes :\n");
268 fprintf(fp,
"==================================\n");
274 fprintf(fp,
"\ncomposante %d :\n",iter);
281 for( ; su_l !=
NIL; su_l =
CDR(su_l))
286 for ( ; df_l !=
NIL; df_l =
CDR(df_l))
323 if (p == i)
return(ver);
346 vertex v1, v2, v3, v4, v5;
sccflags make_sccflags(scc a1, intptr_t a2, intptr_t a3, intptr_t a4)
scc make_scc(list a1, intptr_t a2)
successor make_successor(arc_label a1, vertex a2)
vertex make_vertex(vertex_label a1, list a2)
dfg_vertex_label copy_dfg_vertex_label(dfg_vertex_label p)
DFG_VERTEX_LABEL.
static int sink_stmt
Current source node.
static int source_stmt
Current sink statement.
#define sccflags_lowlink(x)
#define sccflags_enclosing_scc(x)
#define sccflags_dfnumber(x)
#define successor_vertex(x)
#define successor_arc_label(x)
#define vertex_vertex_label(x)
#define vertex_successors(x)
#define SUCCESSOR(x)
SUCCESSOR.
#define graph_vertices(x)
#define ENDP(l)
Test if a list is empty.
#define POP(l)
Modify a list pointer to point on the next element of the list.
#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)
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.
#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.
#define ADD_ELEMENT_TO_LIST(_list, _type, _element)
int vertex_int_stmt(vertex)
===========================================================================
void fprint_dataflow(FILE *, int, dataflow)
===========================================================================
#define DATAFLOW(x)
DATAFLOW.
#define dfg_vertex_label_sccflags(x)
#define dfg_arc_label_dataflows(x)
struct _newgen_struct_dfg_vertex_label_ * dfg_vertex_label
#define dfg_vertex_label_statement(x)
int fprintf()
test sc_min : ce test s'appelle par : programme fichier1.data fichier2.data ...
graph dfg_reverse_graph(graph g)
======================================================================
dfg_arc_label arc_label
lint
vertex dfg_in_vertex_list(list l, vertex v)
=================================================================
#define MY_MIN(a, b)
===================================================================
void dfg_low_link_compute(graph g, vertex v)
=================================================================
int dfg_is_in_stack(vertex v)
=================================================================
dfg_vertex_label vertex_label
sccs dfg_find_sccs(graph g)
=================================================================
#define DFG_MARKED_NEW_P(v)
char vcid_scheduling_sccdfg[]
static int Count
A set of variables shared by the functions of this package.
void fprint_sccs(FILE *fp, sccs obj)
===========================================================================
The structure used to build lists in NewGen.