๐”– Bobbio Scriptorium
โœฆ   LIBER   โœฆ

Value Numbering

โœ Scribed by PRESTON BRIGGS; KEITH D. COOPER; L. TAYLOR SIMPSON


Publisher
John Wiley and Sons
Year
1997
Tongue
English
Weight
241 KB
Volume
27
Category
Article
ISSN
0038-0644

No coin nor oath required. For personal study only.

โœฆ Synopsis


Value numbering is a compiler-based program analysis method that allows redundant computations to be removed. This paper compares hash-based approaches derived from the classic local algorithm 1 with partitioning approaches based on the work of Alpern, Wegman and Zadeck. 2 Historically, the hash-based algorithm has been applied to single basic blocks or extended basic blocks. We have improved the technique to operate over the routine's dominator tree. The partitioning approach partitions the values in the routine into congruence classes and removes computations when one congruent value dominates another. We have extended this technique to remove computations that define a value in the set of available expressions (AVAIL). 3 Also, we are able to apply a version of Morel and Renvoise's partial redundancy elimination 4 to remove even more redundancies.

The paper presents a series of hash-based algorithms and a series of refinements to the partitioning technique. Within each series, it can be proved that each method discovers at least as many redundancies as its predecessors. Unfortunately, no such relationship exists between the hash-based and global techniques. On some programs, the hash-based techniques eliminate more redundancies than the partitioning techniques, while on others, partitioning wins. We experimentally compare the improvements made by these techniques when applied to real programs. These results will be useful for commercial compiler writers who wish to assess the potential impact of each technique before implementation. ยฉ1997 by John Wiley & Sons, Ltd.

KEY WORDS: code optimization; value numbering; redundancy elimination 1. To recognize certain algebraic identities, like i = i + 0 and j = j 1, and to use them to simplify the code and to expand the set of expressions known to be equal. 2. To evaluate expressions whose operands are constants and to propagate their values through the code.


๐Ÿ“œ SIMILAR VOLUMES


Numbering conventions
๐Ÿ“‚ Article ๐Ÿ“… 1975 ๐Ÿ› Elsevier Science ๐ŸŒ English โš– 11 KB
Numbering Self-replicating Polymers
โœ L.H.A. Monteiro; J.R.C. Piqueira ๐Ÿ“‚ Article ๐Ÿ“… 1998 ๐Ÿ› Elsevier Science ๐ŸŒ English โš– 154 KB
Computing an st-numbering
โœ Shimon Even; Robert Endre Tarjan ๐Ÿ“‚ Article ๐Ÿ“… 1976 ๐Ÿ› Elsevier Science ๐ŸŒ English โš– 760 KB
Numbering Self-replicating Polymers II
โœ L.H.A. Monteiro; J.R.C. Piqueira ๐Ÿ“‚ Article ๐Ÿ“… 1998 ๐Ÿ› Elsevier Science ๐ŸŒ English โš– 144 KB

Copyright 1998 Academic Press