isl_basic_map_gauss: handle redundant or conflicting equalities directly
authorSven Verdoolaege <skimo@kotnet.org>
Sun, 24 Aug 2008 15:11:43 +0000 (17:11 +0200)
committerSven Verdoolaege <skimo@kotnet.org>
Mon, 25 Aug 2008 07:24:18 +0000 (09:24 +0200)
isl_map.c

index e2eb72c..29b74c7 100644 (file)
--- a/isl_map.c
+++ b/isl_map.c
@@ -771,6 +771,14 @@ struct isl_basic_map *isl_basic_map_gauss(struct isl_ctx *ctx,
                                    bmap->eq[done][1+last_var]);
                }
        }
+       if (done == bmap->n_eq)
+               return bmap;
+       for (k = done; k < bmap->n_eq; ++k) {
+               if (isl_int_is_zero(bmap->eq[k][0]))
+                       continue;
+               return isl_basic_map_set_to_empty(ctx, bmap);
+       }
+       isl_basic_map_free_equality(ctx, bmap, bmap->n_eq-done);
        return bmap;
 }