PLMar 10

Idempotent Slices with Applications to Code-Size Reduction

arXiv:2603.09726v12.9h-index: 12
Predicted impact top 82% in PL · last 90 daysOriginality Incremental advance
AI Analysis

This work addresses a problem in compiler optimization for reducing code size in programs, though it is incremental as it builds on prior informal notions.

The paper formalizes idempotent backward slices and presents a sound, efficient algorithm for extracting them from programs in Gated Static Single Assignment form, enabling a sparse code-size reduction optimization that achieves up to -7.24% reduction in specific benchmarks.

Given a value computed within a program, an idempotent backward slice with respect to this value is a maximal subprogram that computes it. An informal notion of an idempotent slice has previously been used by Guimaraes et al. to transform eager into strict evaluation in the LLVM intermediate representation. However, that algorithm is insufficient to be correctly applied to general control-flow graphs. This paper addresses these omissions by formalizing the notion of idempotent backward slices and presenting a sound and efficient algorithm for extracting them from programs in Gated Static Single Assignment (GSA) form. As an example of their practical use, the paper describes how identifying and extracting idempotent backward slices enables a sparse code-size reduction optimization; that is, one capable of merging non-contiguous sequences of instructions within the control-flow graph of a single function or across functions. Experiments with the LLVM test suite show that, in specific benchmarks, this new algorithm achieves code-size reductions up to -7.24% on programs highly optimized by the -Os sequence of passes from clang 17.

Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes