isl_map_coalesce: don't drop rational flag from result if set in input
authorSven Verdoolaege <skimo@kotnet.org>
Tue, 21 Jul 2009 11:31:47 +0000 (13:31 +0200)
committerSven Verdoolaege <skimo@kotnet.org>
Tue, 21 Jul 2009 11:31:47 +0000 (13:31 +0200)
isl_coalesce.c

index a95ccc5..1ccd208 100644 (file)
@@ -178,6 +178,9 @@ static int fuse(struct isl_map *map, int i, int j, struct isl_tab **tabs,
 
        fused = isl_basic_map_gauss(fused, NULL);
        ISL_F_SET(fused, ISL_BASIC_MAP_FINAL);
+       if (ISL_F_ISSET(map->p[i], ISL_BASIC_MAP_RATIONAL) &&
+           ISL_F_ISSET(map->p[j], ISL_BASIC_MAP_RATIONAL))
+               ISL_F_SET(fused, ISL_BASIC_MAP_RATIONAL);
 
        fused_tab = isl_tab_from_basic_map(fused);
        fused_tab = isl_tab_detect_redundant(fused_tab);