[Polly] Implement user-directed loop distribution/fission.
authorMichael Kruse <llvm-project@meinersbur.de>
Wed, 22 Sep 2021 22:27:16 +0000 (17:27 -0500)
committerMichael Kruse <llvm-project@meinersbur.de>
Fri, 24 Sep 2021 02:11:01 +0000 (21:11 -0500)
commite470f9268a448fedea25289ec343f82ff52ccc36
treedaf565485dbeccf8019d07999d9dc0ca4d53be45
parent83f3c615dde3fce5c0560c19316b08c1e6aa8c27
[Polly] Implement user-directed loop distribution/fission.

This is a simple version without the possibility to define distribute
points or followup-transformations. However, it is the first
transformation that has to check whether the transformation is correct.

It interprets the same metadata as the LoopDistribute pass.

Re-apply after revert in c7bcd72a38bcf99e03e4651ed5204d1a1f2bf695 with
fix: Take isBand out of #ifndef NDEBUG since it now is used
unconditionally.
polly/include/polly/DependenceInfo.h
polly/include/polly/ManualOptimizer.h
polly/include/polly/ScheduleTreeTransform.h
polly/lib/Analysis/DependenceInfo.cpp
polly/lib/Transform/ManualOptimizer.cpp
polly/lib/Transform/ScheduleOptimizer.cpp
polly/lib/Transform/ScheduleTreeTransform.cpp
polly/test/ScheduleOptimizer/ManualOptimization/distribute_heuristic.ll [new file with mode: 0644]
polly/test/ScheduleOptimizer/ManualOptimization/distribute_illegal_looploc.ll [new file with mode: 0644]
polly/test/ScheduleOptimizer/ManualOptimization/distribute_illegal_pragmaloc.ll [new file with mode: 0644]