Abstract
Existing algorithms for computing dominators are formulated for control flow graphs of single procedures. With the rise of computing power, and the viability of whole-program analyses and optimizations, there is a growing need to extend the dominator computation algorithms to context-sensitive interprocedural dominators. Because the transitive reduction of the interprocedural dominator graph is not a tree, as in the intraprocedural case, it is not possible to extend existing algorithms directly. In this article, we propose a new algorithm for computing interprocedural dominators. Although the theoretical complexity of this new algorithm is as high as that of a straightforward iterative solution of the data flow equations, our experimental evaluation demonstrates that the algorithm is practically viable, even for programs consisting of several hundred thousands of basic blocks.
- Agrawal, H. 1999. Efficient coverage testing using global dominator graphs. In Proceedings of the 1999 ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering (PASTE'99). 11--20. Google Scholar
- Aho, A. V. and Ullman, J. D. 1977. Principles of Compiler Design. Addison-Wesley, Reading, MA. Google Scholar
- Allen, F. E. 1970. Control flow analysis. In Proceedings of a Symposium on Compiler Optimization. ACM Press, New York, 1--19. Google Scholar
- Allen, F. E. and Cocke, J. 1972. Graph-theoretic constructs for program control flow analysis. Tech. Rep. RC 3923, IBM T.J. Watson Research Center.Google Scholar
- Alstrup, S., Harel, D., Lauridsen, P. W., and Thorup, M. 1999. Dominators in linear time. SIAM J. Comput. 28, 6, 2117--2132. Google Scholar
- Chanet, D., De Sutter, B., De Bus, B., Van Put, L., and De Bosschere, K. 2007. Automated reduction of the memory footprint of the linux kernel. ACM Trans. Embedded Comp. Syst. 6, 1 (Feb.). Google Scholar
- Cooper, K. D., Harvey, T. J., and Kennedy, K. 2001. A simple, fast dominance algorithm. Available on-line at: http://www.hipersoft.rice.edu/grads/publications/dom14.pdf.Google Scholar
- Cytron, R., Ferrante, J., Rosen, B. K., Wegman, M. N., and Zadeck, F. K. 1991. Efficiently computing static single assignment form and the control dependence graph. ACM Trans. Prog. Lang. Syst. 13, 4, 451--490. Google Scholar
- De Bus, B., De Sutter, B., Van Put, L., Chanet, D., and De Bosschere, K. 2004. Link-time optimization of ARM binaries. SIGPLAN Notices 39, 7, 211--220. Google Scholar
- De Sutter, B., De Bus, B., and De Bosschere, K. 2005. Link-time binary rewriting techniques for program compaction. ACM Trans. Prog. Lang. Syst. 27, 5 (Sept.), 882--945. Google Scholar
- Georgiadis, L. and Tarjan, R. E. 2004. Finding dominators revisited: extended abstract. In Proceedings of the fifteenth annual ACM-SIAM symposium on Discrete Algorithms. 869--878. Google Scholar
- Georgiadis, L., Werneck, R., Tarjan, R., Triantafyllis, S., and August, D. 2004. Finding dominators in practice. Lecture Notes in Computer Science 3221, 677--688.Google Scholar
- Harel, D. 1985. A linear algorithm for finding dominators in flow graphs and related problems. In Proceedings of the 17th Annual ACM Symposium on Theory of Computing. ACM Press, 185--194. Google Scholar
- Lengauer, T. and Tarjan, R. E. 1979. A fast algorithm for finding dominators in a flowgraph. ACM Trans. Program. Lang. Syst. 1, 1, 121--141. Google Scholar
- Lowry, E. S. and Medlock, C. W. 1969. Object code optimization. Comm. ACM 12, 1, 13--22. Google Scholar
- Muth, R., Debray, S. K., Watterson, S. A., and De Bosschere, K. 2001. alto: a link-time optimizer for the compaq alpha. Software---Practice and Experience 31, 1, 67--101. Google Scholar
- Prosser, R. T. 1959. Applications of Boolean matrices to the analysis of flow diagrams. In Proceedings of the Eastern Joint Computer Conference. Spartan Books, New York, 133--138.Google Scholar
- Purdom, P. W. and Moore, E. F. 1972. Immediate predominators in a directed graph {H}. Comm. ACM 15, 8, 777--778. Google Scholar
- Ramalingam, G. 2002. On loops, dominators, and dominance frontiers. ACM Trans. Program. Lang. Syst. 24, 5, 455--490. Google Scholar
- Triantafyllis, S., Bridges, M., Raman, E., Ottoni, G., and August, D. 2006. A framework for unrestricted whole-program optimization. In PLDI '06: Proceedings of the 2006 ACM SIGPLAN Conference on Programming Language Design and Implementation. ACM Press, New York, NY, 61--71. Google Scholar
- Wall, D. W. 1986. Global register allocation at link time. In SIGPLAN '86: Proceedings of the 1986 SIGPLAN Symposium on Compiler construction. ACM Press, New York, NY, 264--275. Google Scholar
Index Terms
A practical interprocedural dominance algorithm
Recommendations
Interprocedural pointer alias analysis
We present practical approximation methods for computing and representing interprocedural aliases for a program written in a language that includes pointers, reference parameters, and recursion. We present the following contributions: (1) a framework ...
Precise and efficient integration of interprocedural alias information into data-flow analysis
Data-flow analysis is a basis for program optimization and parallelizing transformations. The mechanism of passing reference parameters at call sites generates interprocedural aliases which complicate this analysis. Solutions have been developed for ...
Interprocedural data flow analysis in Soot using value contexts
SOAP '13: Proceedings of the 2nd ACM SIGPLAN International Workshop on State Of the Art in Java Program analysisAn interprocedural analysis is precise if it is flow sensitive and fully context-sensitive even in the presence of recursion. Many methods of interprocedural analysis sacrifice precision for scalability while some are precise but limited to only a ...






Comments