diff options
author | Tobias Grosser <grosser@fim.uni-passau.de> | 2012-05-22 10:47:31 +0000 |
---|---|---|
committer | Tobias Grosser <grosser@fim.uni-passau.de> | 2012-05-22 10:47:31 +0000 |
commit | 29666113fdd90a0b928d37cda214047100ccf0ac (patch) | |
tree | 89cddd973e66e19a622f3fed3eef492b69156df2 | |
parent | 18daacad61e59994ffc64d2abdb0eb08e07f25aa (diff) | |
download | bcm5719-llvm-29666113fdd90a0b928d37cda214047100ccf0ac.tar.gz bcm5719-llvm-29666113fdd90a0b928d37cda214047100ccf0ac.zip |
ScheduleOptimizer: Simplify some code
We now use isl_map_equate, which makes the code a lot simpler.
llvm-svn: 157246
-rw-r--r-- | polly/lib/ScheduleOptimizer.cpp | 32 |
1 files changed, 10 insertions, 22 deletions
diff --git a/polly/lib/ScheduleOptimizer.cpp b/polly/lib/ScheduleOptimizer.cpp index 26f439f8758..3d8e28f0a62 100644 --- a/polly/lib/ScheduleOptimizer.cpp +++ b/polly/lib/ScheduleOptimizer.cpp @@ -197,33 +197,21 @@ void IslScheduleOptimizer::extendScattering(Scop &S, unsigned NewDimensions) { ScopStmt *Stmt = *SI; unsigned OldDimensions = Stmt->getNumScattering(); isl_space *Space; - isl_basic_map *ChangeScattering; + isl_map *Map, *New; Space = isl_space_alloc(Stmt->getIslCtx(), 0, OldDimensions, NewDimensions); - ChangeScattering = isl_basic_map_universe(isl_space_copy(Space)); - isl_local_space *LocalSpace = isl_local_space_from_space(Space); - - for (unsigned i = 0; i < OldDimensions; i++) { - isl_constraint *c = isl_equality_alloc(isl_local_space_copy(LocalSpace)); - isl_constraint_set_coefficient_si(c, isl_dim_in, i, 1); - isl_constraint_set_coefficient_si(c, isl_dim_out, i, -1); - ChangeScattering = isl_basic_map_add_constraint(ChangeScattering, c); - } + Map = isl_map_universe(Space); - for (unsigned i = OldDimensions; i < NewDimensions; i++) { - isl_constraint *c = isl_equality_alloc(isl_local_space_copy(LocalSpace)); - isl_constraint_set_coefficient_si(c, isl_dim_out, i, 1); - ChangeScattering = isl_basic_map_add_constraint(ChangeScattering, c); - } + for (unsigned i = 0; i < OldDimensions; i++) + Map = isl_map_equate(Map, isl_dim_in, i, isl_dim_out, i); + + for (unsigned i = OldDimensions; i < NewDimensions; i++) + Map = isl_map_fix_si(Map, isl_dim_out, i, 0); - isl_map *ChangeScatteringMap = isl_map_from_basic_map(ChangeScattering); - ChangeScatteringMap = isl_map_align_params(ChangeScatteringMap, - S.getParamSpace()); - isl_map *NewScattering = isl_map_apply_range(Stmt->getScattering(), - ChangeScatteringMap); - Stmt->setScattering(NewScattering); - isl_local_space_free(LocalSpace); + Map = isl_map_align_params(Map, S.getParamSpace()); + New = isl_map_apply_range(Stmt->getScattering(), Map); + Stmt->setScattering(New); } } |