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) {
246 nb_columns_may_write++;
249 fprintf(file,
"# Read access informations\n%d %d\n",
250 nb_rows_read, nb_columns_read);
259 fprintf(file,
"# Write access informations\n%d %d\n",
260 nb_rows_write, nb_columns_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);
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) &&
750 while (list != NULL) {
751 if (list->
elt != NULL)
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_list_pprint_elts(FILE *file, osl_relation_list_p list, osl_names_p names)
osl_relation_list_p osl_relation_list_read(FILE *foo)
int osl_util_read_int(FILE *file, char **str)
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_free(osl_relation_p relation)
void osl_relation_list_print(FILE *file, osl_relation_list_p list)
void osl_relation_idump(FILE *file, osl_relation_p relation, int level)
osl_relation_list_p osl_relation_list_pop(osl_relation_list_p *head)
void osl_relation_pprint_scoplib(FILE *file, osl_relation_p relation, osl_names_p names, int print_nth_part, int add_fakeiter)
osl_relation_list_p osl_relation_list_malloc(void)
osl_relation_list_p osl_relation_list_filter(osl_relation_list_p list, int type)
void osl_relation_pprint(FILE *file, osl_relation_p relation, osl_names_p names)
void osl_relation_list_free(osl_relation_list_p list)
#define OSL_TYPE_MAY_WRITE
osl_relation_list_p osl_relation_list_node(osl_relation_p r)
void osl_relation_list_dup(osl_relation_list_p *head)
osl_relation_p osl_relation_clone(osl_relation_p relation)
int osl_relation_equal(osl_relation_p r1, osl_relation_p r2)
void osl_relation_list_add(osl_relation_list_p *l1, osl_relation_list_p l2)
void osl_relation_list_destroy(osl_relation_list_p *head)
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)
osl_relation_list_p osl_relation_list_clone(osl_relation_list_p list)
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_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)
void osl_relation_list_set_type(osl_relation_list_p list, int type)
int osl_relation_is_access(osl_relation_p relation)
struct osl_relation_list * next
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)
void osl_relation_get_attributes(osl_relation_p relation, int *nb_parameters, int *nb_iterators, int *nb_scattdims, int *nb_localdims, int *array_id)
osl_relation_list_p osl_relation_list_pread(FILE *file, int precision)
int osl_util_get_precision(void)
void osl_relation_list_dump(FILE *file, osl_relation_list_p list)
osl_relation_p osl_relation_pread(FILE *foo, int precision)
void osl_relation_list_idump(FILE *file, osl_relation_list_p l, int level)
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)
#define OSL_malloc(ptr, type, size)