Syntax-Directed Divide-and-Conquer Data-Flow Analysis

  • Shigeyuki Sato
  • Akimasa Morihata
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8858)


Link-time optimization, with which GCC and LLVM are equipped, generally deals with large-scale procedures because of aggressive procedure inlining. Data-flow analysis (DFA), which is an essential computation for compiler optimization, is therefore desired to deal with large-scale procedures. One promising approach to the DFA of large-scale procedures is divide-and-conquer parallelization. However, DFA on control-flow graphs is difficult to divide and conquer. If we perform DFA on abstract syntax trees (ASTs) in a syntax-directed manner, the divide and conquer of DFA becomes straightforward, owing to the recursive structure of ASTs, but then nonstructural control flow such as goto/label becomes a problem. In order to resolve it, we have developed a novel syntax-directed method of DFA on ASTs that can deal with goto/label and is ready to divide-and-conquer parallelization. We tested the feasibility of our method experimentally through prototype implementations and observed that our prototype achieved a significant speedup.


syntax-directed divide and conquer closed semiring 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Albarghouthi, A., Kumar, R., Nori, A.V., Rajamani, S.K.: Parallelizing Top-Down Interprocedural Analyses. In: Proc. PLDI 2012, pp. 217–228 (2012)Google Scholar
  2. 2.
    Allen, F.E., Cocke, J.: A Program Data Flow Analysis Procedure. Commun. ACM 19(3), 137–147 (1976)CrossRefzbMATHGoogle Scholar
  3. 3.
    Khedker, U.P., Dhamdhere, D.M.: A Generalized Theory of Bit Vector Data Flow Analysis. ACM Trans. Program. Lang. Syst. 16(5), 1472–1511 (1994)CrossRefGoogle Scholar
  4. 4.
    Kildall, G.A.: A Unified Approach to Global Program Optimization. In: Proc. POPL 1973, pp. 194–206 (1973)Google Scholar
  5. 5.
    Kramer, R., Gupta, R., Soffa, M.L.: The Combining DAG: A Technique for Parallel Data Flow Analysis. IEEE T. Parall Distr. 5(8), 805–813 (1994)CrossRefGoogle Scholar
  6. 6.
    Lee, Y.F., Ryder, B.G., Fiuczynski, M.E.: Region Analysis: A Parallel Elimination Method for Data Flow Analysis. IEEE Software Eng. 21(11), 913–926 (1995)CrossRefGoogle Scholar
  7. 7.
    Marlowe, T.J., Ryder, B.G.: Properties of data flow frameworks. Acta Inform. 28(2), 121–163 (1990)MathSciNetCrossRefzbMATHGoogle Scholar
  8. 8.
    Méndez-Lojo, M., Burtscher, M., Pingali, K.: A GPU Implementation of Inclusion-based Points-to Analysis. In: Proc. PPoPP 2012, pp. 107–116 (2012)Google Scholar
  9. 9.
    Méndez-Lojo, M., Mathew, A., Pingali, K.: Parallel Inclusion-based Points-to Analysis. In: Proc. OOPSLA 2010, pp. 428–443 (2010)Google Scholar
  10. 10.
    Mintz, R.J., Fisher, G.A., Sharir, M.: The design of a global optimizer. In: Proc. SIGPLAN Symposium on Compiler Construction 1979, pp. 226–234 (1979)Google Scholar
  11. 11.
    Prabhu, T., Ramalingam, S., Might, M., Hall, M.: EigenCFA: Accelerating Flow Analysis with GPUs. In: Proc. POPL 2011, pp. 511–522 (2011)Google Scholar
  12. 12.
    Rodriguez, J., Lhoták, O.: Actor-Based Parallel Dataflow Analysis. In: Knoop, J. (ed.) CC 2011. LNCS, vol. 6601, pp. 179–197. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  13. 13.
    Rosen, B.K.: High-Level Data Flow Analysis. Commun. ACM 20(10), 712–724 (1977)CrossRefzbMATHGoogle Scholar
  14. 14.
    Rosen, B.K.: Monoids for Rapid Data Flow Analysis. SIAM J. Comput. 9(1), 159–196 (1980)MathSciNetCrossRefzbMATHGoogle Scholar
  15. 15.
    Ryder, B.G., Paull, M.C.: Elimination Algorithms for Data Flow Analysis. ACM Comput. Surv. 18(3), 277–316 (1986)CrossRefGoogle Scholar
  16. 16.
    Sharir, M., Pnueli, A.: Two Approaches to Inter-Procedural Data-Flow Analysis. Prentice-Hall (1981)Google Scholar
  17. 17.
    Tarjan, R.E.: A Unified Approach to Path Problems. J. ACM 28(3), 577–593 (1981)MathSciNetCrossRefzbMATHGoogle Scholar
  18. 18.
    Tarjan, R.E.: Fast Algorithms for Solving Path Problems. J. ACM 28(3), 594–614 (1981)MathSciNetCrossRefzbMATHGoogle Scholar
  19. 19.
    Vaivaswatha, N., Govindarajan, R.: Parallel Flow-Sensitive Pointer Analysis by Graph-Rewriting. In: Proc. PACT 2013, pp. 19–28 (2013)Google Scholar

Copyright information

© Springer International Publishing Switzerland 2014

Authors and Affiliations

  • Shigeyuki Sato
    • 1
  • Akimasa Morihata
    • 2
  1. 1.The University of Electro-CommunicationsJapan
  2. 2.Graduate School of Arts and SciencesUniversity of TokyoJapan

Personalised recommendations