## Lazy Code Motion (1992)

Citations: | 157 - 20 self |

### BibTeX

@INPROCEEDINGS{Knoop92lazycode,

author = {Jens Knoop and Oliver Rüthing and Bernhard Steffen},

title = {Lazy Code Motion},

booktitle = {},

year = {1992},

pages = {224--234},

publisher = {}

}

### Years of Citing Articles

### OpenURL

### Abstract

We present a bit-vector algorithm for the optimal and economical placement of computations within flow graphs, which is as efficient as standard uni-directional analyses. The point of our algorithm is the decomposition of the bi-directional structure of the known placement algorithms into a sequence of a backward and a forward analysis, which directly implies the efficiency result. Moreover, the new compositional structure opens the algorithm for modification: two further uni-directional analysis components exclude any unnecessary code motion. This laziness of our algorithm minimizes the register pressure, which has drastic effects on the run-time behaviour of the optimized programs in practice, where an economical use of registers is essential.

### Citations

277 |
Flow Analysis of Computer Programs
- Hecht
- 1977
(Show Context)
Citation Context ... with all program terms simultaneously is just the independent combination of all the "term algorithms". This leads to the usual bit-vector algorithms that realize such a combination efficie=-=ntly (cf. [He]-=-). In the following, we fix the flow graph G and the term t 2 T n V, in order to allow a simple, unparameterized notation, and we denote the computations of t occurring in G as original computations. ... |

179 |
Global Optimizations by Suppression of Partial Redundancies
- Morel, Renvoise
- 1979
(Show Context)
Citation Context ...4 3 x := a+b 2 a := c 1 15 17 18 x := a+b y := a+b Figure 1: The Motivating Example Related Work In 1979 Morel and Renvoise proposed a bit-vector algorithm for the suppression of partial redundancies =-=[MR1]-=-. The bi-directionality of their algorithm became model in the field of bit-vector based code motion (cf. [Ch, Dh1, Dh2, Dh3, DS, JD1, JD2, Mo, MR2, So]). Bi-directional algorithms, however, are in ge... |

173 | Global value numbers and redundant computations - Rosen, Wegman, et al. - 1988 |

152 | Monotone data flow analysis frameworks - Kam, Ullman - 1977 |

124 | Global data flow analysis and iterative algorithms - Kam, Ullman - 1976 |

90 | Fast algorithms for solving path problems - Tarjan - 1981 |

87 | Applications of path compression on balanced trees - Tarjan |

75 | A fast and usually linear algorithm for global flow analysis - Graham, Wegman - 1976 |

69 | A unified approach to path problems - Tarjan - 1981 |

50 |
Data flow analysis as model checking
- Steffen
(Show Context)
Citation Context ...our algorithm is conceptuallyssimple. It only requires the sequential computation of the four predicates D-Safe, Earliest, Latest, and Isolated. Thus our algorithm is an extension of the algorithm of =-=[St]-=-, which simply computes the predicates D-Safe and Earliest. The two new predicates Latest and Isolated prevent any unnecessary code motion. 2 Preliminaries We consider variables v 2 V, terms t 2 T, an... |

47 |
Practical adaption of the global optimization algorithm of Morel and Renvoise
- Dhamdhere
- 1991
(Show Context)
Citation Context ... idea: ffl Initialize "as late as possible" while maintaining computational optimality. Together with the suppression of initializations, which are only going to be used at the insertion poi=-=nt it1 In [Dh3]-=- unnecessary code motions are called redundant. self, this characterizes our approach of lazy code motion. Figure 1 displays an example, which is complex enough to illustrate the various features of t... |

45 | A Simple Algorithm for Global Data Flow Analysis Problems - Hecht, Ullman - 1975 |

38 | A solution to a problem with morel and renvoise's "global optimization by suppression of partial redudancies - Drechsler, Stadel - 1988 |

34 | The value flow graph: A program representation for optimal program transformations - Steffen, Knoop, et al. - 1990 |

31 | A Fast Algorithm for Code Movement Optimization - Dhamdhere - 1988 |

23 | Lazy Strength Reduction
- Knoop, Ruthing, et al.
- 1993
(Show Context)
Citation Context ...r of predicates drastically, this allows us to utilize the efficient algorithms for uni-directional bit-vector analyses. Moreover, it makes the algorithm modular, which supports future extensions: in =-=[KRS]-=- we present an extension of our lazy code motion algorithm which, in a similar fashion as in [JD1, JD2], uniformly combines code motion and strength reduction, and following the lines of [KS1, KS2] a ... |

21 | Node listings applied to data flow analysis - Kennedy - 1975 |

20 | A Composite Hoisting-Strength Reduction Transformation for Global Program - Joshi, Dhamdhere - 1982 |

18 | Fast algorithms for the elimination of common subexpressions - ULLMAN - 1973 |

13 | Interprocedural elimination of partial redundancies - Morel, Renvoise - 1981 |

10 | Node listings for reducible flowgraphs - Aho, Ullman - 1976 |

10 | Data Flow Analysis and Global Optimization - Morel - 1984 |

10 | Some comments on a solution to a problem with Morel and Renvoise's "Global optimization by suppression of partial redundancies - Sorkin - 1989 |

10 | O.: E cient Code Motion and an Adaption to Strength Reduction - en, Knoop, et al. - 1991 |

9 | Analysis of a Simple Algorithm For Global Flow Problems - Hecht, Ullman - 1973 |

7 | A Portable Machine Independent Optimizer -- Design and Measurements - Chow - 1983 |

6 | Characterization of program loops in code optimization - Dhamdhere, Keith - 1983 |

3 | The interprocedural coincidence theorem. Aachener InformatikBerichte Nr. 9127, Rheinisch-Westfalische Technische Hochschule - Knoop, Steffen - 1991 |

2 |
Efficient and optimal interprocedural bit-vector data flow analyses: A uniform interprocedural framework
- Knoop, Steffen
(Show Context)
Citation Context ...2 N represent assignments of the 2 Such an algorithm was first proposed in [St], which later on was interprocedurally generalized to programs with procedures, local variables and formal parameters in =-=[KS2]. Both alg-=-orithms realize an "as early as possible" placement. form v := t and edges (m; n) 2 E the nondeterministic branching structure of G 3 . s and e denote the unique start node and end node of G... |