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

by   Kyriakos Georgiou, et al.

This paper presents the interesting observation that by performing fewer of the optimizations available in a standard compiler optimization level such as -O2, while preserving their original ordering, significant savings can be achieved in both execution time and energy consumption. This observation has been validated on two embedded processors, namely the ARM Cortex-M0 and the ARM Cortex-M3, using two different versions of the LLVM compilation framework; v3.8 and v5.0. Experimental evaluation with 71 embedded benchmarks demonstrated performance gains for at least half of the benchmarks for both processors. An average execution time reduction of 2.4 benchmarks for the Cortex-M0 and Cortex-M3 processors, respectively, with execution time improvements ranging from 1 that can be achieved are in the same range as what can be achieved by the state-of-the-art compilation approaches that use iterative compilation or machine learning to select flags or to determine phase orderings that result in more efficient code. In contrast to these time consuming and expensive to apply techniques, our approach only needs to test a limited number of optimization configurations, less than 64, to obtain similar or even better savings. Furthermore, our approach can support multi-criteria optimization as it targets execution time, energy consumption and code size at the same time.


page 1

page 2

page 3

page 4


EnergyAnalyzer: Using Static WCET Analysis Techniques to Estimate the Energy Consumption of Embedded Applications

This paper presents EnergyAnalyzer, a code-level static analysis tool fo...

POSET-RL: Phase ordering for Optimizing Size and Execution Time using Reinforcement Learning

The ever increasing memory requirements of several applications has led ...

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...

Compiler Phase Ordering as an Orthogonal Approach for Reducing Energy Consumption

Compiler writers typically focus primarily on the performance of the gen...

CHERI Performance Enhancement for a Bytecode Interpreter

During our port of the MicroPython bytecode interpreter to the CHERI-bas...

Lost in translation: Exposing hidden compiler optimization opportunities

To increase productivity, today's compilers offer a two-fold abstraction...

Please sign up or login with your details

Forgot password? Click here to reset