Lost in translation: Exposing hidden compiler optimization opportunities

Kyriakos Georgiou*, Zbigniew Chamski, Andres Amaya Garcia, David May, Kerstin I Eder

*Corresponding author for this work

Research output: Contribution to journalArticle (Academic Journal)peer-review

Abstract

Existing iterative compilation and machine-learning-based optimization techniques have been proven very successful in achieving better optimizations than the standard optimization levels of a compiler. However, they were not engineered to support the tuning of a compiler’s optimizer as part of the compiler’s daily development cycle. In this paper, we first establish the required properties which a technique must exhibit to enable such tuning. We then introduce an enhancement to the classic nightly routine testing of compilers which exhibits all the required properties, and thus, is capable of driving the improvement and tuning of the compiler’s common optimizer. This is achieved by leveraging resource usage and compilation information collected while systematically exploiting prefixes of the transformations applied at standard optimization levels. Experimental evaluation using the LLVM v6.0.1 compiler demonstrated that the new approach was able to reveal hidden crossarchitecture and architecture-dependent potential optimizations on two popular processors: the Intel i5-6300U and the Arm Cortex-A53-based Broadcom BCM2837 used in the Raspberry Pi 3B+. As a case study, we demonstrate how the insights from our approach enabled us to identify and remove a significant shortcoming of the CFG simplification pass of the LLVM v6.0.1 compiler.
Original languageEnglish
Article numberbxaa103
Number of pages18
JournalThe Computer Journal
Volume0
DOIs
Publication statusPublished - 7 Aug 2020

Fingerprint Dive into the research topics of 'Lost in translation: Exposing hidden compiler optimization opportunities'. Together they form a unique fingerprint.

Cite this