Lazy Strength Reduction (0)
| Venue: | Journal of Programming Languages |
| Citations: | 23 - 8 self |
BibTeX
@ARTICLE{Knoop_lazystrength,
author = {Jens Knoop and Oliver Ruthing and Bernhard Steffen},
title = {Lazy Strength Reduction},
journal = {Journal of Programming Languages},
year = {},
volume = {1},
pages = {71--91}
}
OpenURL
Abstract
We present a bit-vector algorithm that uniformly combines code motion and strength reduction, avoids superfluous register pressure due to unnecessary code motion, and is as efficient as standard unidirectional analyses. The point of this algorithm is to combine the concept of lazy code motion of [1] with the concept of unifying code motion and strength reduction of [2, 3, 4, 5]. This results in an algorithm for lazy strength reduction, which consists of a sequence of unidirectional analyses, and is unique in its transformational power. Keywords: Data flow analysis, program optimization, partial redundancy elimination, code motion, strength reduction, bit-vector data flow analyses. 1 Motivation Code motion improves the runtime efficiency of a program by avoiding unnecessary recomputations of a value at runtime. Strength reduction improves runtime efficiency by reducing "expensive" recomputations to less expensive ones, e.g., by reducing computations involving multiplication to computat...







