Lost in translation: Exposing hidden compiler optimization opportunities
arXiv:1903.11397 · doi:10.1093/comjnl/bxaa103
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 cross-architecture 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.
arXiv comment31 pages, 7 figures, 2 table. arXiv admin note: text overlap with arXiv:1802.09845
References in corpus (6)
- A Survey on Compiler Autotuning using Machine Learning
- The IoT energy challenge: A software perspective
- Identifying Compiler Options to Minimise Energy Consumption for Embedded Platforms
- ENTRA: Whole-Systems Energy Transparency
- Less is More: Exploiting the Standard Compiler Optimization Levels for Better Performance and Energy Consumption
- A Collective Knowledge workflow for collaborative research into multi-objective autotuning and machine learning techniques