Bidirectional Data Flow Analysis in Code Motion: Myth and Reality

  • Authors:
  • Oliver Rüthing

  • Affiliations:
  • -

  • Venue:
  • SAS '98 Proceedings of the 5th International Symposium on Static Analysis
  • Year:
  • 1998

Quantified Score

Hi-index 0.00

Visualization

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 have turned out to be 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 [15], which is developed from a fresh, specification oriented view. Besides revealing a better conceptual understanding of the phenomena caused by critical edges, this also settles the foundation for a new and efficient hybrid iteration strategy that intermixes conventional round-robin iteration with the exhaustive iteration on critical subparts.