• 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