X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=isl_output.c;h=deeb24339c1a08a18f2c5779eb36181c3dd9b583;hb=c5a002b518cfc72c60960a740bf4c443aba27ca3;hp=452a30d3641db0e39879dc2bcd2fd279d6caeb02;hpb=554e4d0ca049892d9c799adedcbd3b27017bd496;p=platform%2Fupstream%2Fisl.git diff --git a/isl_output.c b/isl_output.c index 452a30d..deeb243 100644 --- a/isl_output.c +++ b/isl_output.c @@ -25,6 +25,7 @@ #include #include #include +#include static const char *s_to[2] = { " -> ", " \\to " }; static const char *s_and[2] = { " and ", " \\wedge " }; @@ -566,17 +567,6 @@ static __isl_give isl_printer *basic_map_print_omega( return p; } -static __isl_give isl_printer *isl_basic_map_print_omega( - __isl_keep isl_basic_map *bmap, __isl_take isl_printer *p) -{ - p = print_omega_parameters(bmap->dim, p); - - p = isl_printer_start_line(p); - p = basic_map_print_omega(bmap, p); - p = isl_printer_end_line(p); - return p; -} - static __isl_give isl_printer *basic_set_print_omega( __isl_keep isl_basic_set *bset, __isl_take isl_printer *p) { @@ -588,31 +578,16 @@ static __isl_give isl_printer *basic_set_print_omega( return p; } -static __isl_give isl_printer *isl_basic_set_print_omega( - __isl_keep isl_basic_set *bset, __isl_take isl_printer *p) -{ - p = print_omega_parameters(bset->dim, p); - - p = isl_printer_start_line(p); - p = basic_set_print_omega(bset, p); - p = isl_printer_end_line(p); - return p; -} - static __isl_give isl_printer *isl_map_print_omega(__isl_keep isl_map *map, __isl_take isl_printer *p) { int i; - p = print_omega_parameters(map->dim, p); - - p = isl_printer_start_line(p); for (i = 0; i < map->n; ++i) { if (i) p = isl_printer_print_str(p, " union "); p = basic_map_print_omega(map->p[i], p); } - p = isl_printer_end_line(p); return p; } @@ -621,15 +596,11 @@ static __isl_give isl_printer *isl_set_print_omega(__isl_keep isl_set *set, { int i; - p = print_omega_parameters(set->dim, p); - - p = isl_printer_start_line(p); for (i = 0; i < set->n; ++i) { if (i) p = isl_printer_print_str(p, " union "); p = basic_set_print_omega(set->p[i], p); } - p = isl_printer_end_line(p); return p; } @@ -768,7 +739,7 @@ error: return NULL; } -static int aff_split_cmp(const void *p1, const void *p2) +static int aff_split_cmp(const void *p1, const void *p2, void *user) { const struct isl_aff_split *s1, *s2; s1 = (const struct isl_aff_split *) p1; @@ -830,7 +801,9 @@ static __isl_give struct isl_aff_split *split_aff(__isl_keep isl_map *map) goto error; } - qsort(split, map->n, sizeof(struct isl_aff_split), &aff_split_cmp); + if (isl_sort(split, map->n, sizeof(struct isl_aff_split), + &aff_split_cmp, NULL) < 0) + goto error; n = map->n; for (i = n - 1; i >= 1; --i) { @@ -956,7 +929,7 @@ __isl_give isl_printer *isl_printer_print_basic_map(__isl_take isl_printer *p, if (p->output_format == ISL_FORMAT_ISL) return isl_basic_map_print_isl(bmap, p, 0); else if (p->output_format == ISL_FORMAT_OMEGA) - return isl_basic_map_print_omega(bmap, p); + return basic_map_print_omega(bmap, p); isl_assert(bmap->ctx, 0, goto error); error: isl_printer_free(p); @@ -996,7 +969,7 @@ __isl_give isl_printer *isl_printer_print_basic_set(__isl_take isl_printer *p, else if (p->output_format == ISL_FORMAT_POLYLIB_CONSTRAINTS) return bset_print_constraints_polylib(bset, p); else if (p->output_format == ISL_FORMAT_OMEGA) - return isl_basic_set_print_omega(bset, p); + return basic_set_print_omega(bset, p); isl_assert(p->ctx, 0, goto error); error: isl_printer_free(p); @@ -1391,6 +1364,8 @@ static __isl_give isl_printer *print_qpolynomial_c(__isl_take isl_printer *p, } if (qp) p = upoly_print(qp->upoly, dim, qp->div, p, 0); + else + p = isl_printer_free(p); if (!isl_int_is_one(den)) { p = isl_printer_print_str(p, ")/"); p = isl_printer_print_isl_int(p, den); @@ -1710,6 +1685,9 @@ static __isl_give isl_printer *print_set_c(__isl_take isl_printer *p, { int i; + if (!set) + return isl_printer_free(p); + if (set->n == 0) p = isl_printer_print_str(p, "0"); @@ -1969,8 +1947,8 @@ error: return NULL; } -__isl_give isl_printer *isl_printer_print_space(__isl_take isl_printer *p, - __isl_keep isl_space *dim) +static __isl_give isl_printer *isl_printer_print_space_isl( + __isl_take isl_printer *p, __isl_keep isl_space *dim) { if (!dim) goto error; @@ -1993,6 +1971,21 @@ error: return NULL; } +__isl_give isl_printer *isl_printer_print_space(__isl_take isl_printer *p, + __isl_keep isl_space *space) +{ + if (!p || !space) + return isl_printer_free(p); + if (p->output_format == ISL_FORMAT_ISL) + return isl_printer_print_space_isl(p, space); + else if (p->output_format == ISL_FORMAT_OMEGA) + return print_omega_parameters(space, p); + + isl_die(isl_space_get_ctx(space), isl_error_unsupported, + "output format not supported for space", + return isl_printer_free(p)); +} + __isl_give isl_printer *isl_printer_print_local_space(__isl_take isl_printer *p, __isl_keep isl_local_space *ls) {