93 for (j = 0; j < level; j++)
97 fprintf(file,
"+-- osl_relation_list_t\n");
99 fprintf(file,
"+-- NULL relation list\n");
104 for (j = 0; j < level; j++)
105 fprintf(file,
"|\t");
106 fprintf(file,
"| osl_relation_list_t\n");
112 for (j = 0; j <= level+1; j++)
113 fprintf(file,
"|\t");
123 for (j = 0; j <= level; j++)
124 fprintf(file,
"|\t");
125 fprintf(file,
"V\n");
130 for (j = 0; j <= level; j++)
131 fprintf(file,
"|\t");
170 if (head->
elt != NULL) {
172 if (head->
next != NULL)
180 fprintf(file,
"# NULL relation list\n");
199 int nb_rows_read = 0, nb_columns_read = 0;
200 int nb_rows_write = 0, nb_columns_write = 0;
201 int nb_rows_may_write = 0, nb_columns_may_write = 0;
213 if (head->
elt != NULL) {
214 if (head->
elt->
type == OSL_TYPE_READ) {
222 }
else if (head->
elt->
type == OSL_TYPE_WRITE) {
230 }
else if (head->
elt->
type == OSL_TYPE_MAY_WRITE) {
246 nb_columns_may_write++;
249 fprintf(file,
"# Read access informations\n%d %d\n",
250 nb_rows_read, nb_columns_read);
253 if (head->
elt != NULL && head->
elt->
type == OSL_TYPE_READ) {
259 fprintf(file,
"# Write access informations\n%d %d\n",
260 nb_rows_write, nb_columns_write);
263 if (head->
elt != NULL && head->
elt->
type == OSL_TYPE_WRITE) {
269 if (nb_rows_may_write > 0) {
270 fprintf(file,
"# May Write access informations\n%d %d\n",
271 nb_rows_may_write, nb_columns_may_write);
274 if (head->
elt != NULL && head->
elt->
type == OSL_TYPE_MAY_WRITE) {
282 fprintf(file,
"# NULL relation list\n");
305 fprintf(file,
"# List of %lu elements\n%lu\n", i, i);
307 fprintf(file,
"# List of %lu element \n%lu\n", i, i);
350 OSL_error(
"negative number of relations");
354 for (i = 0; i < nb_mat; ++i) {
415 while (list != NULL) {
416 if (list->
elt != NULL)
461 while (list != NULL) {
471 previous->
next = node;
472 previous = previous->
next;
503 while (end->
next != NULL)
559 *head = (*head)->
next;
607 while (*head != NULL)
621 while ((l1 != NULL) && (l2 != NULL)) {
632 if (((l1 == NULL) && (l2 != NULL)) || ((l1 != NULL) && (l2 == NULL)))
656 int expected_nb_output_dims,
657 int expected_nb_input_dims,
658 int expected_nb_parameters) {
659 while (list != NULL) {
663 expected_nb_output_dims,
664 expected_nb_input_dims,
665 expected_nb_parameters)) {
685 while (list != NULL) {
686 if (list->
elt != NULL) {
712 while (copy != NULL) {
713 if ((copy->
elt != NULL) &&
714 (((type == OSL_TYPE_ACCESS) &&
716 ((type != OSL_TYPE_ACCESS) &&
750 while (list != NULL) {
751 if (list->
elt != NULL)
784 int local_nb_parameters = OSL_UNDEFINED;
785 int local_nb_iterators = OSL_UNDEFINED;
786 int local_nb_scattdims = OSL_UNDEFINED;
787 int local_nb_localdims = OSL_UNDEFINED;
788 int local_array_id = OSL_UNDEFINED;
790 while (list != NULL) {
792 &local_nb_parameters,
798 *nb_parameters = OSL_max(*nb_parameters, local_nb_parameters);
799 *nb_iterators = OSL_max(*nb_iterators, local_nb_iterators);
800 *nb_scattdims = OSL_max(*nb_scattdims, local_nb_scattdims);
801 *nb_localdims = OSL_max(*nb_localdims, local_nb_localdims);
802 *array_id = OSL_max(*array_id, local_array_id);
void osl_relation_free(osl_relation_p relation)
void osl_relation_list_pprint_elts(FILE *file, osl_relation_list_p list, osl_names_p names)
osl_relation_list_p osl_relation_list_read(FILE *foo)
void osl_relation_list_push(osl_relation_list_p *head, osl_relation_list_p node)
void osl_relation_list_get_attributes(osl_relation_list_p list, int *nb_parameters, int *nb_iterators, int *nb_scattdims, int *nb_localdims, int *array_id)
void osl_relation_list_print(FILE *file, osl_relation_list_p list)
osl_relation_list_p osl_relation_list_pop(osl_relation_list_p *head)
osl_relation_list_p osl_relation_list_filter(osl_relation_list_p list, int type)
void osl_relation_list_free(osl_relation_list_p list)
void osl_relation_pprint(FILE *file, osl_relation_p relation, osl_names_p names)
osl_relation_list_p osl_relation_list_node(osl_relation_p r)
int osl_relation_is_access(osl_relation_p relation)
int osl_relation_equal(osl_relation_p r1, osl_relation_p r2)
void osl_relation_idump(FILE *file, osl_relation_p relation, int level)
osl_relation_list_p osl_relation_list_malloc()
int osl_util_get_precision()
void osl_relation_list_dup(osl_relation_list_p *head)
void osl_relation_list_add(osl_relation_list_p *l1, osl_relation_list_p l2)
void osl_relation_pprint_scoplib(FILE *file, osl_relation_p relation, osl_names_p names, int print_nth_part, int add_fakeiter)
void osl_relation_list_destroy(osl_relation_list_p *head)
osl_relation_list_p osl_relation_list_clone(osl_relation_list_p list)
void osl_relation_get_attributes(osl_relation_p relation, int *nb_parameters, int *nb_iterators, int *nb_scattdims, int *nb_localdims, int *array_id)
void osl_relation_list_pprint_access_array_scoplib(FILE *file, osl_relation_list_p list, osl_names_p names, int add_fakeiter)
int osl_relation_integrity_check(osl_relation_p relation, int expected_type, int expected_nb_output_dims, int expected_nb_input_dims, int expected_nb_parameters)
int osl_relation_list_equal(osl_relation_list_p l1, osl_relation_list_p l2)
osl_relation_list_p osl_relation_list_concat(osl_relation_list_p l1, osl_relation_list_p l2)
int osl_util_read_int(FILE *file, char **str)
void osl_relation_list_set_type(osl_relation_list_p list, int type)
osl_relation_p osl_relation_clone(osl_relation_p relation)
void osl_relation_list_drop(osl_relation_list_p *head)
int osl_relation_list_integrity_check(osl_relation_list_p list, int type, int expected_nb_output_dims, int expected_nb_input_dims, int expected_nb_parameters)
osl_relation_list_p osl_relation_list_pread(FILE *file, int precision)
void osl_relation_list_dump(FILE *file, osl_relation_list_p list)
void osl_relation_list_idump(FILE *file, osl_relation_list_p l, int level)
osl_relation_p osl_relation_pread(FILE *foo, int precision)
struct osl_relation_list * next
size_t osl_relation_list_count(osl_relation_list_p list)
void osl_relation_list_pprint(FILE *file, osl_relation_list_p list, osl_names_p names)