Lost in translation: Exposing hidden compiler optimization opportunities

03/25/2019
by   Kyriakos Georgiou, et al.
0

To increase productivity, today's compilers offer a two-fold abstraction: they hide hardware complexity from the software developer, and they support many architectures and programming languages. At the same time, due to fierce market competition, most processor vendors do not disclose many of their implementation details. These factors force software developers to treat both compilers and architectures as black boxes. In practice, this leads to a suboptimal compiler behavior where the maximum potential of improving an application's resource usage, such as execution time, is often not realized. This paper targets all three communities, compiler engineers, software developers and hardware architects, by exposing missed optimization opportunities. By exploiting the behavior of the standard optimization levels, such as the -O3, of the LLVM v6.0 compiler, we show how to reveal hidden cross-architecture and architecture-dependent potential optimizations on two popular processors: the Intel i5-6300U, widely used in portable PCs, and the ARM Cortex-A53-based Broadcom BCM2837 used in the Raspberry Pi 3B+. The classic nightly regression testing can then be extended to use the resource usage and compilation information collected while exploiting subsequences of the standard optimization levels. This provides a systematic means of detecting and tracking missed optimization opportunities. The enhanced nightly regression system is capable of driving the improvement and tuning of the compiler's common optimizer.

READ FULL TEXT
research
07/04/2019

Security Implications Of Compiler Optimizations On Cryptography -- A Review

When implementing secure software, developers must ensure certain requir...
research
02/25/2020

MLIR: A Compiler Infrastructure for the End of Moore's Law

This work presents MLIR, a novel approach to building reusable and exten...
research
02/27/2018

Less is More: Exploiting the Standard Compiler Optimization Levels for Better Performance and Energy Consumption

This paper presents the interesting observation that by performing fewer...
research
02/23/2017

Automatically Tuning the GCC Compiler to Optimize the Performance of Applications Running on Embedded Systems

This paper introduces a novel method for automatically tuning the select...
research
09/06/2018

Future Directions for Optimizing Compilers

As software becomes larger, programming languages become higher-level, a...
research
03/02/2022

Redefining The Query Optimization Process

Traditionally, query optimizers have been designed for computer systems ...
research
05/21/2018

The sufficiently smart compiler is a theorem prover

That the Haskell Compiler GHC is capable of proving non-trivial equaliti...

Please sign up or login with your details

Forgot password? Click here to reset