Loop quasi-invariant chunk motion by peeling with statement composition

Jean-Yves Moyen, Thomas Rubiano, Thomas Seiller

56 Downloads (Pure)

Abstract

Several techniques for analysis and transformations are used in compilers. Among them, the peeling of loops for hoisting quasi-invariants can be used to optimize generated code, or simply ease developers' lives. In this paper, we introduce a new concept of dependency analysis borrowed from the field of Implicit Computational Complexity (ICC), allowing to work with composed statements called "Chunks" to detect more quasi-invariants. Based on an optimization idea given on a WHILE language, we provide a transformation method - reusing ICC concepts and techniques [9, 10] -To compilers. This new analysis computes an invariance degree for each statement or chunks of statements by building a new kind of dependency graph, finds the "maximum" or "worst" dependency graph for loops, and recognizes if an entire block is Quasi-Invariant or not. This block could be an inner loop, and in that case the computational complexity of the overall program can be decreased. We already implemented a proof of concept on a toy C parser1 analysing and transforming the AST representation. In this paper, we introduce the theory around this concept and present a prototype analysis pass implemented on LLVM. In a very near future, we will implement the corresponding transformation and provide benchmarks comparisons.

Original languageEnglish
Title of host publicationProceedings 8th Workshop on Developments in Implicit Computational Complexity and 5th Workshop on Foundational and Practical Aspects of Resource Analysis
EditorsGuillaume Bonfante, Georg Moser
Number of pages13
PublisherOpen Publishing Association
Publication date18 Apr 2017
Pages47-59
DOIs
Publication statusPublished - 18 Apr 2017
Event8th Workshop on Developments in Implicit Computational Complexity and 5th Workshop on Foundational and Practical Aspects of Resource Analysis - Uppsala, Sweden
Duration: 22 Apr 201723 Apr 2017

Workshop

Workshop8th Workshop on Developments in Implicit Computational Complexity and 5th Workshop on Foundational and Practical Aspects of Resource Analysis
Country/TerritorySweden
CityUppsala
Period22/04/201723/04/2017
SeriesElectronic Proceedings in Theoretical Computer Science
Volume248
ISSN2075-2180

Fingerprint

Dive into the research topics of 'Loop quasi-invariant chunk motion by peeling with statement composition'. Together they form a unique fingerprint.

Cite this