Code motion techniques are integrated in many optimizing production and research compilers. They are still a major topic of ongoing research in program optimization, but traditional methods are restricted by a narrow focus on their immediate effects. A more ambitious approach is to investigate the interdependencies between distinct component transformations.
This monograph provides a comprehensive account of the methods most accepted in practice for program analysis and program transformation for imperative languages. It also develops a scenario, systematically and step by step, which overcomes the structural restrictions that had previously long resisted attack. The author presents formal proofs for all the steps leading to this breakthrough, though the reader may skip the proofs and consult the technical details as needed yet still enjoy a smooth introduction to the central principles of code motion.
Inhalt
Introduction.- Basic Formalisms and Definitions.- Part I. Expresson Motion: Optimal Expression Motion: The Single-Expression View.- Optimal Expression Motion: The Multiple-Expression View.- Expression Motion in the Presence of Critical Edges.- Part II. Assignment Motion: Program Transformations Based on Assignment Motion.- A Framework for Assignment Motion Based Program Transformations.- Assignment Motion in the Presence of Critical Edges.- Conclusions and Perspectives.- References.- Index.