[llvm-dev] Meeting notes Polly BoF

Tobias Grosser via llvm-dev llvm-dev at lists.llvm.org
Mon Jan 15 12:13:48 PST 2018


Dear all,

please find below the meeting notes form the Polly BoF (as taken by Michael Kruse). Comments and feedback is very much appreciated.

Best,
Tobias

Status update

 * Polly late in pipeline
 * Uses TargetTransformInfo
 * Part of the release process
 * isl: C++ interface, MIT licenced, improved scheduler
 * Polly integration plan; result: isl and Polly available in each build
 * Better integration into LLVM

Discussion

 * Discussion topics?
 * Move Polly into LLVM:
   * See the proposal at: (_http://lists.llvm.org/pipermail/llvm-dev/2017-September/117698.html_)

 * Future ideas:
   * Do loop transformations in one phase, collect assumptions/safety conditions
     * Tobias: Generalize assumption collection -> framework?
     * Speculative optimizations without materializing them?
   * Can the compiler/analysis recommend to the user to add pragmas?
     * Hal: Great set of features
   * There are other possibilities for loop optimizations than Polly
     * Tobias: It is possible to write complex loop transformations without Polly, but writing complex loop transformations can be difficult
     * Tobias: Polyhedral optimization is not a totally stupid option ;-)
     * Tobias: Maybe different loop optimization phases, eg different before inliner
   * Tobias: More loop benchmarks in test-suite
   * Tobias: Explore different options, eg. mixed-lp solvers
   * Why polyhedral model to do basic loop transformations?
     * Hal: Helps deriving safety conditions
     * Experience: People like automatically derived safety conditions, even if transformation is not performed automatically
   * Hal: User-directed loop optimizations (#pragmas), less analysis needed
   * What's the next step?
     * Tobias: Figure out what to do with isl; which subdirectory
     * Adjust the LLVM pass pipeline (eg. partial unrolling after inlining, fix bugs)
     * Discussions about how to rearrange LLVM (e.g. TargetTransformInfo for caches, polyhedral value analysis)
   * With SVN move, how much bigger does the repository become?
     * Tobias: In conclusion, not a big difference (guess: 5-10% increase)
   * Current performance of Polly on SPEC benchmarks, compile time
     * clang bootstrap regression 6%
     * aosp buildbot
     * 3 minutes per program, to find compile time issues
     * some regression 20%-30%
     * ScopDetection guards polyhedral modeling
     * Often compile time regression because of loop versioning
     * Some benchmarks 80%-90% speedup
   * Is isl evolving in LLVM tree, and how often?
     * Tobias: Need ability to adapt changes quickly (bugs...)
   * What could be the first upstreamed patches.
     * Tobias: SVN move of Polly, iterative integration: isl, polyhedral value analysis, Parts of Polly as separate low-level analysis.
   * isl integration is a requirement?
     * Yes; isl as an independent component
     * llvm integration into llvm source tree preferable over external library; use latest version and possibly make own changes (good idea?)
   * Is there a use case of isl outside Polly?
     * Johannes: yes: polyhedral value analysis
   * Is Polly history preserved?
     * Yes
   * Zino: With wrapper it is easier put isl into LLVM
     * Tobias: More control over functionality, C++ class hierarchy
     * Tobias: is currently update when convenient
 * Do we want to have polyhedral stuff in LLVM?
 * Do we want to have a single community (stop polly-dev)?
 * Practical integration of Polly and (polyhedral tooling in general)?
 * Integration with LLVM / upsteaming to mainline LLVM?

Best,
Tobias


More information about the llvm-dev mailing list