summaryrefslogtreecommitdiffstats
path: root/polly/lib/Transform/ScheduleOptimizer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'polly/lib/Transform/ScheduleOptimizer.cpp')
-rw-r--r--polly/lib/Transform/ScheduleOptimizer.cpp34
1 files changed, 15 insertions, 19 deletions
diff --git a/polly/lib/Transform/ScheduleOptimizer.cpp b/polly/lib/Transform/ScheduleOptimizer.cpp
index 1e063093033..4c9c9719111 100644
--- a/polly/lib/Transform/ScheduleOptimizer.cpp
+++ b/polly/lib/Transform/ScheduleOptimizer.cpp
@@ -283,34 +283,30 @@ isl_schedule_node *IslScheduleOptimizer::optimizeBand(isl_schedule_node *Node,
return Node;
}
- auto Sizes = isl_multi_val_zero(Space);
- auto Ctx = isl_schedule_node_get_ctx(Node);
-
- for (unsigned i = 0; i < Dims; i++) {
- auto tileSize = TileSizes.size() > i ? TileSizes[i] : DefaultTileSize;
- Sizes = isl_multi_val_set_val(Sizes, i, isl_val_int_from_si(Ctx, tileSize));
+ if (!DisableTiling) {
+ auto Ctx = isl_schedule_node_get_ctx(Node);
+ auto Sizes = isl_multi_val_zero(isl_space_copy(Space));
+ for (unsigned i = 0; i < Dims; i++) {
+ auto tileSize = TileSizes.size() > i ? TileSizes[i] : DefaultTileSize;
+ Sizes =
+ isl_multi_val_set_val(Sizes, i, isl_val_int_from_si(Ctx, tileSize));
+ }
+ Node = isl_schedule_node_band_tile(Node, Sizes);
+ Node = isl_schedule_node_child(Node, 0);
}
- isl_schedule_node *Res;
-
- if (DisableTiling) {
- isl_multi_val_free(Sizes);
- Res = Node;
- } else {
- Res = isl_schedule_node_band_tile(Node, Sizes);
- Res = isl_schedule_node_child(Res, 0);
- }
+ isl_space_free(Space);
if (PollyVectorizerChoice == VECTORIZER_NONE)
- return Res;
+ return Node;
for (int i = Dims - 1; i >= 0; i--)
- if (isl_schedule_node_band_member_get_coincident(Res, i)) {
- Res = IslScheduleOptimizer::prevectSchedBand(Res, i);
+ if (isl_schedule_node_band_member_get_coincident(Node, i)) {
+ Node = IslScheduleOptimizer::prevectSchedBand(Node, i);
break;
}
- return Res;
+ return Node;
}
__isl_give isl_schedule *
OpenPOWER on IntegriCloud