Presentation
High Level Compiler Transformations: Brief History and Applications (2024 ACM/IEEE-CS Ken Kennedy Award presentation)
DescriptionHigh-level compiler transformations were developed soon after the first compilers. They are used to manipulate compound statements such as loops and if statements in order to vectorize, parallelize, and tile them to benefit from parallelism and enhance locality. Since high-level compiler transformations were at the core of much of Ken Kennedy’s work and have also been the main area of interest of the speaker, this is the natural topic for this talk.
The first part of the talk will contain a brief history of research in high-level compiler transformations. The results obtained by Ken Kennedy and numerous other researchers have been quite influential, to the point of being ubiquitous in today’s compilers and providing a powerful algebra of program transformations. Despite the important accomplishments, there is still much room for improvement, especially in the area of methodologies for the implementation and application of compiler transformations.
The second part will focus on compiler instability, which is a manifestation of the lack of a good methodology for compiler implementation and for deciding when to apply each program transformation. Given different versions of the same program which are obtained from each other by automatic transformations, a compiler is said to be instable when the object codes generated for these versions have different performances. Instability makes compilers weak optimization tools.
A tool, called Locus, will be described in the final part of the presentation. Locus contains a language to concisely describe a collection of transformations and facilitate the use of search engines. Locus can be used to convert programs into autotuning systems which by exploring the space of possible versions contribute to attenuate the impact of instability.
The first part of the talk will contain a brief history of research in high-level compiler transformations. The results obtained by Ken Kennedy and numerous other researchers have been quite influential, to the point of being ubiquitous in today’s compilers and providing a powerful algebra of program transformations. Despite the important accomplishments, there is still much room for improvement, especially in the area of methodologies for the implementation and application of compiler transformations.
The second part will focus on compiler instability, which is a manifestation of the lack of a good methodology for compiler implementation and for deciding when to apply each program transformation. Given different versions of the same program which are obtained from each other by automatic transformations, a compiler is said to be instable when the object codes generated for these versions have different performances. Instability makes compilers weak optimization tools.
A tool, called Locus, will be described in the final part of the presentation. Locus contains a language to concisely describe a collection of transformations and facilitate the use of search engines. Locus can be used to convert programs into autotuning systems which by exploring the space of possible versions contribute to attenuate the impact of instability.
Event Type
Awards and Award Talks
TimeWednesday, 20 November 20248:30am - 9am EST
LocationExhibit Hall A3
TP

