isl_basic_map_simplify: remove duplicate divs before dropping divs
authorSven Verdoolaege <skimo@kotnet.org>
Sun, 22 Mar 2009 17:21:09 +0000 (18:21 +0100)
committerSven Verdoolaege <skimo@kotnet.org>
Mon, 23 Mar 2009 09:00:20 +0000 (10:00 +0100)
The equalities on the duplicate but separate divs may
entail additional equalities among the variables that we do
not want to ignore.

isl_map_simplify.c

index 18041d5..b5b051d 100644 (file)
@@ -901,12 +901,12 @@ struct isl_basic_map *isl_basic_map_simplify(struct isl_basic_map *bmap)
        while (progress) {
                progress = 0;
                bmap = isl_basic_map_normalize_constraints(bmap);
+               bmap = remove_duplicate_divs(bmap, &progress);
                bmap = eliminate_divs_eq(bmap, &progress);
                bmap = eliminate_divs_ineq(bmap, &progress);
                bmap = isl_basic_map_gauss(bmap, &progress);
                /* requires equalities in normal form */
                bmap = normalize_divs(bmap, &progress);
-               bmap = remove_duplicate_divs(bmap, &progress);
                bmap = remove_duplicate_constraints(bmap, &progress);
        }
        return bmap;