Proceedings of the ACM SIGPLAN 1992 Conference on Programming Language Design and Implementation - PLDI '92 1992
DOI: 10.1145/143095.143136
|View full text |Cite
|
Sign up to set email alerts
|

Lazy code motion

Abstract: We present a bit-vector algorithm for the optimal and economical placement of computations within flow graphs, which is as eficient as standard uni-directional analyses. The point of our algorithm is the decomposition of the hi-directional structure of the known placement algorithms into a sequence of a backward and a forward analysis, which directly implies the etllciency result. Moreover, the new compositional structure opens the algorithm for modification: two further uni-directional analysis components exc… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
48
0

Year Published

1993
1993
2012
2012

Publication Types

Select...
6
2

Relationship

1
7

Authors

Journals

citations
Cited by 143 publications
(48 citation statements)
references
References 24 publications
0
48
0
Order By: Relevance
“…Because this technique is based on code motion, its effect may be limited if there exist critical edges leading from a node with more than one successor to a node with more than one predecessor, such as an edge from node 1 to node 2 in Fig. 5 (a) [11], [12], [14]. We assume that a critical edge is removed by inserting a synthetic node as shown by the insertion of…”
Section: Preliminariesmentioning
confidence: 99%
“…Because this technique is based on code motion, its effect may be limited if there exist critical edges leading from a node with more than one successor to a node with more than one predecessor, such as an edge from node 1 to node 2 in Fig. 5 (a) [11], [12], [14]. We assume that a critical edge is removed by inserting a synthetic node as shown by the insertion of…”
Section: Preliminariesmentioning
confidence: 99%
“…After memory redundancies are detected, code transformations are used to eliminate the redundant instructions. We have used two different techniques to perform the elimination phase: traditional common subexpression elimination (CSE) [9] and partial redundancy elimination (PRE) [24,18,11]. Using memory value numbering results, we can easily extend scalar CSE and PRE and build unified frameworks that remove both scalar and memory-based redundancies.…”
Section: Removing Memory Redundancymentioning
confidence: 99%
“…The key idea behind partial redundancy elimination (pre) and lazy code motion is to find computations that are redundant on some, but not all paths [24,18,11]. Given an expression e at point p that is redundant on some subset of the paths that reach p, the transformation inserts evaluations of e on paths where it had not been, to make the evaluation at p redundant on all paths.…”
Section: Partial Redundancy Eliminationmentioning
confidence: 99%
See 1 more Smart Citation
“…Morel and Renvoise 24] rst proposed a bidirectional bit-vector algorithm for the suppression of partial redundancies. The complexity of bidirectional problems for bit-vector representations of data ow information was addressed by later papers 8,20,9,19]. This paper applies the techniques from 24] and 9] for eliminating partially redundant communication.…”
Section: Related Workmentioning
confidence: 99%