## Partial Dead Code Elimination

### Cached

### Download Links

- [www.cs.wisc.edu]
- [sunshine.cs.uni-dortmund.de]
- DBLP

### Other Repositories/Bibliography

Citations: | 91 - 15 self |

### BibTeX

@MISC{Knoop_partialdead,

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

title = {Partial Dead Code Elimination },

year = {}

}

### Years of Citing Articles

### OpenURL

### Abstract

### Citations

839 | Efficiently Computing Static Single Assignment Form and version 1
- Cytron, Ferrante, et al.
- 1991
(Show Context)
Citation Context ...e graphs are usually quite large, i.e. of order O(i 2 v) in the worst case, where i denotes the number of instructions and v the number of variables occurring in the flow graph [30]. The algorithm of =-=[5]-=- improves on this result by working on a sparse definition-use graph based on the SSA form. This results in a worst case time complexity of O(i v), which coincides with the complexity of our simple it... |

308 | Constant Propagation with Conditional Branches
- Wegman, Zadeck
- 1991
(Show Context)
Citation Context ...tunately, definition-use graphs are usually quite large, i.e. of order O(i 2 v) in the worst case, where i denotes the number of instructions and v the number of variables occurring in the flow graph =-=[30]-=-. The algorithm of [5] improves on this result by working on a sparse definition-use graph based on the SSA form. This results in a worst case time complexity of O(i v), which coincides with the compl... |

277 |
Flow Analysis of Computer Programs
- Hecht
- 1977
(Show Context)
Citation Context ...ents The elimination of dead (faint) assignments is based on the determination of dead (faint) variables. Dead variables can be computed by means of a backwards directed bit-vector data flow analysis =-=[2, 17, 24]-=-. A standard formulation can be found in Table 1, where N-DEAD ' (x) (or X-DEAD ' (x)) mean that variable x is dead at the entry (or exit) of statement '. Additionally, this table shows the equation s... |

179 |
Global Optimizations by Suppression of Partial Redundancies
- Morel, Renvoise
- 1979
(Show Context)
Citation Context ...tial of dead code, which is subsequently eliminated. This approach is essentially dual to partial reduny := 1 2 3 4 5 6 out(x*y) y := a+b Figure 2: Partially Dead Assignment Removed dancy elimination =-=[9, 11, 12, 23, 22, 26]-=-, where computations are moved against the control flow as far as possible, in order to make their effects as universal as possible. Thus similar techniques can be applied. However, moving assignments... |

173 |
Global value numbers and redundant computations
- Rosen, Wegman, et al.
- 1988
(Show Context)
Citation Context ...chnique of dead code elimination based on definition-use graphs, and it is comparable with the complexity of other aggressive code motion techniques. E.g., the algorithm for global value numbering of =-=[27]-=-, which requires reducible flow graphs and guarantees optimality only for acyclic program structures, is of third order. 7 Conclusions We have presented a new aggressive algorithm for the optimal elim... |

157 | Lazy code motion
- Knoop, Ruething, et al.
- 1992
(Show Context)
Citation Context ...tial of dead code, which is subsequently eliminated. This approach is essentially dual to partial reduny := 1 2 3 4 5 6 out(x*y) y := a+b Figure 2: Partially Dead Assignment Removed dancy elimination =-=[9, 11, 12, 23, 22, 26]-=-, where computations are moved against the control flow as far as possible, in order to make their effects as universal as possible. Thus similar techniques can be applied. However, moving assignments... |

124 | Global data flow analysis and iterative algorithms
- Kam, Ullman
- 1976
(Show Context)
Citation Context ...lity analysis realizing the essential part of the assignment sinking procedure is a forward directed bit-vector data flow analysis. For well-structured flow graphs the efficient bit-vector techniques =-=[19, 20, 29]-=- become applicable, yielding an almost linear complexity in terms of fast bit-vector operations. For arbitrary control flow structures, however, the slotwise approach of [10] is the best we can do yie... |

122 |
Global instruction scheduling for superscalar machines
- Bernstein, Rodeh
- 1991
(Show Context)
Citation Context ...oals of code generation, for instance to yield short evaluation sequences with respect to some machine model [1, 28], or to prepare the code for efficient execution on a parallel or pipelined machine =-=[3, 15]-=-. Structure of the Paper The paper develops along the following lines. After the preliminary Section 2, Section 3 presents the central notions of our approach and establishes the essential features of... |

