A New Elimination-Based Data Flow Analysis Framework Using Annotated Decomposition Trees

  • Bernhard Scholz
  • Johann Blieberger
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4420)


We introduce a new framework for elimination-based data flow analysis. We present a simple algorithm and a delayed algorithm that exhibit a worst-case complexity of \({\mathcal O}(n^2)\) and \(\tilde{{\mathcal O}}(m)\). The algorithms use a new compact data structure for representing reducible flow graphs called Annotated Decomposition Trees. This data structure extends a binary tree to represent flowgraph information, dominance relation of flowgraphs, and the topological order of nodes. The construction of the annotated decomposition trees runs in \({\mathcal O}(n + m)\). Experiments were conducted with reducible flowgraphs of the SPEC2000 benchmark suite.


Execution Time Regular Expression Dominator Tree Decomposition Tree Elimination Method 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. 1.
    Allen, F.E., Cocke, J.: A program data flow analysis procedure. Comm. ACM 19(3), 137–147 (1976)zbMATHCrossRefGoogle Scholar
  2. 2.
    Bender, M.A., Farach-Colton, M.: The lca problem revisited. In: Gonnet, G.H., Viola, A. (eds.) LATIN 2000. LNCS, vol. 1776, pp. 88–94. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  3. 3.
    Blieberger, J.: Data-flow frameworks for worst-case execution time analysis. Real-Time Syst. 22(3), 183–227 (2002)zbMATHCrossRefGoogle Scholar
  4. 4.
    Bodik, R., Gupta, R., Soffa, M.L.: Complete removal of redundant computations. In: Proc. of PLDI, pp. 1–14 (1998),
  5. 5.
    Fahringer, T., Scholz, B.: A Unified Symbolic Evaluation Framework for Parallelizing Compilers. IEEE TPDS 11(11) (2000)Google Scholar
  6. 6.
    Graham, S.L., Wegman, M.: Fast and usually linear algorithm for global flow analysis. J. ACM 23(1), 172–202 (1976)zbMATHCrossRefMathSciNetGoogle Scholar
  7. 7.
    Harel, D., Tarjan, R.E.: Fast algorithms for finding nearest common ancestors. Siam J. Comput. 13(2), 338–355 (1984)zbMATHCrossRefMathSciNetGoogle Scholar
  8. 8.
    Hecht, M.S.: Flow Analysis of Computer Programs, 1st edn. Elsevier North-Holland, New York (1977)zbMATHGoogle Scholar
  9. 9.
    Hecht, M.S., Ullman, J.D.: A simple algorithm for global data flow analysis problems. SIAM J. Comput. 4(4), 519–532 (1977)CrossRefMathSciNetGoogle Scholar
  10. 10.
    Hopcroft, J.E., Motwani, R., Ullman, J.D.: Introduction to automata theory, languages, and computation, 2nd edn. SIGACT News 32(1), 60–65 (2001), doi:10.1145/568438.568455CrossRefGoogle Scholar
  11. 11.
    Joshi, R., et al.: Some interesting results about applications of graphs in compilers. CSI J. 31(4) (2002)Google Scholar
  12. 12.
    Kildall, G.A.: A unified approach to global program optimization. In: Proc. of Symposium on Principles of Programming Languages, pp. 194–206. ACM Press, New York (1973)Google Scholar
  13. 13.
    Knuth, D.E.: Fundamental Algorithms, 3rd edn. The Art of Computer Programming, vol. 1. Addison-Wesley, Reading (1997)zbMATHGoogle Scholar
  14. 14.
    Lengauer, T., Tarjan, R.E.: A fast algorithm for finding dominators in a flowgraph. ACM Trans. Program. Lang. Syst. 1(1), 121–141 (1979), doi:10.1145/357062.357071zbMATHCrossRefGoogle Scholar
  15. 15.
    Scholz, B., Mehofer, E.: A Novel Probabilistic Data Flow Framework. In: Wilhelm, R. (ed.) CC 2001 and ETAPS 2001. LNCS, vol. 2027, pp. 37–51. Springer, Heidelberg (2001)Google Scholar
  16. 16.
    Paull, M.C.: Algorithm design: a recursion transformation framework. Wiley-Interscience, New York (1988)Google Scholar
  17. 17.
    Ramalingam, G.: Data flow frequency analysis. In: Proc. of PLDI, Philadelphia, Pennsylvania, United States, pp. 267–277. ACM Press, New York (1996), doi:10.1145/231379.231433Google Scholar
  18. 18.
    Robschink, T., Snelting, G.: Efficient path conditions in dependence graphs. In: Proc. of ICSE ’02, Orlando, Florida, pp. 478–488. ACM Press, New York (2002), doi:10.1145/581339.581398CrossRefGoogle Scholar
  19. 19.
    Ryder, B.G., Paull, M.C.: Elimination algorithms for data flow analysis. ACM Computing Surveys 18(3), 277–315 (1986)CrossRefGoogle Scholar
  20. 20.
    Sharir, M.: Structural analysis: A new approach to flow analysis in optimizing compilers. Computer Languages 5, 141–153 (1980)zbMATHCrossRefGoogle Scholar
  21. 21.
    Sreedhar, V.C., Gao, G.R., Lee, Y.-F.: A new framework for elimination-based data flow analysis using DJ graphs. ACM TOPLAS 20(2), 388–435 (1998)CrossRefGoogle Scholar
  22. 22.
    Tarjan, R.: Applications of path compression on balanced trees. J. of the ACM 26(4), 690–715 (1979)zbMATHCrossRefMathSciNetGoogle Scholar
  23. 23.
    Tarjan, R.E.: Fast algorithms for solving path problems. J. ACM 28(3), 594–614 (1981)zbMATHCrossRefMathSciNetGoogle Scholar
  24. 24.
    Tarjan, R.E.: A unified approach to path programs. J. ACM. 28(3), 577–593 (1981)zbMATHCrossRefMathSciNetGoogle Scholar
  25. 25.
    Vernet, O., Markenzon, L.: Maximal reducible flowgraphs. Technical Report RT029/DE9, D. de Engenharia de Sistemas, Instituto Militar de Engenharia, Rio de Janeiro, Brasil (1998)Google Scholar
  26. 26.
    Vernet, O., Markenzon, L.: Solving problems for maximal reducible flowgraphs. Disc. Appl. Math. 136, 341–348 (2004)zbMATHCrossRefMathSciNetGoogle Scholar

Copyright information

© Springer Berlin Heidelberg 2007

Authors and Affiliations

  • Bernhard Scholz
    • 1
  • Johann Blieberger
    • 2
  1. 1.The University of Sydney 
  2. 2.Technische Universität Wien 

Personalised recommendations