Expression Motion in the Presence of Critical Edges

Part of the Lecture Notes in Computer Science book series (LNCS, volume 1539)


It is well-known since Morel’s and Renvoise’s [MR79] pioneering work that critical edges may cause serious problems for expression motion:
  • First, the lack of suitable placement points usually leads to suboptimal results, i. e. results that are strictly worse in terms of the number of computations than competitive results that could be obtained in a flow graph after splitting critical edges. Figure 2.2 of Chapter 2 gives an illustration of this phenomenon.

  • Second, the equation system of Morel and Renvoise uses bidirectional data flow analyses. In fact, the bidirectionality of their algorithm became model in the field of bit-vector based expression motion (cf. [Cho83, Dha88, Dha89b, Dha91, DK93, DRZ92, DS88, JD82a, JD82b, Mor84, MR81, Sor89]). Bidirectional algorithms, however, are in general conceptually and computationally more complex than unidirectional ones. In particular, critical edges prevent the application of fast unidirectional bit-vector methods, which in the case of reducible control are almost linear in the program size (cf. Section 4.6.4). In contrast, the best known estimations for bidirectional bit-vector analyses are of order O(|G|2) (cf. [Dha91, DK93, DP93]).


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Copyright information

© Springer-Verlag Berlin Heidelberg 1998

Personalised recommendations