Abstract / Description of output
Increasing data movement costs motivate the integration of polyhedral loop optimizers in the standard flow (-O3) of production compilers. While polyhedral optimizers have been shown to be effective when applied as source-to-source transformation, the single static assignment form used in modern compiler mid-ends makes such optimizers less effective. Scalar dependencies (dependencies carried over a single memory location) are the main obstacle preventing effective optimization. We present DeLICM, a set of transformations which, backed by a polyhedral value analysis, eliminate problematic scalar dependences by 1) relocating scalar memory references to unused array locations and by 2) forwarding computations that otherwise cause scalar dependences. Our experiments show that DeLICM effectively eliminates dependencies introduced by compiler-internal canonicalization passes, human programmers, optimizing code generators, or inlining -- without the need for any additional memory allocation. As a result, polyhedral loop optimizations can be better integrated into compiler pass pipelines which is essential for metaprogramming optimization.
Original language | English |
---|---|
Title of host publication | Proc. of the 2018 International Symposium on Code Generation and Optimization |
Place of Publication | New York, NY, USA |
Publisher | ACM |
Pages | 241-253 |
Number of pages | 13 |
ISBN (Print) | 978-1-4503-5617-6 |
DOIs | |
Publication status | Published - 24 Feb 2018 |
Event | 2018 IEEE/ACM International Symposium on Code Generation and Optimization - Vienna, Austria Duration: 24 Feb 2018 → 28 Feb 2018 http://cgo.org/cgo2018/ |
Publication series
Name | CGO |
---|---|
Publisher | ACM |
Symposium
Symposium | 2018 IEEE/ACM International Symposium on Code Generation and Optimization |
---|---|
Abbreviated title | CGO 2018 |
Country/Territory | Austria |
City | Vienna |
Period | 24/02/18 → 28/02/18 |
Internet address |
Keywords / Materials (for Non-textual outputs)
- LLVM
- Polly
- Polyhedral Framework
- Scalar Dependence