112 | Optimal code motion: Theory and practice
- Knoop, Rüthing, et al.
- 1994
(Show Context)
Citation Context ...tial of dead code, which is subsequently eliminated. This approach is essentially dual to partial reduny := 1 2 3 4 5 6 out(x*y) y := a+b Figure 2: Partially Dead Assignment Removed dancy elimination =-=[9, 11, 12, 23, 22, 26]-=-, where computations are moved against the control flow as far as possible, in order to make their effects as universal as possible. Thus similar techniques can be applied. However, moving assignments... |

104 |
The generation of optimal code for arithmetic expressions
- Sethi, Ullman
- 1970
(Show Context)
Citation Context ...ling techniques are usually restricted to basic blocks or for-loops and focus on specific goals of code generation, for instance to yield short evaluation sequences with respect to some machine model =-=[1, 28]-=-, or to prepare the code for efficient execution on a parallel or pipelined machine [3, 15]. Structure of the Paper The paper develops along the following lines. After the preliminary Section 2, Secti... |

87 |
Applications of path compression on balanced trees
- Tarjan
(Show Context)
Citation Context ...lity analysis realizing the essential part of the assignment sinking procedure is a forward directed bit-vector data flow analysis. For well-structured flow graphs the efficient bit-vector techniques =-=[19, 20, 29]-=- become applicable, yielding an almost linear complexity in terms of fast bit-vector operations. For arbitrary control flow structures, however, the slotwise approach of [10] is the best we can do yie... |

85 | Effective partial redundancy elimination
- Briggs, Cooper
- 1994
(Show Context)
Citation Context ...:= a+1 out(a) 2 1 3 a := a+1 out(x+y) 5 6 out(a+b) a) 1 b) out(a) a := a+1 2 3 6 a := a+1 out(a+b) 5 out(x+y) a := a+1 y := a+b 4 Figure 7: Illustrating m-to-n Sinkings Briggs' and Cooper's algorithm =-=[4]-=- published in this proceedings employs instruction sinking for the reassociation of expressions. As a by-product some partially dead assignments can be removed. However, in contrast to our algorithm t... |

56 |
How to Analyze Large Programs Efficiently and Informatively
- Dhamdhere, Rosen, et al.
- 1992
(Show Context)
Citation Context ...tion displayed in Figure 4 in two steps: Removing the second assignment from the loop suspends the blockade of the first 1 Note that even interleaving code motion and copy propagation as suggested in =-=[10]-=- only succeeds in removing the right hand side computations from the loop, but the assignment to x would remain in it. 4 5 6 7 out(c) c := y-e x := c+1 c := y-e 8 5,8 S 6,8 S x := a+b a := c+d out(x) ... |

56 |
A survey of data flow analysis techniques
- Kennedy
- 1981
(Show Context)
Citation Context ...y successively eliminating all assignments whose left-hand side variables are dead (faint) immediately after them. Standard methods to dead code elimination are usually based on definition-use graphs =-=[2, 21]-=-, which connect the definition sites of a variable with their corresponding use sites. Thus, dead assignments can be identified indirectly by means of a simple marking algorithm working on the definit... |

49 |
Code generation for expressions with common subexpressions
- Aho, Johnson, et al.
- 1977
(Show Context)
Citation Context ...ling techniques are usually restricted to basic blocks or for-loops and focus on specific goals of code generation, for instance to yield short evaluation sequences with respect to some machine model =-=[1, 28]-=-, or to prepare the code for efficient execution on a parallel or pipelined machine [3, 15]. Structure of the Paper The paper develops along the following lines. After the preliminary Section 2, Secti... |

47 |
Practical adaption of the global optimization algorithm of Morel and Renvoise
- Dhamdhere
- 1991
(Show Context)
Citation Context |

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

37 |
An efficient general iterative algorithm for dataflow analysis
- Horwitz, Demers, et al.
- 1987
(Show Context)
Citation Context ...that are of no use for any relevant computation. The following recursive definition yields such a characterization. An occurrence of an assignment pattern ff j x := t in a basic block n is faint (cp. =-=[16, 18]-=-), if its left-hand side variable x is faint , i.e. on every path from n to e every right-hand side occurrence of x following the instance of ff is either preceded by a modification of x or is in an a... |

31 |
A Fast Algorithm for Code Movement Optimization
- Dhamdhere
- 1988
(Show Context)
Citation Context ...relevant as well. It is straightforward to extend our approach accordingly. a flow graph, i.e., by edges leading from a node with more than one successor to a node with more than one predecessor (cf. =-=[6, 10, 23, 22]-=-). a) 3 2 1 x := a+b x := 3 2 1 x := 1,2 S x := a+b b) Figure 8: Critical Edges In Figure 8(a) the assignment x := a + b at node 1 is partially dead with respect to the assignment at node 3. However, ... |

28 |
A variation of knoop, ruthing, and steffen’s lazy code motion
- Drechsler, Stadel
- 1993
(Show Context)
Citation Context |

