Technical Report Results

Technical Report TR582:
Combining Optimizations, Combining Theories

Todd L. Veldhuizen and Jeremy G. Siek
(May 2003), 18 pages
We consider the problem of how best to combine optimizations in imperative compilers. It is known that combined optimizations (or ``super-analyses'') can be strictly better than iterating separate improvement passes. We propose an explanation of why this is so by drawing connections between program analysis and the algebraic and coalgebraic views of programs and processes. We argue that ``optimistic'' analyses decide coinductively-defined relations and are based on bisimilarity. We relate combining program improvements to the problem of deciding combinations of theories. Iterating program improvements is similar to the Nelson-Oppen method of deciding combined theories: in Nelson-Oppen decision procedures communicate equalities, and iterated improvement passes implicitly communicate equalities via term replacements. To decide combined theories of bisimilarity, some ``co-Nelson-Oppen'' procedure is needed that propagates \emph{inequalities} amongst decision procedures. Hence, iterating optimistic analyses fails to be effective because inequalities cannot be communicated by semantics-preserving rewrites. Superanalysis is conjectured to overcome this failing by behaving like a ``co-Nelson-Oppen'' decision procedure.

Available as: