llvm-project/polly/lib
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
..
Analysis ScopInfo: Make clear that no double-free problem exists 2016-09-08 14:08:07 +00:00
CodeGen IslNodeBuilder: Add missing __isl_take annotations 2016-09-08 13:48:55 +00:00
Exchange Drop '@brief' from doxygen comments 2016-09-02 06:33:33 +00:00
External Disable MSVC warnings on ISL. 2016-09-07 14:11:20 +00:00
JSON Fix spacing around variable initializations and for-loops. NFC. 2016-08-09 17:49:24 +00:00
Support Add -polly-flatten-schedule pass. 2016-09-08 15:02:36 +00:00
Transform Add -polly-flatten-schedule pass. 2016-09-08 15:02:36 +00:00
CMakeLists.txt Add -polly-flatten-schedule pass. 2016-09-08 15:02:36 +00:00
Polly.cpp Drop '@brief' from doxygen comments 2016-09-02 06:33:33 +00:00