Aggressive Aggregation: a New Paradigm for Program Optimization
Frederik Gossen, Marc Jasper, Alnis Murtovi, Bernhard Steffen

TL;DR
This paper introduces aggressive aggregation, a novel program optimization paradigm that decomposes code into optimal structures for enhanced optimization, significantly improving performance especially in loop-unrolled code.
Contribution
It presents a new decomposition-based optimization approach using Algebraic Decision Diagrams and Expression DAGs, enabling powerful optimizations like loop unrolling and redundancy elimination.
Findings
Achieved over an order of magnitude performance improvement on Fibonacci program
Supports loop unrolling as a first-class optimization technique
Effectively optimizes large program fragments from multiple loop unrollings
Abstract
In this paper, we propose a new paradigm for program optimization which is based on aggressive aggregation, i.e., on a partial evaluation-based decomposition of acyclic program fragments into a pair of computationally optimal structures: an Algebraic Decision Diagram (ADD) to capture conditional branching and a parallel assignment that refers to an Expression DAG (ED) which realizes redundancy-free computation. The point of this decomposition into, in fact, side-effect-free component structures allows for powerful optimization that semantically comprise effects traditionally aimed at by SSA form transformation, code specialization, common subexpression elimination, and (partial) redundancy elimination. We illustrate our approach along an optimization of the well-known iterative Fibonacci program, which, typically, is considered to lack any optimization potential. The point here is that…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsFormal Methods in Verification · Logic, programming, and type systems · Embedded Systems Design Techniques
