summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Utils/BypassSlowDivision.cpp
diff options
context:
space:
mode:
authorMichael Kruse <llvm@meinersbur.de>2016-09-08 15:02:36 +0000
committerMichael Kruse <llvm@meinersbur.de>2016-09-08 15:02:36 +0000
commit7886bd7ca5912757f3cb67b55c48939198988f7c (patch)
tree999341324f73479f023b301e7acc33f5af70b59e /llvm/lib/Transforms/Utils/BypassSlowDivision.cpp
parent868fc9279ef57ce4cc69feab5f1284630f16210e (diff)
downloadbcm5719-llvm-7886bd7ca5912757f3cb67b55c48939198988f7c.tar.gz
bcm5719-llvm-7886bd7ca5912757f3cb67b55c48939198988f7c.zip
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
Diffstat (limited to 'llvm/lib/Transforms/Utils/BypassSlowDivision.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud