92 int i, j, first = 1, number=1;
95 for (j = 0; j < level; j++)
99 fprintf(file,
"+-- osl_loop_t\n");
101 fprintf(file,
"+-- NULL loop\n");
103 while (loop != NULL) {
107 for (j = 0; j < level; j++)
108 fprintf(file,
"|\t");
110 fprintf(file,
"| osl_loop_t (node %d)\n", number);
116 for (j = 0; j <= level+1; j++)
117 fprintf(file,
"|\t");
121 for (j = 0; j <= level; j++)
122 fprintf(file,
"|\t");
123 fprintf(file,
"+--iterator: %s\n", loop->
iter);
125 for (j = 0; j <= level; j++)
126 fprintf(file,
"|\t");
127 fprintf(file,
"+--nb_stmts: %d\n", loop->
nb_stmts);
130 for (j = 0; j <= level; j++)
131 fprintf(file,
"|\t");
132 fprintf(file,
"+--stmt_ids:");
133 for(i = 0; i < loop->
nb_stmts; i++) {
135 fprintf(file,
"%2d, ", loop->
stmt_ids[i]);
140 for (j = 0; j <= level; j++)
141 fprintf(file,
"|\t");
142 fprintf(file,
"+--private_vars: %s\n", loop->
private_vars);
144 for (j = 0; j <= level; j++)
145 fprintf(file,
"|\t");
146 fprintf(file,
"+--directive: %d\n", loop->
directive);
153 for (j = 0; j <= level; j++)
154 fprintf(file,
"|\t");
155 fprintf(file,
"V\n");
160 for (j = 0; j <= level; j++)
161 fprintf(file,
"|\t");
189 int high_water_mark = OSL_MAX_STRING;
191 char buffer[OSL_MAX_STRING];
193 OSL_malloc(
string,
char *, high_water_mark *
sizeof(
char));
199 while (loop != NULL) {
200 sprintf(buffer,
"# ===========================================\n");
203 sprintf(buffer,
"# Loop number %d \n", ++nloop);
206 sprintf(buffer,
"# Iterator name\n");
208 sprintf(buffer,
"%s\n", loop->
iter);
211 sprintf(buffer,
"# Number of stmts\n");
213 sprintf(buffer,
"%d\n", loop->
nb_stmts);
217 sprintf(buffer,
"# Statement identifiers\n");
220 for (i = 0; i < loop->
nb_stmts; i++) {
221 sprintf(buffer,
"%d\n", loop->
stmt_ids[i]);
225 sprintf(buffer,
"# Private variables\n");
230 sprintf(buffer,
"# Directive\n");
232 sprintf(buffer,
"%d\n", loop->
directive);
238 OSL_realloc(
string,
char *, (strlen(
string) + 1) *
sizeof(
char));
266 OSL_debug(
"no loop optional tag");
278 while (nb_loops != 0) {
284 for (i = 0; i < loop->
nb_stmts; i++)
343 while (loop != NULL) {
378 OSL_strdup(clone->
iter, loop->
iter);
382 for (i = 0; i < loop->
nb_stmts; i++) {
442 if (((a1 == NULL) && (a2 != NULL)) || ((a1 != NULL) && (a2 == NULL))) {
459 for (i = 0; i < a1->
nb_stmts; i++) {
461 for (j = 0; j < a2->
nb_stmts; j++) {
507 if (((a1 == NULL) && (a2 != NULL)) || ((a1 != NULL) && (a2 == NULL))) {
508 OSL_info(
"lists of loops are not the same (compare with NULL)");
513 OSL_info(
"list of loops are not the same");
530 OSL_info(
"list of loops are not the same");
550 OSL_strdup(interface->URI, OSL_URI_LOOP);
char * iter
\0 terminated iterator name
void *(* osl_clone_f)(void *)
osl_loop_p osl_loop_clone_one(osl_loop_p loop)
int osl_loop_equal_one(osl_loop_p a1, osl_loop_p a2)
int * stmt_ids
Array of statement identifiers.
int directive
the OpenMP directive to implement
osl_interface_p osl_interface_malloc()
char * osl_loop_sprint(osl_loop_p loop)
void osl_loop_dump(FILE *file, osl_loop_p loop)
void osl_loop_idump(FILE *file, osl_loop_p loop, int level)
void *(* osl_sread_f)(char **)
int osl_loop_equal(osl_loop_p a1, osl_loop_p a2)
osl_loop_p osl_loop_malloc()
void osl_util_safe_strcat(char **dst, char *src, int *hwm)
int osl_loop_count(osl_loop_p ll)
void(* osl_idump_f)(FILE *, void *, int)
int osl_util_read_int(FILE *file, char **str)
char *(* osl_sprint_f)(void *)
char * osl_util_read_string(FILE *file, char **str)
char * private_vars
\0 terminated variable names
void osl_loop_free(osl_loop_p loop)
int nb_stmts
Number of statements in the loop.
int(* osl_equal_f)(void *, void *)
char * osl_util_read_line(FILE *file, char **str)
osl_loop_p osl_loop_clone(osl_loop_p loop)
osl_interface_p osl_loop_interface()
osl_loop_p osl_loop_sread(char **input)
void osl_loop_add(osl_loop_p loop, osl_loop_p *ll)
void(* osl_free_f)(void *)