Title of article
Code motion in the presence of critical edges without bidirectional data flow analysis
Author/Authors
Oliver Rüthing، نويسنده ,
Issue Information
ماهنامه با شماره پیاپی سال 2001
Pages
27
From page
3
To page
29
Abstract
Bidirectional data flow analysis has become the standard technique for solving bit-vector-based code motion problems in the presence of critical edges. Unfortunately, bidirectional analyses are conceptually and computationally harder than their unidirectional counterparts. In this paper we show that code motion in the presence of critical edges can be achieved without bidirectional data flow analyses. This is demonstrated by means of an adaption of our algorithm for lazy code motion (Knoop et al., Proc. ACM SIGPLAN Conf. on Programming Language Design and Implementation (PLDI)’92, ACM SIGPLAN Notices, vol. 27, 7, San Francisco, CA, June 1992, pp. 224–234), which is developed from a fresh, specification-oriented view. As the key element to cope with critical edges homogeneity constraints are introduced in order to avoid anomalies during the code motion process. The “critical” variant of lazy code motion is realized by means of three alternative iteration strategies: (1) a “classical” approach using bidirectional analyses, (2) a unidirectional approach which requires that the control flow is enriched by additional shortcut edges and (3) a hybrid approach which combines unidirectional information flow with the side propagation of information.
Keywords
Computational complexity , Bidirectional data flow analysis , Code motion , Program optimization , Partial redundancy elimination , Critical edges
Journal title
Science of Computer Programming
Serial Year
2001
Journal title
Science of Computer Programming
Record number
1079589
Link To Document