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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Albarghouthi, A., Kumar, R., Nori, A.V., Rajamani, S.K.: Parallelizing Top-Down Interprocedural Analyses. In: Proc. PLDI 2012, pp. 217–228 (2012)
Allen, F.E., Cocke, J.: A Program Data Flow Analysis Procedure. Commun. ACM 19(3), 137–147 (1976)
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)
Kildall, G.A.: A Unified Approach to Global Program Optimization. In: Proc. POPL 1973, pp. 194–206 (1973)
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)
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)
Marlowe, T.J., Ryder, B.G.: Properties of data flow frameworks. Acta Inform. 28(2), 121–163 (1990)
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)
Méndez-Lojo, M., Mathew, A., Pingali, K.: Parallel Inclusion-based Points-to Analysis. In: Proc. OOPSLA 2010, pp. 428–443 (2010)
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)
Prabhu, T., Ramalingam, S., Might, M., Hall, M.: EigenCFA: Accelerating Flow Analysis with GPUs. In: Proc. POPL 2011, pp. 511–522 (2011)
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)
Rosen, B.K.: High-Level Data Flow Analysis. Commun. ACM 20(10), 712–724 (1977)
Rosen, B.K.: Monoids for Rapid Data Flow Analysis. SIAM J. Comput. 9(1), 159–196 (1980)
Ryder, B.G., Paull, M.C.: Elimination Algorithms for Data Flow Analysis. ACM Comput. Surv. 18(3), 277–316 (1986)
Sharir, M., Pnueli, A.: Two Approaches to Inter-Procedural Data-Flow Analysis. Prentice-Hall (1981)
Tarjan, R.E.: A Unified Approach to Path Problems. J. ACM 28(3), 577–593 (1981)
Tarjan, R.E.: Fast Algorithms for Solving Path Problems. J. ACM 28(3), 594–614 (1981)
Vaivaswatha, N., Govindarajan, R.: Parallel Flow-Sensitive Pointer Analysis by Graph-Rewriting. In: Proc. PACT 2013, pp. 19–28 (2013)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)