diff options
| author | Tobias Grosser <tobias@grosser.es> | 2015-08-19 08:03:37 +0000 |
|---|---|---|
| committer | Tobias Grosser <tobias@grosser.es> | 2015-08-19 08:03:37 +0000 |
| commit | f10f4636ff44b992e5c0e0869f09491ea36cbaf7 (patch) | |
| tree | 737b2681b57480188e8e3d4979388992f8f1c9c1 | |
| parent | 251c6291170cf6c999655626a0e246c9f7117dab (diff) | |
| download | bcm5719-llvm-f10f4636ff44b992e5c0e0869f09491ea36cbaf7.tar.gz bcm5719-llvm-f10f4636ff44b992e5c0e0869f09491ea36cbaf7.zip | |
Simplify tiling code a bit
We only need to allocate the tile size vector if we actually want to perform
a tiling.
llvm-svn: 245422
| -rw-r--r-- | polly/lib/Transform/ScheduleOptimizer.cpp | 34 |
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 * |

