ScheduleOpt: Fix some bugs
isl changed a function name, we did not properly initialize some variables
and we freed an isl_ctx object.
llvm-svn: 134448
diff --git a/polly/lib/ScheduleOptimizer.cpp b/polly/lib/ScheduleOptimizer.cpp
index 2db2d01..c9982cd 100644
--- a/polly/lib/ScheduleOptimizer.cpp
+++ b/polly/lib/ScheduleOptimizer.cpp
@@ -205,7 +205,6 @@
partialSchedule = isl_union_map_apply_range(partialSchedule, tileUnionMap);
isl_dim_free(dim);
- isl_ctx_free(ctx);
return partialSchedule;
}
@@ -286,6 +285,11 @@
isl_union_map *partialSchedule;
band = isl_band_list_get_band(blist, i);
partialSchedule = getTiledPartialSchedule(band);
+ int scheduleDimensions = isl_band_n_member(band);
+ isl_dim *dim = isl_union_map_get_dim(partialSchedule);
+ int parameterDimensions = isl_dim_size(dim, isl_dim_param);
+ isl_dim_free(dim);
+
if (isl_band_has_children(band)) {
isl_band_list *children = isl_band_get_children(band);
@@ -296,11 +300,10 @@
isl_map *tileMap;
isl_union_map *tileUnionMap;
isl_ctx *ctx;
- int scheduleDimensions, parameterDimensions;
ctx = isl_union_map_get_ctx(partialSchedule);
for (int i = scheduleDimensions - 1 ; i >= 0 ; i--) {
- if (isl_band_member_is_parallel(band, i)) {
+ if (isl_band_member_is_zero_distance(band, i)) {
tileMap = getPrevectorMap(ctx, scheduleDimensions + i,
scheduleDimensions * 2,
parameterDimensions);
@@ -313,7 +316,7 @@
}
if (finalSchedule)
- isl_union_map_union(finalSchedule, partialSchedule);
+ finalSchedule = isl_union_map_union(finalSchedule, partialSchedule);
else
finalSchedule = partialSchedule;