llvm-project/polly/lib/Support
Michael Kruse 7886bd7ca5 Add -polly-flatten-schedule pass.
The -polly-flatten-schedule pass reduces the number of scattering
dimensions in its isl_union_map form to make them easier to understand.
It is not meant to be used in production, only for debugging and
regression tests.

To illustrate, how it can make sets simpler, here is a lifetime set
used computed by the porposed DeLICM pass without flattening:

    { Stmt_reduction_for[0, 4] -> [0, 2, o2, o3] : o2 < 0;
      Stmt_reduction_for[0, 4] -> [0, 1, o2, o3] : o2 >= 5;
      Stmt_reduction_for[0, 4] -> [0, 1, 4, o3] : o3 > 0;
      Stmt_reduction_for[0, i1] -> [0, 1, i1, 1] : 0 <= i1 <= 3;
      Stmt_reduction_for[0, 4] -> [0, 2, 0, o3] : o3 <= 0 }

And here the same lifetime for a semantically identical one-dimensional
schedule:

    { Stmt_reduction_for[0, i1] -> [2 + 3i1] : 0 <= i1 <= 4 }

Differential Revision: https://reviews.llvm.org/D24310

llvm-svn: 280948
2016-09-08 15:02:36 +00:00
..
GICHelper.cpp Add -polly-flatten-schedule pass. 2016-09-08 15:02:36 +00:00
Mainpage.h docs: Add doxygen mainpage 2016-03-07 21:17:48 +00:00
RegisterPasses.cpp Add -polly-flatten-schedule pass. 2016-09-08 15:02:36 +00:00
SCEVAffinator.cpp SCEVAffinator: Add missing __isl_take annotations 2016-09-08 14:31:31 +00:00
SCEVValidator.cpp Drop '@brief' from doxygen comments 2016-09-02 06:33:33 +00:00
ScopHelper.cpp Move getIndexExpressionsFromGEP() to ScopHelper. NFC. 2016-06-28 01:37:13 +00:00
ScopLocation.cpp clang-tidy: Add llvm namespace comments 2016-06-23 22:17:27 +00:00