arXiv · 2610.02624
Bao: Automatic Region Placement and Memory Allocation for Intermittent Computing
Abstract
Intermittent computing enables batteryless embedded devices to operate in harsh environment, but frequent power failures interrupt program execution and require careful management of state across power cycles. The core challenge is to guarantee both memory consistency and forward progress while minimizing the energy overhead of checkpointing. Recent compile-time approaches identify regions that fit in the energy buffer. At runtime, the device waits and recharges between the regions. However, they still rely on greedy or path-local heuristics that commit to local decisions and can miss globally lower-overhead boundary placements. To address this limitation, we present Bao, a system that jointly finds optimal energy-aware region formation and memory allocation decisions with formal correctness guarantees, by formulating it as a mixed-integer linear program. We prove that any feasible solution guarantees energy safety and implement our approach in LLVM. Our evaluation on 13 benchmarks across 3 capacitor sizes shows that Bao outperforms existing baselines, achieving 10% faster execution and 52% fewer region boundary hits on average compared to the best baseline.
Explore related subjects
Keep this discovery
Explore connections, maps & timelines
Byeongjee Kang, Jan Hoffmann, Limin Jia, Brandon Lucia, Feras A. Saad. 2026-10-02. Bao: Automatic Region Placement and Memory Allocation for Intermittent Computing. https://doi.org/10.1145/3845814.3850041
Cite the original work for its findings. Save a collection to share your selection of sources.