98 if (dependence != NULL) {
99 for (j=0; j<level; j++)
100 fprintf(file,
"|\t");
101 fprintf(file,
"+-- osl_dependence_p\n");
103 for (j=0; j<level; j++)
104 fprintf(file,
"|\t");
105 fprintf(file,
"+-- NULL dependence\n");
108 while (dependence != NULL) {
110 for (j=0; j<level; j++)
111 fprintf(file,
"|\t");
112 fprintf(file,
"| osl_dependence_p\n");
118 for (j=0; j<=level+1; j++)
119 fprintf(file,
"|\t");
123 for (j=0; j<=level; j++)
124 fprintf(file,
"|\t");
125 fprintf(file,
"Type: ");
126 switch (dependence->
type) {
133 fprintf(file,
"RAW_SCALPRIV (scalar priv)\n");
break;
134 default : fprintf(file,
"unknown\n");
break;
138 for (j=0; j<=level+1; j++)
139 fprintf(file,
"|\t");
143 for (j=0; j<=level; j++)
144 fprintf(file,
"|\t");
145 fprintf(file,
"Depth: %d\n", dependence->
depth);
148 for (j=0; j<=level+1; j++)
149 fprintf(file,
"|\t");
153 for (j=0; j<=level; j++)
154 fprintf(file,
"|\t");
155 fprintf(file,
"Ref source: %d, Ref target: %d\n",
159 for (j=0; j<=level+1; j++)
160 fprintf(file,
"|\t");
164 for (j=0; j<=level; j++)
165 fprintf(file,
"|\t");
166 fprintf(file,
"Statement label: %d\n", dependence->
label_source);
173 for (j=0; j<=level; j++)
174 fprintf(file,
"|\t");
175 fprintf(file,
"Target label: %d\n", dependence->
label_target);
182 for (j=0; j<=level; j++)
183 fprintf(file,
"|\t");
184 fprintf(file,
"%d %d %d %d %d %d %d %d\n",
195 dependence = dependence->
next;
198 if (dependence != NULL) {
199 for (j=0; j<=level; j++)
200 fprintf(file,
"|\t");
201 fprintf(file,
"V\n");
206 for (j=0; j<=level; j++)
207 fprintf(file,
"|\t");
228 fprintf(file,
"%s\n",
string);
242 size_t buffer_size = 2048;
251 for (tmp = dependence, nb_deps = 0; tmp; tmp = tmp->
next, ++nb_deps)
253 snprintf(buff,
OSL_MAX_STRING,
"# Number of dependences\n%d\n", nb_deps);
254 strcat(buffer, buff);
257 for (tmp = dependence, nb_deps = 1; tmp; tmp = tmp->
next, ++nb_deps) {
264 type =
"RAW #(flow)";
267 type =
"WAR #(anti)";
270 type =
"WAW #(output)";
273 type =
"RAR #(input)";
276 type =
"RAW_SCALPRIV #(scalar priv)";
286 "# From source statement id\n%d\n" 287 "# To target statement id\n%d\n" 289 "# From source access ref\n%d\n" 290 "# To target access ref\n%d\n" 291 "# Dependence domain\n",
323 if (! strcmp(buffer,
"RAW"))
325 else if (! strcmp(buffer,
"RAR"))
327 else if (! strcmp(buffer,
"WAR"))
329 else if (! strcmp(buffer,
"WAW"))
331 else if (! strcmp(buffer,
"RAW_SCALPRIV"))
375 if (*input == NULL) {
385 for (i = 0; i < nbdeps; i++) {
388 currdep = first = adep;
390 currdep->
next = adep;
391 currdep = currdep->
next;
424 dependence->
domain = NULL;
425 dependence->
next = NULL;
426 dependence->
usr = NULL;
451 while (dependence != NULL) {
452 next = dependence->
next;
474 int first = 1, i = 0;
477 while ((dep != NULL) && ((n == -1) || (i < n))) {
481 node->depth = dep->
depth;
482 node->type = dep->
type;
505 previous->
next = node;
506 previous = previous->
next;
543 if ((d1->
next != NULL && d2->
next == NULL) ||
544 (d1->
next == NULL && d2->
next != NULL))
547 if (d1->
next != NULL && d2->
next != NULL)
602 if (dependence != NULL) {
603 if (*start == NULL) {
607 (*now)->
next = dependence;
611 while ((*now)->next != NULL)
627 while (dep != NULL) {
int target_nb_local_dims_domain
#define OSL_DEPENDENCE_RAW
void *(* osl_clone_f)(void *)
void *(* osl_sread_f)(char **)
int osl_util_read_int(FILE *file, char **str)
struct osl_dependence * next
struct osl_statement * next
void(* osl_idump_f)(FILE *, void *, int)
int osl_nb_dependences(osl_dependence_p deps)
#define OSL_DEPENDENCE_RAW_SCALPRIV
osl_interface_p osl_interface_malloc(void)
char * osl_dependence_sprint(osl_dependence_p dependence)
void osl_relation_free(osl_relation_p relation)
void osl_relation_idump(FILE *file, osl_relation_p relation, int level)
int target_nb_output_dims_domain
void osl_dependence_add(osl_dependence_p *start, osl_dependence_p *now, osl_dependence_p dependence)
void osl_util_safe_strcat(char **dst, char *src, size_t *hwm)
char *(* osl_sprint_f)(void *)
int source_nb_local_dims_access
osl_dependence_p osl_dependence_clone(osl_dependence_p dep)
#define OSL_strdup(destination, source)
void *(* osl_malloc_f)(void)
char * osl_util_read_string(FILE *file, char **str)
void osl_dependence_dump(FILE *file, osl_dependence_p dependence)
int source_nb_output_dims_access
char * osl_relation_sprint(osl_relation_p relation)
int(* osl_equal_f)(void *, void *)
osl_relation_p osl_relation_clone(osl_relation_p relation)
osl_statement_p stmt_source_ptr
int osl_relation_equal(osl_relation_p r1, osl_relation_p r2)
static osl_dependence_p osl_dependence_nclone(osl_dependence_p dep, int n)
osl_relation_p ref_target_access_ptr
osl_statement_p stmt_target_ptr
osl_dependence_p osl_dependence_sread(char **input)
void(* osl_free_f)(void *)
osl_dependence_p osl_dependence_malloc(void)
osl_relation_p ref_source_access_ptr
int source_nb_output_dims_domain
#define OSL_DEPENDENCE_WAR
int target_nb_local_dims_access
void osl_dependence_print(FILE *file, osl_dependence_p dependence)
#define OSL_DEPENDENCE_RAR
osl_relation_p osl_relation_psread(char **input, int precision)
int target_nb_output_dims_access
static osl_dependence_p osl_dependence_read_one_dep(char **input, int precision)
int osl_util_get_precision(void)
void osl_dependence_idump(FILE *file, osl_dependence_p dependence, int level)
#define OSL_URI_DEPENDENCE
void osl_statement_idump(FILE *file, osl_statement_p statement, int level)
osl_dependence_p osl_dependence_psread(char **input, int precision)
osl_interface_p osl_dependence_interface(void)
int osl_dependence_equal(osl_dependence_p d1, osl_dependence_p d2)
#define OSL_DEPENDENCE_WAW
int source_nb_local_dims_domain
void osl_dependence_free(osl_dependence_p dependence)
#define OSL_malloc(ptr, type, size)