93 for (j = 0; j < level; j++)
96 if (irregular != NULL)
97 fprintf(file,
"+-- osl_irregular_t\n");
99 fprintf(file,
"+-- NULL irregular\n");
101 if (irregular != NULL) {
103 for(j = 0; j <= level; j++)
104 fprintf(file,
"|\t");
110 fprintf(file,
"statement%d's predicats : ", i);
112 fprintf(file,
"%d ", irregular->
predicates[i][j]);
118 fprintf(file,
"predicat%d's\niterators : ", i);
120 fprintf(file,
"%s ", irregular->
iterators[i][j]);
121 fprintf(file,
"\ncontrol body: %s\n", irregular->
body[i]);
125 i < irregular->nb_control + irregular->
nb_exit; i++) {
126 fprintf(file,
"predicat%d's\niterators : ", i);
128 fprintf(file,
"%s ", irregular->
iterators[i][j]);
129 fprintf(file,
"\nexit body: %s\n", irregular->
body[i]);
134 for (j = 0; j <= level; j++)
135 fprintf(file,
"|\t");
162 char *
string = NULL;
165 if (irregular != NULL) {
166 OSL_malloc(
string,
char *, high_water_mark *
sizeof(
char));
177 sprintf(buffer,
"%s%d ", buffer, irregular->
nb_predicates[i]);
179 sprintf(buffer,
"%s%d ", buffer, irregular->
predicates[i][j]);
181 sprintf(buffer,
"%s\n", buffer);
185 sprintf(buffer,
"%s%d\n", buffer, irregular->
nb_control);
186 sprintf(buffer,
"%s%d\n", buffer, irregular->
nb_exit);
188 sprintf(buffer,
"%s%d ", buffer, irregular->
nb_iterators[i]);
190 sprintf(buffer,
"%s%s ", buffer, irregular->
iterators[i][j]);
191 sprintf(buffer,
"%s\n%s\n", buffer, irregular->
body[i]);
194 for(i=0; i<irregular->
nb_exit; i++) {
195 sprintf(buffer,
"%s%d ", buffer, irregular->
nb_iterators[
198 sprintf(buffer,
"%s%s ", buffer, irregular->
iterators[
200 sprintf(buffer,
"%s\n%s\n", buffer, irregular->
body[
211 OSL_realloc(
string,
char *, (strlen(
string) + 1) *
sizeof(
char));
239 content = *extensions_fixme;
241 if (content == NULL) {
252 tok = strtok(content,
" \n");
262 tok = strtok(NULL,
" \n");
267 tok = strtok(NULL,
" \n");
273 tok = strtok(NULL,
" \n");
275 tok = strtok(NULL,
" \n");
276 irregular->
nb_exit = atoi(tok);
281 sizeof(
char **) * nb_predicates);
283 OSL_malloc(irregular->
body,
char **,
sizeof(
char *) * nb_predicates);
285 for(i = 0; i < nb_predicates; i++) {
287 tok = strtok(NULL,
" \n");
328 irregular->
body = NULL;
341 int i, j, nb_predicates;
343 if (irregular != NULL) {
351 for(i = 0; i < nb_predicates; i++) {
361 if(irregular->
body != NULL)
386 if (irregular == NULL)
394 fprintf(stderr,
"[OpenScop] Error: memory overflow.\n");
400 fprintf(stderr,
"[OpenScop] Error: memory overflow.\n");
409 fprintf(stderr,
"[OpenScop] Error: memory overflow.\n");
422 fprintf(stderr,
"[OpenScop] Error: memory overflow.\n");
428 fprintf(stderr,
"[OpenScop] Error: memory overflow.\n");
431 copy->
body = (
char **)
malloc(
sizeof(
char*)*nb_predicates);
432 if (copy->
body == NULL)
434 fprintf(stderr,
"[OpenScop] Error: memory overflow.\n");
437 for(i=0; i<nb_predicates; i++)
443 fprintf(stderr,
"[OpenScop] Error: memory overflow.\n");
470 if (((c1 == NULL) && (c2 != NULL)) || ((c1 != NULL) && (c2 == NULL)))
478 while(
bool == 0 && i < c1->nb_statements)
487 while(
bool == 0 && i < c1->nb_control + c1->
nb_exit)
490 bool += strcmp(c1->
body[i],c2->
body[i]);
492 while(
bool == 0 && j < c1->nb_iterators[i])
520 result->
body = (
char**)
malloc(
sizeof(
char*)*nb_predicates);
523 result->
body == NULL)
525 fprintf(stderr,
"[OpenScop] Error: memory overflow.\n");
537 fprintf(stderr,
"[OpenScop] Error: memory overflow.\n");
547 fprintf(stderr,
"[OpenScop] Error: memory overflow.\n");
550 for(i=0; i<nb_iterators; i++)
555 for(i=result->
nb_control; i<nb_predicates; i++)
563 fprintf(stderr,
"[OpenScop] Error: memory overflow.\n");
574 fprintf(stderr,
"[OpenScop] Error: memory overflow.\n");
582 fprintf(stderr,
"[OpenScop] Error: memory overflow.\n");
609 result->
body = (
char**)
malloc(
sizeof(
char*)*nb_predicates);
612 result->
body == NULL)
614 fprintf(stderr,
"[OpenScop] Error: memory overflow.\n");
618 for(i=0; i<nb_predicates - 1; i++)
626 fprintf(stderr,
"[OpenScop] Error: memory overflow.\n");
633 result->
iterators[nb_predicates-1] = (
char**)
malloc(
sizeof(
char*)*nb_iterators);
634 if (result->
iterators[nb_predicates-1] == NULL)
636 fprintf(stderr,
"[OpenScop] Error: memory overflow.\n");
640 for(i=0; i<nb_iterators; i++)
649 fprintf(stderr,
"[OpenScop] Error: memory overflow.\n");
657 fprintf(stderr,
"[OpenScop] Error: memory overflow.\n");
671 int nb_add_predicates)
683 result->
body = (
char**)
malloc(
sizeof(
char*)*nb_predicates);
686 result->
body == NULL)
688 fprintf(stderr,
"[OpenScop] Error: memory overflow.\n");
692 for(i=0; i<nb_predicates; i++)
700 fprintf(stderr,
"[OpenScop] Error: memory overflow.\n");
712 fprintf(stderr,
"[OpenScop] Error: memory overflow.\n");
720 fprintf(stderr,
"[OpenScop] Error: memory overflow.\n");
731 fprintf(stderr,
"[OpenScop] Error: memory overflow.\n");
734 for(i=0; i<nb_add_predicates; i++)
void *(* osl_clone_f)(void *)
void *(* osl_sread_f)(char **)
#define OSL_TAG_IRREGULAR_START
void(* osl_idump_f)(FILE *, void *, int)
osl_interface_p osl_interface_malloc(void)
int osl_irregular_equal(osl_irregular_p c1, osl_irregular_p c2)
void osl_util_safe_strcat(char **dst, char *src, size_t *hwm)
char *(* osl_sprint_f)(void *)
char * osl_irregular_sprint(osl_irregular_p irregular)
osl_irregular_p osl_irregular_malloc(void)
#define OSL_strdup(destination, source)
void *(* osl_malloc_f)(void)
#define OSL_realloc(ptr, type, size)
int(* osl_equal_f)(void *, void *)
osl_interface_p osl_irregular_interface(void)
osl_irregular_p osl_irregular_add_control(osl_irregular_p irregular, char **iterators, int nb_iterators, char *body)
void osl_irregular_dump(FILE *file, osl_irregular_p irregular)
#define OSL_URI_IRREGULAR
osl_irregular_p osl_irregular_add_exit(osl_irregular_p irregular, char **iterators, int nb_iterators, char *body)
void(* osl_free_f)(void *)
void osl_irregular_free(osl_irregular_p irregular)
osl_irregular_p osl_irregular_add_predicates(osl_irregular_p irregular, int *predicates, int nb_add_predicates)
#define OSL_TAG_IRREGULAR_STOP
void osl_irregular_idump(FILE *file, osl_irregular_p irregular, int level)
osl_irregular_p osl_irregular_clone(osl_irregular_p irregular)
osl_irregular_p osl_irregular_sread(char **extensions_fixme)
#define OSL_malloc(ptr, type, size)