🤖 AI Summary
This study addresses the problem of memory allocation for constant-bounded programs by proposing a polynomial-time, near-optimal stack allocation strategy based on control flow tree scanning and defragmentation. The approach models control flow as a tree structure to enable compact memory layout and is systematically validated using eBPF overflow optimizations alongside MLIR’s structured control flow dialect. Experimental evaluations on real-world eBPF workloads demonstrate that this strategy reduces stack space consumption by over 90% compared to naive methods, achieving significantly lower memory footprints. These results confirm the effectiveness of the proposed technique in overcoming critical memory efficiency bottlenecks within resource-constrained execution environments.
📝 Abstract
This work studies memory allocation for constant-bounded programs, whose execution length is syntactically limited for all inputs. Examples of such programs include verified kernel extensions, cryptographic routines, and fixed-shape machine-learning models. We show that constant boundedness enables a tight, polynomial-time approximation of optimal stack usage by viewing control flow as a tree and applying a tree-scan allocation strategy augmented with memory defragmentation. Our approach guarantees memory usage bounded by the maximum live memory plus, at most, the size of the largest buffer, and is optimal when in-place swapping is permitted. We deploy the proposed allocator in two scenarios. First, in an Elixir-to-eBPF compiler, as a spiller that optimizes stack space. Second, as a static heap allocator for bounded MLIR programs using the Structured Control-Flow dialect. Results demonstrate stack reductions exceeding 90% on real eBPF workloads and show that, even under aggressive code expansion, defragmentation is rarely required and memory usage remains a small fraction of that required by naive allocation strategies.