[PATCH] D24310: [Polly] Add -polly-flatten-schedule pass.

Michael Kruse via llvm-commits llvm-commits at lists.llvm.org
Wed Sep 7 13:00:40 PDT 2016


Meinersbur created this revision.
Meinersbur added reviewers: grosser, jdoerfert, etherzhhb, gareevroman.
Meinersbur added subscribers: pollydev, llvm-commits.
Meinersbur added a project: Polly.
Herald added a subscriber: beanz.

The -polly-flatten-schedule pass reduces the number of scattering dimensions in its isl_union_map form to make then 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 DeLICM 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 }```

https://reviews.llvm.org/D24310

Files:
  include/polly/FlattenAlgo.h
  include/polly/FlattenSchedule.h
  include/polly/LinkAllPasses.h
  include/polly/Support/GICHelper.h
  lib/CMakeLists.txt
  lib/Support/GICHelper.cpp
  lib/Support/RegisterPasses.cpp
  lib/Transform/FlattenAlgo.cpp
  lib/Transform/FlattenSchedule.cpp
  test/FlattenSchedule/gemm.ll
  test/update_check.py
  unittests/CMakeLists.txt
  unittests/Flatten/CMakeLists.txt
  unittests/Flatten/FlattenTest.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D24310.70587.patch
Type: text/x-patch
Size: 46807 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160907/2191ce16/attachment.bin>


More information about the llvm-commits mailing list