## Optimal Code Motion: Theory and Practice (1993)

### Cached

### Download Links

- [ftp.uni-passau.de]
- [sunshine.cs.uni-dortmund.de]
- DBLP

### Other Repositories/Bibliography

Citations: | 112 - 18 self |

### BibTeX

@MISC{Knoop93optimalcode,

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

title = {Optimal Code Motion: Theory and Practice},

year = {1993}

}

### OpenURL

### Abstract

An implementation oriented algorithm for lazy code motion is presented that minimizes the number of computations in programs while suppressing any unnecessary code motion in order to avoid superfluous register pressure. In particular, this variant of the original algorithm for lazy code motion works on flowgraphs whose nodes are basic blocks rather than single statements, as this format is standard in optimizing compilers. The theoretical foundations of the modified algorithm are given in the first part, where t-refined flowgraphs are introduced for simplifying the treatment of flowgraphs whose nodes are basic blocks. The second part presents the `basic block' algorithm in standard notation, and gives directions for its implementation in standard compiler environments. Keywords Elimination of partial redundancies, code motion, data flow analysis (bit-vector, unidirectional, bidirectional), nondeterministic flowgraphs, t-refined flow graphs, critical edges, lifetimes of registers, com...