Skip to main content

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

  • Conference paper
Programming Languages and Systems (APLAS 2014)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 8858))

Included in the following conference series:

  • 923 Accesses

Abstract

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  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. Allen, F.E., Cocke, J.: A Program Data Flow Analysis Procedure. Commun. ACM 19(3), 137–147 (1976)

    Article  MATH  Google Scholar 

  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)

    Article  Google Scholar 

  4. Kildall, G.A.: A Unified Approach to Global Program Optimization. In: Proc. POPL 1973, pp. 194–206 (1973)

    Google Scholar 

  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)

    Article  Google Scholar 

  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)

    Article  Google Scholar 

  7. Marlowe, T.J., Ryder, B.G.: Properties of data flow frameworks. Acta Inform. 28(2), 121–163 (1990)

    Article  MathSciNet  MATH  Google Scholar 

  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. 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. 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. 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. 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)

    Chapter  Google Scholar 

  13. Rosen, B.K.: High-Level Data Flow Analysis. Commun. ACM 20(10), 712–724 (1977)

    Article  MATH  Google Scholar 

  14. Rosen, B.K.: Monoids for Rapid Data Flow Analysis. SIAM J. Comput. 9(1), 159–196 (1980)

    Article  MathSciNet  MATH  Google Scholar 

  15. Ryder, B.G., Paull, M.C.: Elimination Algorithms for Data Flow Analysis. ACM Comput. Surv. 18(3), 277–316 (1986)

    Article  Google Scholar 

  16. Sharir, M., Pnueli, A.: Two Approaches to Inter-Procedural Data-Flow Analysis. Prentice-Hall (1981)

    Google Scholar 

  17. Tarjan, R.E.: A Unified Approach to Path Problems. J. ACM 28(3), 577–593 (1981)

    Article  MathSciNet  MATH  Google Scholar 

  18. Tarjan, R.E.: Fast Algorithms for Solving Path Problems. J. ACM 28(3), 594–614 (1981)

    Article  MathSciNet  MATH  Google Scholar 

  19. Vaivaswatha, N., Govindarajan, R.: Parallel Flow-Sensitive Pointer Analysis by Graph-Rewriting. In: Proc. PACT 2013, pp. 19–28 (2013)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2014 Springer International Publishing Switzerland

About this paper

Cite this paper

Sato, S., Morihata, A. (2014). Syntax-Directed Divide-and-Conquer Data-Flow Analysis. In: Garrigue, J. (eds) Programming Languages and Systems. APLAS 2014. Lecture Notes in Computer Science, vol 8858. Springer, Cham. https://doi.org/10.1007/978-3-319-12736-1_21

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-12736-1_21

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-12735-4

  • Online ISBN: 978-3-319-12736-1

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics