RollBin: Reducing code-size via loop rerolling at binary levelVirtual
Tue 14 Jun 2022 22:30 - 22:50 at Rousseau Center - Optimization for Compilers and Languages Chair(s): Yousun Ko
Code size is an increasing concern on resource constrained systems, ranging from embedded devices to cloud servers. To address the issue, lowering memory occupancy has become a priority in developing and deploying applications, and accordingly compiler-based optimizations have been proposed to reduce program footprint. However, prior arts are generally dealing with source codes or intermediate representations, and thus are very limited in scope in real scenarios where only binary files are commonly provided. To fill the gap, this paper presents a novel code-size optimization RollBin to reroll loops at binary level. RollBin first locates the unrolled loops in binary files, and then probes to decide the unrolling factor by identifying regular memory address patterns. To reconstruct the iterations, we propose a customized data dependency analysis that tackles the challenges brought by shuffled instructions and loop-carry dependencies. Next, the recognized iterations are rolled up through instruction removal and update, which are generally reverting the normal unrolling procedure. The evaluations on standard SPEC2006/2017 and MiBench demonstrate that RollBin effectively shrinks code size by 1.7% and 2.2% on average (up to 7.8%), which respectively outperforms the state-of-the-arts by 31% and 38%. In addition, the use cases of representative realistic applications manifest that RollBin can be applicable in practices.
Tue 14 JunDisplayed time zone: Pacific Time (US & Canada) change
10:30 - 12:00 | Optimization for Compilers and LanguagesLCTES at Rousseau Center +12h Chair(s): Yousun Ko Yonsei University | ||
10:30 20mTalk | RollBin: Reducing code-size via loop rerolling at binary levelVirtual LCTES Tianao Ge Sun Yat-sen University, Zewei Mo Sun Yat-sen University, Kan Wu Sun Yat-sen University, Xianwei Zhang Sun Yat-sen University, Yutong Lu Sun Yat-sen University | ||
10:50 20mTalk | Tighten Rust's Belt: Shrinking Embedded Rust Binaries LCTES Hudson Ayers Stanford University, Google, Evan Laufer Stanford University, Paul Mure Stanford University, Jaehyeon Park Stanford University, Eduardo Rodelo Stanford University, Thea Rossman Stanford University, Andrey Pronin Google, Philip Levis Stanford University, Johnathan Van Why Google | ||
11:10 20mTalk | JAX Based Parallel Inference for Reactive Probabilistic Programming LCTES | ||
11:30 20mTalk | Implicit State MachinesVirtual LCTES | ||
11:50 5mTalk | (WIP) Scalable Size Inliner for Mobile Applications LCTES |
22:30 - 00:00 | Optimization for Compilers and LanguagesLCTES at Rousseau Center Chair(s): Yousun Ko Yonsei University | ||
22:30 20mTalk | RollBin: Reducing code-size via loop rerolling at binary levelVirtual LCTES Tianao Ge Sun Yat-sen University, Zewei Mo Sun Yat-sen University, Kan Wu Sun Yat-sen University, Xianwei Zhang Sun Yat-sen University, Yutong Lu Sun Yat-sen University | ||
22:50 20mTalk | Tighten Rust's Belt: Shrinking Embedded Rust Binaries LCTES Hudson Ayers Stanford University, Google, Evan Laufer Stanford University, Paul Mure Stanford University, Jaehyeon Park Stanford University, Eduardo Rodelo Stanford University, Thea Rossman Stanford University, Andrey Pronin Google, Philip Levis Stanford University, Johnathan Van Why Google | ||
23:10 20mTalk | JAX Based Parallel Inference for Reactive Probabilistic Programming LCTES | ||
23:30 20mTalk | Implicit State MachinesVirtual LCTES | ||
23:50 5mTalk | (WIP) Scalable Size Inliner for Mobile Applications LCTES |