llvm-project/polly/www
Tobias Grosser 234a48270e AST Generation Paper published in TOPLAS
The July issue of TOPLAS contains a 50 page discussion of the AST generation
techniques used in Polly. This discussion gives not only an in-depth
description of how we (re)generate an imperative AST from our polyhedral based
mathematical program description, but also gives interesting insights about:

- Schedule trees: A tree-based mathematical program description that enables us
to perform loop transformations on an abstract level, while issues like the
generation of the correct loop structure and loop bounds will be taken care of
by our AST generator.

- Polyhedral unrolling: We discuss techniques that allow the unrolling of
non-trivial loops in the context of parameteric loop bounds, complex tile
shapes and conditionally executed statements. Such unrolling support enables
the generation of predicated code e.g. in the context of GPGPU computing.

- Isolation for full/partial tile separation: We discuss native support for
handling full/partial tile separation and -- in general -- native support for
isolation of boundary cases to enable smooth code generation for core
computations.

- AST generation with modulo constraints: We discuss how modulo mappings are
lowered to efficient C/LLVM code.

- User-defined constraint sets for run-time checks We discuss how arbitrary
sets of constraints can be used to automatically create run-time checks that
ensure a set of constrainst actually hold. This feature is very useful to
verify at run-time various assumptions that have been taken program
optimization.

Polyhedral AST generation is more than scanning polyhedra
Tobias Grosser, Sven Verdoolaege, Albert Cohen
ACM Transations on Programming Languages and Systems (TOPLAS), 37(4), July 2015

llvm-svn: 245157
2015-08-15 09:34:33 +00:00
..
documentation Rename 'scattering' to 'schedule' 2015-04-21 11:37:25 +00:00
experiments/matmul Rename 'scattering' to 'schedule' 2015-04-21 11:37:25 +00:00
images www: Add nice header 2013-12-19 22:50:10 +00:00
publications www: Add kernelgen publications 2013-01-18 00:26:39 +00:00
video-js Added arcanist linters and cleaned errors and warnings 2014-08-18 00:40:13 +00:00
.htaccess
bugs.html www: No need to mention Polly in each subtitle 2013-12-20 00:53:01 +00:00
changelog.html Mark a couple of items as completed 2015-07-14 10:52:58 +00:00
content.css www: Make sure the main content pane does not overlap with the menu 2015-01-07 21:21:55 +00:00
contributors.html Add myself to the contributors of Polly 2015-02-25 21:26:03 +00:00
documentation.html www: Do not use a fixed with, but use max-width 2013-12-20 09:24:34 +00:00
example_load_Polly_into_clang.html [doc] Rename -polly-detect-only= to -polly-only-func= 2015-06-03 15:45:19 +00:00
example_load_Polly_into_dragonegg.html www: Add nice header 2013-12-19 22:50:10 +00:00
example_manual_matmul.html Rename 'scattering' to 'schedule' 2015-04-21 11:37:25 +00:00
examples.html www: Merge Examples with Documentation section 2012-03-08 11:37:39 +00:00
favicon.ico www: Add favicon 2013-12-19 22:59:47 +00:00
get_started.html www: update installation instructions to not include gmp/isl 2015-02-15 11:19:24 +00:00
index.html AST Generation Paper published in TOPLAS 2015-08-15 09:34:33 +00:00
menu.css [www] Update formatting of news feed 2014-09-22 07:37:12 +00:00
menu.html.incl Update links to lists.llvm.org. 2015-08-05 04:19:04 +00:00
performance.html www: No need to mention Polly in each subtitle 2013-12-20 00:53:01 +00:00
phonecall.html
polly.sh Drop ISL_INSTALL path 2015-04-10 15:41:14 +00:00
publications.html AST Generation Paper published in TOPLAS 2015-08-15 09:34:33 +00:00
todo.html Update links to lists.llvm.org. 2015-08-05 04:19:04 +00:00