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) {
127 case OSL_UNDEFINED : fprintf(file,
"UNSET\n");
break;
128 case OSL_DEPENDENCE_RAW : fprintf(file,
"RAW (flow)\n");
break;
129 case OSL_DEPENDENCE_WAR : fprintf(file,
"WAR (anti)\n");
break;
130 case OSL_DEPENDENCE_WAW : fprintf(file,
"WAW (output)\n");
break;
131 case OSL_DEPENDENCE_RAR : fprintf(file,
"RAR (input)\n");
break;
132 case OSL_DEPENDENCE_RAW_SCALPRIV :
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 int buffer_size = 2048;
248 OSL_malloc(buffer,
char*, buffer_size);
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) {
263 case OSL_DEPENDENCE_RAW:
264 type =
"RAW #(flow)";
266 case OSL_DEPENDENCE_WAR:
267 type =
"WAR #(anti)";
269 case OSL_DEPENDENCE_WAW:
270 type =
"WAW #(output)";
272 case OSL_DEPENDENCE_RAR:
273 type =
"RAR #(input)";
275 case OSL_DEPENDENCE_RAW_SCALPRIV:
276 type =
"RAW_SCALPRIV #(scalar priv)";
284 snprintf(buff, OSL_MAX_STRING,
"# Description of dependence %d\n"
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"))
324 dep->
type = OSL_DEPENDENCE_RAW;
325 else if (! strcmp(buffer,
"RAR"))
326 dep->
type = OSL_DEPENDENCE_RAR;
327 else if (! strcmp(buffer,
"WAR"))
328 dep->
type = OSL_DEPENDENCE_WAR;
329 else if (! strcmp(buffer,
"WAW"))
330 dep->
type = OSL_DEPENDENCE_WAW;
331 else if (! strcmp(buffer,
"RAW_SCALPRIV"))
332 dep->
type = OSL_DEPENDENCE_RAW_SCALPRIV;
375 if (*input == NULL) {
376 OSL_debug(
"no dependence optional tag");
385 for (i = 0; i < nbdeps; i++) {
388 currdep = first = adep;
390 currdep->
next = adep;
391 currdep = currdep->
next;
418 dependence->
depth = OSL_UNDEFINED;
419 dependence->
type = OSL_UNDEFINED;
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) {
644 OSL_strdup(interface->URI, OSL_URI_DEPENDENCE);
osl_dependence_p osl_dependence_malloc()
void osl_relation_free(osl_relation_p relation)
int target_nb_output_dims_access
void osl_dependence_print(FILE *file, osl_dependence_p dependence)
void *(* osl_clone_f)(void *)
osl_statement_p stmt_source_ptr
void osl_dependence_add(osl_dependence_p *start, osl_dependence_p *now, osl_dependence_p dependence)
void osl_dependence_free(osl_dependence_p dependence)
int source_nb_local_dims_domain
osl_dependence_p osl_dependence_nclone(osl_dependence_p dep, int n)
osl_interface_p osl_interface_malloc()
osl_interface_p osl_dependence_interface()
struct osl_dependence * next
char * osl_relation_sprint(osl_relation_p relation)
int osl_dependence_equal(osl_dependence_p d1, osl_dependence_p d2)
void *(* osl_sread_f)(char **)
osl_statement_p stmt_target_ptr
int target_nb_output_dims_domain
osl_dependence_p osl_dependence_psread(char **input, int precision)
void osl_util_safe_strcat(char **dst, char *src, int *hwm)
int osl_relation_equal(osl_relation_p r1, osl_relation_p r2)
void osl_relation_idump(FILE *file, osl_relation_p relation, int level)
int target_nb_local_dims_access
int osl_util_get_precision()
osl_dependence_p osl_dependence_clone(osl_dependence_p dep)
void(* osl_idump_f)(FILE *, void *, int)
int osl_nb_dependences(osl_dependence_p deps)
int osl_util_read_int(FILE *file, char **str)
int target_nb_local_dims_domain
char *(* osl_sprint_f)(void *)
char * osl_util_read_string(FILE *file, char **str)
osl_relation_p ref_source_access_ptr
void osl_dependence_dump(FILE *file, osl_dependence_p dependence)
osl_relation_p osl_relation_clone(osl_relation_p relation)
int source_nb_output_dims_access
char * osl_dependence_sprint(osl_dependence_p dependence)
int(* osl_equal_f)(void *, void *)
int source_nb_local_dims_access
osl_relation_p osl_relation_psread(char **input, int precision)
osl_relation_p ref_target_access_ptr
void osl_statement_idump(FILE *file, osl_statement_p statement, int level)
int source_nb_output_dims_domain
static osl_dependence_p osl_dependence_read_one_dep(char **input, int precision)
struct osl_statement * next
void(* osl_free_f)(void *)
void osl_dependence_idump(FILE *file, osl_dependence_p dependence, int level)
osl_dependence_p osl_dependence_sread(char **input)