Anticipation-based partial redundancy elimination for static single assignment form

Thomas Vandrunen*, Antony L. Hosking

*Corresponding author for this work

Research output: Contribution to journalArticlepeer-review

3 Citations (Scopus)

Abstract

Partial redundancy elimination (PRE) is a program transformation that identifies and eliminates expressions that are redundant on at least one (but not necessarily all) execution paths of a program without increasing any path length. Chow, Kennedy and co-workers devised an algorithm (SSAPRE) for performing partial redundancy elimination on intermediate representations in static single assignment (SSA) form. The practicality of that algorithm is limited by the following concerns: (1) it makes assumptions about the namespace that are stronger than those of SSA form and that may not be valid if other optimizations have already been performed on the program; (2) if redundancies occur in nested expressions, the algorithm may expose but not eliminate them (requiring a second pass of the algorithm); (3) it misses cases covered by the state of the art in PRE; and (4) it is difficult to understand and implement. We present an algorithm (A-SSAPRE) structurally similar to SSAPRE that uses anticipation rather than availability; this algorithm is simpler than SSAPRE, covers more cases, eliminates nested redundancies on a single pass, and makes no assumptions about the namespace.

Original languageEnglish
Pages (from-to)1413-1439
Number of pages27
JournalSoftware - Practice and Experience
Volume34
Issue number15
DOIs
Publication statusPublished - 2004
Externally publishedYes

Fingerprint

Dive into the research topics of 'Anticipation-based partial redundancy elimination for static single assignment form'. Together they form a unique fingerprint.

Cite this