Developer and user-transparent compiler optimization for interactive applications
Paschalis Mpeis, Pavlos Petoumenos, Kim M. Hazelwood, Hugh Leather
Abstract
Traditional offline optimization frameworks rely on representative hardware, software, and inputs to compare different optimization decisions on. With application-specific optimization for mobile systems though, the idea of a representative test bench is unrealistic while creating offline inputs is non-trivial. Online approaches partially overcome these problems but they might expose users to suboptimal or even erroneously optimized code. As a result, our mobile code is poorly optimized and this results in wasted performance, wasted energy, and user frustration. In this paper, we introduce a novel compiler optimization approach designed for mobile applications. It requires no developer effort, it tunes applications for the user’s device and usage patterns, and has no negative impact on the user experience. It is based on a lightweight capture and replay mechanism. In its online stage, it captures the state accessed by any targeted code region. By re-purposing existing OS capabilities, it keeps the overhead low. In its offline stage, it replays the code region but under different optimization decisions to enable sound comparisons of different optimizations under realistic conditions. Coupled with a search heuristic for the compiler optimization space, it allows us to discover optimization decisions that improve performance without testing these decisions directly on the user. We implemented a prototype system in Android based on LLVM combined with a genetic search engine. We evaluated it on both benchmarks and real Android applications. Online captures are infrequent and each one introduces an overhead of less than 15ms on average. For this negligible effect on user experience, we achieve speedups of 44% on average over the Android compiler and 35% over LLVM -O3.
Ask about this paper
Ask your agent about it.
Lune has read the top-tier papers around this one, so every answer names the papers it rests on.
Cited by top-tier papers1
Ask how each one uses itRelated papers
- JavART: A Lightweight Rule-Based JIT Compiler using Translation Rules Extracted from a Learning ApproachHanzhang Wang, Wei Peng, Wenwen Wang, Yunping Lu et al.OOPSLA 2025
- CacheSifter: Sifting Cache Files for Boosted Mobile Performance and LifetimeYu Liang, Riwei Pan, Tianyu Ren, Yufei Cui et al.FAST 2022 · 24 citations
- Camel: Smart, Adaptive Energy Optimization for Mobile Web InteractionsJie Ren, Lu Yuan, Petteri Nurmi, Xiaoming Wang et al.INFOCOM 2020 · 18 citations
- Seeking Evidence of Further Optimization: Detecting Missed Optimizations through Compiler’s Native AnalysesYi Zhang, Yu Wang, Ke Wang, Linzhang WangOOPSLA 2026
- Modern Llvm-Based Compiler Autotuning for Wcet OptimizationGabriele Magnani, Davide Baroffio, Federico Reghenzani, Giovanni Agosta et al.RTSS 2025 · 1 citation
