This reduces the dependence on the internal representation.
Signed-off-by: Sven Verdoolaege <sven@cerebras.net>
@@ -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)