isl_printer_print_qpolynomial_fold: support C format
authorSven Verdoolaege <skimo@kotnet.org>
Mon, 27 Dec 2010 22:03:53 +0000 (23:03 +0100)
committerSven Verdoolaege <skimo@kotnet.org>
Wed, 29 Dec 2010 11:03:14 +0000 (12:03 +0100)
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
include/isl/ctx.h
isl_output.c

index 223c61e..d5ad89e 100644 (file)
@@ -63,7 +63,8 @@ struct isl_stats {
 enum isl_error {
        isl_error_none = 0,
        isl_error_unknown,
-       isl_error_invalid
+       isl_error_invalid,
+       isl_error_unsupported
 };
 struct isl_ctx {
        int                     ref;
index 54fda96..b103b5e 100644 (file)
@@ -1470,18 +1470,6 @@ static __isl_give isl_printer *qpolynomial_fold_print(
        return p;
 }
 
-__isl_give isl_printer *isl_printer_print_qpolynomial_fold(
-       __isl_take isl_printer *p, __isl_keep isl_qpolynomial_fold *fold)
-{
-       if  (!p || !fold)
-               goto error;
-       p = qpolynomial_fold_print(fold, p);
-       return p;
-error:
-       isl_printer_free(p);
-       return NULL;
-}
-
 void isl_qpolynomial_fold_print(__isl_keep isl_qpolynomial_fold *fold,
        FILE *out, unsigned output_format)
 {
@@ -1882,6 +1870,22 @@ static __isl_give isl_printer *print_qpolynomial_fold_c(
        return p;
 }
 
+__isl_give isl_printer *isl_printer_print_qpolynomial_fold(
+       __isl_take isl_printer *p, __isl_keep isl_qpolynomial_fold *fold)
+{
+       if  (!p || !fold)
+               goto error;
+       if (p->output_format == ISL_FORMAT_ISL)
+               return qpolynomial_fold_print(fold, p);
+       else if (p->output_format == ISL_FORMAT_C)
+               return print_qpolynomial_fold_c(p, fold->dim, fold);
+       isl_die(p->ctx, isl_error_unsupported, "unsupported output format",
+               goto error);
+error:
+       isl_printer_free(p);
+       return NULL;
+}
+
 static __isl_give isl_printer *print_pw_qpolynomial_fold_c(
        __isl_take isl_printer *p, __isl_keep isl_pw_qpolynomial_fold *pwf)
 {