isl_pw_*_pullback_multi_aff: use isl_pw_*_n_piece
authorSven Verdoolaege <sven@cerebras.net>
Wed, 23 Jun 2021 13:33:28 +0000 (23 15:33 +0200)
committerSven Verdoolaege <sven@cerebras.net>
Sun, 1 Aug 2021 12:20:55 +0000 (1 14:20 +0200)
This reduces the dependence on the internal representation.

Signed-off-by: Sven Verdoolaege <sven@cerebras.net>
isl_pw_pullback_templ.c

index 6f1bda9..5c181d6 100644 (file)
@@ -36,18 +36,20 @@ __isl_give PW *FN(PW,pullback_multi_aff)(__isl_take PW *pw,
        __isl_take isl_multi_aff *ma)
 {
        int i;
+       isl_size n;
        isl_space *space = NULL;
 
        FN(PW,align_params_multi_aff)(&pw, &ma);
        ma = isl_multi_aff_align_divs(ma);
        pw = FN(PW,cow)(pw);
-       if (!pw || !ma)
+       n = FN(PW,n_piece)(pw);
+       if (n < 0 || !ma)
                goto error;
 
        space = isl_space_join(isl_multi_aff_get_space(ma),
                                FN(PW,get_space)(pw));
 
-       for (i = 0; i < pw->n; ++i) {
+       for (i = 0; i < n; ++i) {
                pw->p[i].set = isl_set_preimage_multi_aff(pw->p[i].set,
                                                    isl_multi_aff_copy(ma));
                if (!pw->p[i].set)