diff options
author | Sven Verdoolaege <skimo@kotnet.org> | 2011-06-24 14:53:49 +0200 |
---|---|---|
committer | Sven Verdoolaege <skimo@kotnet.org> | 2011-06-25 22:22:21 +0200 |
commit | e40d94e8409f8e49a8d6de681206fe099c703efd (patch) | |
tree | f4f81b6156271faf4b25135354424214d4df6f4e /isl_output.c | |
parent | 11c7c2c1e14be6abb33fb068e94fcae7933b743d (diff) | |
download | isl-e40d94e8409f8e49a8d6de681206fe099c703efd.tar.gz isl-e40d94e8409f8e49a8d6de681206fe099c703efd.tar.bz2 isl-e40d94e8409f8e49a8d6de681206fe099c703efd.zip |
add isl_pw_aff abstraction
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Diffstat (limited to 'isl_output.c')
-rw-r--r-- | isl_output.c | 69 |
1 files changed, 59 insertions, 10 deletions
diff --git a/isl_output.c b/isl_output.c index 5ada3741..d0fe7d81 100644 --- a/isl_output.c +++ b/isl_output.c @@ -2215,20 +2215,12 @@ void isl_local_space_dump(__isl_keep isl_local_space *ls) isl_printer_free(printer); } -__isl_give isl_printer *isl_printer_print_aff(__isl_take isl_printer *p, +static __isl_give isl_printer *print_aff(__isl_take isl_printer *p, __isl_keep isl_aff *aff) { unsigned total; - if (!aff) - goto error; - total = isl_local_space_dim(aff->ls, isl_dim_all); - if (isl_local_space_dim(aff->ls, isl_dim_param) > 0) { - p = print_tuple(aff->ls->dim, p, isl_dim_param, 0, 0, NULL); - p = isl_printer_print_str(p, " -> "); - } - p = isl_printer_print_str(p, "{ "); p = print_tuple(aff->ls->dim, p, isl_dim_set, 1, 0, NULL); p = isl_printer_print_str(p, " -> ["); p = isl_printer_print_str(p, "("); @@ -2240,7 +2232,24 @@ __isl_give isl_printer *isl_printer_print_aff(__isl_take isl_printer *p, p = isl_printer_print_str(p, ")/"); p = isl_printer_print_isl_int(p, aff->v->el[0]); } - p = isl_printer_print_str(p, "] }"); + p = isl_printer_print_str(p, "]"); + + return p; +} + +__isl_give isl_printer *isl_printer_print_aff(__isl_take isl_printer *p, + __isl_keep isl_aff *aff) +{ + if (!aff) + goto error; + + if (isl_local_space_dim(aff->ls, isl_dim_param) > 0) { + p = print_tuple(aff->ls->dim, p, isl_dim_param, 0, 0, NULL); + p = isl_printer_print_str(p, " -> "); + } + p = isl_printer_print_str(p, "{ "); + p = print_aff(p, aff); + p = isl_printer_print_str(p, " }"); return p; error: isl_printer_free(p); @@ -2260,3 +2269,43 @@ void isl_aff_dump(__isl_keep isl_aff *aff) isl_printer_free(printer); } + +__isl_give isl_printer *isl_printer_print_pw_aff(__isl_take isl_printer *p, + __isl_keep isl_pw_aff *pwaff) +{ + int i; + + if (!pwaff) + goto error; + + if (isl_dim_size(pwaff->dim, isl_dim_param) > 0) { + p = print_tuple(pwaff->dim, p, isl_dim_param, 0, 0, NULL); + p = isl_printer_print_str(p, " -> "); + } + p = isl_printer_print_str(p, "{ "); + for (i = 0; i < pwaff->n; ++i) { + if (i) + p = isl_printer_print_str(p, "; "); + p = print_aff(p, pwaff->p[i].aff); + p = print_disjuncts((isl_map *)pwaff->p[i].set, p, 1, 0); + } + p = isl_printer_print_str(p, " }"); + return p; +error: + isl_printer_free(p); + return NULL; +} + +void isl_pw_aff_dump(__isl_keep isl_pw_aff *pwaff) +{ + isl_printer *printer; + + if (!pwaff) + return; + + printer = isl_printer_to_file(isl_pw_aff_get_ctx(pwaff), stderr); + printer = isl_printer_print_pw_aff(printer, pwaff); + printer = isl_printer_end_line(printer); + + isl_printer_free(printer); +} |