Rewrite getPrevectorMap using schedule trees operations
authorTobias Grosser <tobias@grosser.es>
Tue, 28 Jul 2015 18:03:36 +0000 (18:03 +0000)
committerTobias Grosser <tobias@grosser.es>
Tue, 28 Jul 2015 18:03:36 +0000 (18:03 +0000)
commitb241d928bd884d418445c6c763c4df9ffaa9303f
tree175917bf8e9200692ac8702f4de1cbcd7d4589b9
parent305e8f6312f9d461bb9fd1dd73a894d899b77fcc
Rewrite getPrevectorMap using schedule trees operations

Schedule trees are a lot easier to work with, for both humans and machines. For
humans the more structured schedule representation is easier to reason about.
Together with the more abstract isl programming interface this can result in a
lot cleaner code (see this changeset). For machines, the structured schedule and
the fact that we now use explicit piecewise affine expressions instead of
integer maps makes it easier to generate code from this schedule tree. As a
result, we can already see a slight compile-time improvement -- for 3mm from
0m0.593s to 0m0.551s seconds (-7 %). More importantly, future optimizations such
as full-partial tile separation will most likely result in more streamlined code
to be generated.

Contributed-by: Roman Gareev <gareevroman@gmail.com>
llvm-svn: 243458
polly/lib/Transform/ScheduleOptimizer.cpp
polly/test/ScheduleOptimizer/prevectorization-without-tiling.ll
polly/test/ScheduleOptimizer/prevectorization.ll