Aggressive Aggregation: a New Paradigm for Program Optimization

12/24/2019
by   Frederik Gossen, et al.
0

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 our technique supports loop unrolling as a first class optimization technique and is tailored to optimally aggregate large program fragments, especially those resulting from multiple loop unrollings. For the Fibonacci program, this results in a performance improvement beyond an order of magnitude.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
05/20/2019

Partial Redundancy Elimination using Lazy Code Motion

Partial Redundancy Elimination (PRE) is a compiler optimization that eli...
research
04/11/2018

Permission Inference for Array Programs

Information about the memory locations accessed by a program is, for ins...
research
11/21/2020

lospre in linear time

Lifetime-optimal speculative partial redundancy elimination (lospre) is ...
research
02/21/2022

Optimizing Recursive Queries with Program Synthesis

Most work on query optimization has concentrated on loop-free queries. H...
research
09/05/2020

Computer Program Decomposition and Dynamic/Behavioral Modeling

Decomposition, statically dividing a program into multiple units, is a c...
research
02/09/2018

Implicit complexity via structure transformation

Implicit computational complexity, which aims at characterizing complexi...
research
04/23/2018

Shared aggregate sets in answer set programming

Aggregates are among the most frequently used linguistic extensions of a...

Please sign up or login with your details

Forgot password? Click here to reset