diff options
author | Mircea Namolaru <mircea.namolaru@inria.fr> | 2014-11-17 23:59:07 +0100 |
---|---|---|
committer | Mircea Namolaru <mircea@gcc.gnu.org> | 2014-11-17 22:59:07 +0000 |
commit | 46cdd0c8cd8cb595fd3bac820d05e06072e858ed (patch) | |
tree | f9c6e2277ba485f304e2cbb5382a7d770ed56beb /gcc/graphite-optimize-isl.c | |
parent | d6f1bcb23dc5edba2f4035829a9055645d4c21a0 (diff) | |
download | gcc-46cdd0c8cd8cb595fd3bac820d05e06072e858ed.zip gcc-46cdd0c8cd8cb595fd3bac820d05e06072e858ed.tar.gz gcc-46cdd0c8cd8cb595fd3bac820d05e06072e858ed.tar.bz2 |
Support for unroll and jam optimization.
From-SVN: r217682
Diffstat (limited to 'gcc/graphite-optimize-isl.c')
-rw-r--r-- | gcc/graphite-optimize-isl.c | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/gcc/graphite-optimize-isl.c b/gcc/graphite-optimize-isl.c index cbab820..195101a 100644 --- a/gcc/graphite-optimize-isl.c +++ b/gcc/graphite-optimize-isl.c @@ -320,7 +320,7 @@ getPrevectorMap (isl_ctx *ctx, int DimToVectorize, ip >= 0 The image of this map is the separation class. The range of this map includes - all the i that are multiple of 4 in the domain beside the greater one. + all the i multiple of 4 in the domain such as i + 3 is in the domain too. */ static isl_map * @@ -486,20 +486,25 @@ getScheduleForBandList (isl_band_list *BandList, isl_union_map **map_sepcl) } } } - Schedule = isl_union_map_union (Schedule, PartialSchedule); + Schedule = isl_union_map_union (Schedule, + isl_union_map_copy(PartialSchedule)); isl_band_free (Band); isl_space_free (Space); if (!flag_loop_unroll_jam) - continue; + { + isl_union_map_free (PartialSchedule); + continue; + } if (PartialSchedule_f) - *map_sepcl = isl_union_map_union (*map_sepcl, - PartialSchedule_f); + { + *map_sepcl = isl_union_map_union (*map_sepcl, PartialSchedule_f); + isl_union_map_free (PartialSchedule); + } else - *map_sepcl = isl_union_map_union (*map_sepcl, - isl_union_map_copy (PartialSchedule)); + *map_sepcl = isl_union_map_union (*map_sepcl, PartialSchedule); } return Schedule; |