21 |
Node listings applied to data flow analysis
- Kennedy
- 1975
(Show Context)
Citation Context ...lity analysis realizing the essential part of the assignment sinking procedure is a forward directed bit-vector data flow analysis. For well-structured flow graphs the efficient bit-vector techniques =-=[19, 20, 29]-=- become applicable, yielding an almost linear complexity in terms of fast bit-vector operations. For arbitrary control flow structures, however, the slotwise approach of [10] is the best we can do yie... |

20 |
Invariance of approximative semantics with respect to program transformations
- Giegerich, Moncke, et al.
- 1981
(Show Context)
Citation Context ...that are of no use for any relevant computation. The following recursive definition yields such a characterization. An occurrence of an assignment pattern ff j x := t in a basic block n is faint (cp. =-=[16, 18]-=-), if its left-hand side variable x is faint , i.e. on every path from n to e every right-hand side occurrence of x following the instance of ff is either preceded by a modification of x or is in an a... |

13 |
On live-dead analysis for global data flow problems
- Kou
- 1977
(Show Context)
Citation Context ...ents The elimination of dead (faint) assignments is based on the determination of dead (faint) variables. Dead variables can be computed by means of a backwards directed bit-vector data flow analysis =-=[2, 17, 24]-=-. A standard formulation can be found in Table 1, where N-DEAD ' (x) (or X-DEAD ' (x)) mean that variable x is dead at the entry (or exit) of statement '. Additionally, this table shows the equation s... |

10 |
The revival transformation
- Feigen, Klappholz, et al.
- 1994
(Show Context)
Citation Context ...our approach, assignments are hoisted rather than sunk, which does not allow any elimination of partially dead code. Recently, Feigen et al. pointed to the importance of partial dead code elimination =-=[13]-=-. Their algorithm is characterized by considering more complex statements as movement candidates whenever the elementary statements are blocked. Thus, in contrast to the usual code motion algorithms, ... |

9 |
Register assignment using code placement techniques
- Dhamdhere
- 1988
(Show Context)
Citation Context ... in Figure 6 their algorithm would sink the instruction of node S 4;5 into the loop to node 7. Note that subsequent partial redundancy elimination fails to hoist it back because of safety reasons. In =-=[7, 8]-=- Dhamdhere presents an application of code hoisting and sinking techniques to register assignment which, however, does not provide a contribution to the general problem of partial dead code eliminatio... |

7 |
A usually linear algorithm for register assignment using edge placement of load and store instructions
- Dhamdhere
- 1990
(Show Context)
Citation Context ... in Figure 6 their algorithm would sink the instruction of node S 4;5 into the loop to node 7. Note that subsequent partial redundancy elimination fails to hoist it back because of safety reasons. In =-=[7, 8]-=- Dhamdhere presents an application of code hoisting and sinking techniques to register assignment which, however, does not provide a contribution to the general problem of partial dead code eliminatio... |

5 | A variation of Knoop, R"uthing, and Steffen's lazy code motion - Dreshler, Stadel |

2 |
Efficient instruction scheduling for a pipline architecture
- Gibbons, Muchnik
- 1986
(Show Context)
Citation Context ...oals of code generation, for instance to yield short evaluation sequences with respect to some machine model [1, 28], or to prepare the code for efficient execution on a parallel or pipelined machine =-=[3, 15]-=-. Structure of the Paper The paper develops along the following lines. After the preliminary Section 2, Section 3 presents the central notions of our approach and establishes the essential features of... |

2 |
The design of a global optimizer
- Mintz, Fisher, et al.
(Show Context)
Citation Context ...the second loop, which would dramatically impair some program executions. Related Work The idea of assignment sinking and its use in dead code elimination in a global optimizer is already sketched in =-=[25]-=-. However, this algorithm is restricted to a few special control flow patterns, and does not address the general problem at all. Moreover, in [9] Dhamdhere proposed an extension of partial redundancy ... |

1 |
Chaotic fixed point iterations. MIP-Bericht 9403, Fakult"at f"ur Mathematik und Informatik, Universit"at
- Geser, Knoop, et al.
- 1994
(Show Context)
Citation Context ...y: 8 G 0 ; G 00 2 G �� 8 f 2 F �� : G 0 ~ v �� G 00 ) f(G 0 ) ~ v �� f(G 00 ) Given such a family of functions F �� , we can apply the generalized version of Tarski's Fixed Point T=-=heorem presented in [14], in ord-=-er to obtain: Theorem 3.7 (Existence of Optimal Programs) G �� has an optimal element (wrt ! �� ) which can be computed by any sequence of function applications that contains all elements of F... |