99 for (j = 0; j < level; j++)
100 fprintf(file,
"|\t");
103 fprintf(file,
"+-- osl_scop_t\n");
105 fprintf(file,
"+-- NULL scop\n");
107 while (scop != NULL) {
110 for (j = 0; j < level; j++)
111 fprintf(file,
"|\t");
112 fprintf(file,
"| osl_scop_t\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,
"|\tVersion: %d\n", scop->
version);
128 for (j = 0; j <= level+1; j++)
129 fprintf(file,
"|\t");
133 for (j = 0; j < level; j++)
134 fprintf(file,
"|\t");
135 fprintf(file,
"|\tLanguage: %s\n", scop->
language);
138 for (j = 0; j <= level+1; j++)
139 fprintf(file,
"|\t");
161 for (j = 0; j <= level; j++)
162 fprintf(file,
"|\t");
163 fprintf(file,
"V\n");
168 for (j = 0; j <= level; j++)
169 fprintf(file,
"|\t");
194 int nb_parameters = OSL_UNDEFINED;
195 int nb_iterators = OSL_UNDEFINED;
196 int nb_scattdims = OSL_UNDEFINED;
197 int nb_localdims = OSL_UNDEFINED;
198 int array_id = OSL_UNDEFINED;
201 &nb_scattdims, &nb_localdims, &array_id);
219 int parameters_backedup = 0;
220 int arrays_backedup = 0;
227 fprintf(file,
"# NULL scop\n");
231 fprintf(file,
"# [File generated by the OpenScop Library %s]\n",
236 OSL_warning(
"OpenScop integrity check failed. Something may go wrong.");
241 while (scop != NULL) {
244 parameters_backedup = 1;
251 if (arrays != NULL) {
253 arrays_backup = names->
arrays;
257 fprintf(file,
"\n<"OSL_URI_SCOP
">\n\n");
258 fprintf(file,
"# =============================================== "
260 fprintf(file,
"# Language\n");
261 fprintf(file,
"%s\n\n", scop->
language);
263 fprintf(file,
"# Context\n");
272 fprintf(file,
"\n# Number of statements\n");
278 fprintf(file,
"# =============================================== "
282 fprintf(file,
"\n</"OSL_URI_SCOP
">\n\n");
285 if (parameters_backedup) {
286 parameters_backedup = 0;
291 if (arrays_backedup) {
294 names->
arrays = arrays_backup;
312 int parameters_backedup = 0;
313 int arrays_backedup = 0;
320 fprintf(file,
"# NULL scop\n");
324 fprintf(file,
"# [File generated by the OpenScop Library %s]\n"
325 "# [SCoPLib format]\n",
330 OSL_error(
"SCoP integrity check failed. Something may go wrong.");
337 while (scop != NULL) {
340 parameters_backedup = 1;
347 if (arrays != NULL) {
349 arrays_backup = names->
arrays;
353 fprintf(file,
"\nSCoP\n\n");
354 fprintf(file,
"# =============================================== "
356 fprintf(file,
"# Language\n");
357 fprintf(file,
"%s\n\n", scop->
language);
359 fprintf(file,
"# Context\n");
369 fprintf(file,
"# Parameter names\n");
373 fprintf(file,
"\n# Number of statements\n");
379 fprintf(file,
"# =============================================== "
385 if (parameters_backedup) {
386 parameters_backedup = 0;
391 if (arrays_backedup) {
394 names->
arrays = arrays_backup;
441 OSL_debug(
"no more scop in the file");
458 OSL_error(
"no language (backend) specified");
461 OSL_warning(
"uninterpreted information (after language)");
463 if (language != NULL) {
464 OSL_strdup(scop->language, language->
string[0]);
482 for (i = 0; i < nb_statements; i++) {
485 if (scop->statement == NULL)
486 scop->statement = stmt;
505 current->
next = scop;
511 OSL_warning(
"scop integrity check failed");
573 while (scop != NULL) {
602 while (*location != NULL)
603 location = &((*location)->next);
619 while (scop != NULL) {
636 osl_scop_p clone = NULL, node, previous = NULL;
639 while (scop != NULL) {
643 OSL_strdup(node->language, scop->
language);
656 previous->
next = node;
657 previous = previous->
next;
677 while ((s1 != NULL) && (s2 != NULL)) {
682 OSL_info(
"versions are not the same");
687 OSL_info(
"languages are not the same");
692 OSL_info(
"contexts are not the same");
697 OSL_info(
"parameters are not the same");
702 OSL_info(
"statements are not the same");
707 OSL_info(
"registries are not the same");
712 OSL_info(
"extensions are not the same");
720 if (((s1 == NULL) && (s2 != NULL)) || ((s1 != NULL) && (s2 == NULL)))
735 int expected_nb_parameters;
738 while (scop != NULL) {
743 fprintf(stderr,
"[OpenScop] Alert: What ?! Caml ?! Are you sure ?!?!\n");
757 expected_nb_parameters = OSL_UNDEFINED;
762 expected_nb_parameters))
783 if (scop->
next != NULL)
785 if (scop == NULL || scop->
statement == NULL)
795 while (statement != NULL) {
799 OSL_error(
"Local dims in scattering matrix");
803 domain = statement->
domain;
804 while (domain != NULL) {
806 OSL_error(
"Local dims in domain matrix");
809 domain = domain->
next;
814 for (i = 0 ; i < scattering->
nb_rows ; i++) {
818 OSL_error(
"Wrong -Identity");
823 OSL_error(
"Wrong -Identity");
830 statement = statement->
next;
846 OSL_debug(
"no context domain, assuming 0 parameters");
866 char * extension_string;
868 if ((interface != NULL) && (scop != NULL)) {
872 if (textual != NULL) {
905 int local_nb_parameters = OSL_UNDEFINED;
906 int local_nb_iterators = OSL_UNDEFINED;
907 int local_nb_scattdims = OSL_UNDEFINED;
908 int local_nb_localdims = OSL_UNDEFINED;
909 int local_array_id = OSL_UNDEFINED;
911 while (scop != NULL) {
913 &local_nb_parameters,
920 &local_nb_parameters,
926 *nb_parameters = OSL_max(*nb_parameters, local_nb_parameters);
927 *nb_iterators = OSL_max(*nb_iterators, local_nb_iterators);
928 *nb_scattdims = OSL_max(*nb_scattdims, local_nb_scattdims);
929 *nb_localdims = OSL_max(*nb_localdims, local_nb_localdims);
930 *array_id = OSL_max(*array_id, local_array_id);
944 int max_scattering_dims = 0;
948 if ((scop != NULL) && (scop->
statement != NULL)) {
951 while (statement != NULL) {
953 max_scattering_dims = OSL_max(max_scattering_dims,
956 statement = statement->
next;
961 while (statement != NULL) {
964 max_scattering_dims);
968 statement = statement->
next;
osl_strings_p osl_arrays_to_strings(osl_arrays_p arrays)
void osl_relation_free(osl_relation_p relation)
osl_names_p osl_names_generate(char *parameter_prefix, int nb_parameters, char *iterator_prefix, int nb_iterators, char *scatt_dim_prefix, int nb_scatt_dims, char *local_dim_prefix, int nb_local_dims, char *array_prefix, int nb_arrays)
int osl_interface_equal(osl_interface_p interface1, osl_interface_p interface2)
int osl_scop_equal(osl_scop_p s1, osl_scop_p s2)
int osl_scop_integrity_check(osl_scop_p scop)
void osl_scop_free(osl_scop_p scop)
void osl_scop_dump(FILE *file, osl_scop_p scop)
void osl_scop_add(osl_scop_p *location, osl_scop_p scop)
void osl_interface_free(osl_interface_p interface)
void osl_scop_print(FILE *file, osl_scop_p scop)
int osl_scop_get_nb_parameters(osl_scop_p scop)
int osl_statement_number(osl_statement_p statement)
struct osl_relation * next
osl_statement_p osl_statement_pread(FILE *file, osl_interface_p registry, int precision)
int osl_statement_equal(osl_statement_p s1, osl_statement_p s2)
osl_statement_p osl_statement_clone(osl_statement_p statement)
int osl_int_mone(int precision, osl_const_int_t value)
value == -1
size_t osl_scop_number(osl_scop_p scop)
osl_interface_p osl_interface_clone(osl_interface_p interface)
void osl_statement_free(osl_statement_p statement)
void * osl_generic_lookup(osl_generic_p x, char const *const URI)
struct osl_textual * osl_textual_p
void osl_generic_add(osl_generic_p *list, osl_generic_p generic)
void osl_interface_idump(FILE *file, osl_interface_p interface, int level)
void osl_interface_add(osl_interface_p *list, osl_interface_p interface)
void osl_scop_print_scoplib(FILE *file, osl_scop_p scop)
void osl_statement_pprint_scoplib(FILE *file, osl_statement_p statement, osl_names_p names)
void osl_relation_pprint(FILE *file, osl_relation_p relation, osl_names_p names)
void osl_scop_register_extension(osl_scop_p scop, osl_interface_p interface)
int osl_generic_has_URI(osl_const_generic_const_p x, char const *const URI)
osl_relation_p scattering
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_generic_p osl_generic_read(FILE *file, osl_interface_p registry)
int osl_util_get_precision()
osl_strings_p osl_strings_read(FILE *file)
void osl_relation_pprint_scoplib(FILE *file, osl_relation_p relation, osl_names_p names, int print_nth_part, int add_fakeiter)
int osl_scop_check_compatible_scoplib(osl_scop_p scop)
osl_generic_p osl_generic_read_one(FILE *file, osl_interface_p registry)
size_t osl_strings_size(osl_const_strings_const_p strings)
void osl_statement_get_attributes(osl_statement_p statement, int *nb_parameters, int *nb_iterators, int *nb_scattdims, int *nb_localdims, int *array_id)
osl_scop_p osl_scop_clone(osl_scop_p scop)
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_names_free(osl_names_p names)
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_statement_integrity_check(osl_statement_p statement, int expected_nb_parameters)
void osl_generic_idump(FILE *file, osl_generic_p generic, int level)
int osl_util_read_int(FILE *file, char **str)
osl_names_p osl_scop_names(osl_scop_p scop)
void osl_strings_print(FILE *file, osl_strings_p strings)
osl_generic_p osl_generic_sread(char **input, osl_interface_p registry)
void osl_util_print_provided(FILE *file, int provided, char *title)
osl_relation_p osl_relation_clone(osl_relation_p relation)
void osl_statement_pprint(FILE *file, osl_statement_p statement, osl_names_p names)
void osl_strings_free(osl_strings_p strings)
void osl_scop_idump(FILE *file, osl_scop_p scop, int level)
osl_interface_p osl_interface_get_default_registry()
void osl_generic_print_options_scoplib(FILE *file, osl_generic_p generic)
int osl_generic_equal(osl_generic_p x1, osl_generic_p x2)
osl_generic_p osl_generic_clone(osl_generic_p generic)
int osl_int_zero(int precision, osl_const_int_t value)
value == 0
osl_relation_p osl_relation_extend_output(osl_relation_p relation, int dim)
void osl_scop_normalize_scattering(osl_scop_p scop)
char * osl_util_read_uptotag(FILE *file, char **str, char *name)
osl_relation_p osl_relation_pread(FILE *foo, int precision)
void osl_statement_idump(FILE *file, osl_statement_p statement, int level)
osl_statement_p statement
osl_scop_p osl_scop_pread(FILE *file, osl_interface_p registry, int precision)
void osl_scop_get_attributes(osl_scop_p scop, int *nb_parameters, int *nb_iterators, int *nb_scattdims, int *nb_localdims, int *array_id)
void osl_generic_print(FILE *file, osl_generic_p generic)
struct osl_statement * next
osl_scop_p osl_scop_read(FILE *foo)
void osl_generic_free(osl_generic_p generic)
osl_scop_p osl_scop_malloc()