Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article
Free access

Efficient interprocedural analysis for program parallelization and restructuring

Published: 01 January 1988 Publication History

Abstract

An approach to efficient interprocedural analysis for program parallelization and restructuring is presented. Such analysis is needed for parallelizing loops which contain procedure calls. Our approach captures call effect on data dependencies by propagating the precise information of array subscripts from the called procedure. This allows the optimizing compiler to choose an efficient yet precise data dependence test scheme depending on the complexity of array reference patterns. The other existing methods do not provide such flexibility, hence may suffer from either imprecision or inefficiency. The paper also discusses usage of classical summary information in several important transformations for program parallelization. Experimental results are reported.

References

[1]
A. V. Aho, J. D. Ullman, Principle of Compiler Deaign, Addison-Wesley Publishing Company, 1977.
[2]
J. R. Allen find K. Kennedy, "Automatic Translation of Fortran Programs to Vector Form," Dept. of Computer Science, Rice University, Houston, TX, Rice Comp TR84- 9, July, 1984.
[3]
F. E. Allen, "Interprocedural Data Flow Analysis," Proceeding8 of the }}PIP Congre~8, North Holland, 1974.
[4]
J.R. Allen, 'Dependence Analysis for Subscripted Variables And Its Application to Program Transformations," Ph.D. Thesis, Department of Mathematical Sciences, Rice University, Houston, TX, April 1983.
[5]
U. Banerjee, "Data Dependence in Ordinary Programs," Department of Computer Sciences, University of Illinois at Urbana- Champaign, Rpt. No. 76-837, Nov. 1976.
[6]
U. Banerjee, "Speedup of Ordinary Programs," Ph.D Thesis, Department of Computer Sciences, University of Illinois at Urbana-Champaign, Rpt. No. UIUCDCS- R-79-989, 1979.
[7]
J. Banning, "A Method for Determining the Side Effects of a Procedure Call's," Ph.D. Dissertation, Stanford University, Aug. 1978.
[8]
J. Barth, "A Practical Interprocedural Data Flow Analysis Algorithm," CA CM Vol. 21. No. 9, Sept. 1978, pp. 724-736. Body," SlGPLAN Notices, vol. 14, No. 8, 1979.
[9]
M. Burke and R. Cytron, "Interprocedural Dependence Analysis and Parallelisation," Proc. of the A CM 8IGPLAN'86 Symposium on Compiler Construction. A CM SIGPLAN Not. 21, 7(July 1986), 162-175.
[10]
D. Callahan, K. Cooper, K. Kennedy, and L. Torczan, "Interprocedural Constant Propagation," Proceedings of the A CM 8IGPLAN "86 Sg/mp. on Compiler Construction, SIGPLAN Notices, Vol. 21, No. 6, June 1986.
[11]
P. Cousot, N. Halbwacks, "Automatic Discovery of Linear Restraints among Variables of a Program," Conf. Record of the $-th Annual A CA{ Syrup. on Principle of Program Languages, 1978.
[12]
K.D. Cooper, K. Kennedy, "Efficient Computation of Flow Insensitive Interprocedural Summary Information," Proceedings of the A CA{ BIGPLAN '84 Symp. on Compiler Conatruetion, SIGPLAN Notices, Vol. 19, No. 6, June 1984.
[13]
K. Cooper, "Analyzing Aliases of Reference Formal Parameters," Conf. Record of the l~-th Annual A CM Syrup. on Principle of Program Languages, 1985, pp281-290.
[14]
J. Dongarra, J. Bunch, C. Moler, and G. W. Stewart, LINPA CK Users" Guide, SIAM, Philadelphia, 1979. Spring-Verlag, Heidelberg, 1976.
[15]
S. Graham and M. Wegman, "A Fast and Usually Linear Algorithm for Global Flow Analysis," ?ACM Vol. 23, No. 1, Jan. 1976, pp. 172-202.
[16]
M.S. Hecht, Flow AnalyM8 of Computer Programs, North Holland, 1977.
[17]
C. A. Huson, "An In-Line Subroutine Expander for Parafrs~e," M.S. Thesis, Dec. 1982, Univ. of illinois at Urbana-Champaign, Report No. UIUCDCS-R-82-1118.
[18]
J. Kam and J. Ullman, "Global Data Flow Analysis and Iterative Algorithms," YA CM, Vol. 23, No. 1, Jan. 1976, pp. 158-171.
[19]
D. Kuck, R. Kuhn, B. Leasure and M. Wolfe, "The Structure of an Advanced Vectoriser for Pipelined Processors," Proc. of COMPSAC 80, The 4th Int7 Computer Software and Applicationa Conf., pp. 709-715, Oct. 1980.
[20]
D. Kuck, R. Kuhn, D. Padua, B. Leasure and M. Wolfe, "Dependence Graphs and Compiler Organizations," Proc. of the 8fh A CM Syrup. on Principles of Programming Languages (POPL), Willismsburgh, VA, pp. 207-218, Jan. 1981.
[21]
D. Kuek, "X Survey of Parallel Machine Orgsniation And Programming," A CM Computing Surveys, Vol. 9, No. 1, Mar. 1977, pp. 29-60.
[22]
D. Kuck, The Structure of Computers and Computation, John Wiley and Son, 1978.
[23]
D. Kuck, "Automatic Program Restructuring for High-Speed Computations," Proc. of CONPAR 81, Conf. on Analyzing Problem- Claues and Programming for Parallel Computing, Nurnberg, F. R. Germany, ed. by W. Handler, June 1981 (Springer-Verlag).
[24]
R. Kuhn, "Optimization And Inf~rconnection Complexity for: Parallel Processors, Single- Stage Networks, And Decision Trees," Ph.D. Thesis, Department of Computer Science, University of Illinois st Urbana-Champaign, Rpt. No. UIUCDCS-R-80-1009, Feb. 1980.
[25]
Z. Li and P. C. Yew, "Interprocedural Analysis for Parallel Computing," To appear in Proe. of lnt'l Conference on Parallel Processing, 1988.
[26]
Z. Li and P. C. Yew, '~Program Parallelization with InterprocedurM Analysis," To appear in the special issue of Journal of Supercomputing dedicated to the 1988 Workshop on Programming Languages and Compilers for Parallel Computing, 1988.
[27]
E. Myers "A Precise And Efficient Algorithm for Determining Existential Summary Data Flow Information," Tech. Rpt. CU-CS-175- 80, University of Colorado, Boulder, Colo., March 1980.
[28]
E. Myers "A Precise Inter-Procedural Data Flow Algorithm," Conf. Record of the 8-th Annual A CM Syrup. on Principle of Program Languages, 1981, pp219-230.
[29]
D. Padua, D. Kuck, and D. Lswrie, 'Nigh- Speed Multiproceesors and Compilation Techniques," IEF, E Trans. Computers, Vol. C-29, No. 9, Sept. 1980, pp. 763-776.
[30]
Parafra.~e Analyzer Documents, Center for Supercomputing Research and Development, Univ. of Illinois st Urbana-Champaign, 1985.
[31]
R. Triolet, "Contribution a la parallelization automatique de programmes Fortran Comportant dee appels de procedure," Ph.D Thesis, institut de Programmation, Universite Pierre et Marie Curie (Paris VI), Paris, France 1984.
[32]
R. Triolet, "Interprocedural Analysis for Program Restructuring with Parafrase," CSRD Rpt. No. 538, University of Illinois at Urbana-Champaign, Dec. 1985.
[33]
R. Triolet, F. Irigoin, P. Feautrier, 'Direct ParMlelization of CALL Statements," Proceedings of the A CA{ SIGPLAN '86 Syrup. on Compiler Construction, SIGPLAN Notices, Vol. 21, No. 6, June 1986.
[34]
M. Wegman, F. Zadeck, "Constant Propagation with Conditional Branches," Conf. Record of the l~-th Annual A CM Syrup. on Principle of Program Languages, 1985, pp291-299.
[35]
M. Wolfe and U. Banerjee, "Data Dependence for Parallelism Detection," paper prepared for publication.
[36]
M. J. Wolfe, "Techniques for Improving the Inherent Parallelism in Programs," M.S. Thesis, University of Illinois at Urbana- Champaign, Rpt No. UIUCDCS-R-78--929, July 1978.
[37]
M. J. Wolfe, "Optimizing Supercompilers for Supercomputers," Ph.D. thesis, Univ. of illinois at Urbana-Champaign, DCS Report No. UIUCDCS-R-82-1105, Oct. 1982.
[38]
M. J. Wolfe, "Advanced Loop Interchange," Proe. of 1986 Int 7 Conf. on Parallel Processing, pp. 538-543, 1986.

Cited By

View all
  • (2006)Interprocedural analysis and optimizationCommunications on Pure and Applied Mathematics10.1002/cpa.316048090348:9(947-1003)Online publication date: 18-Oct-2006
  • (2005)FIAT: A framework for interprocedural analysis and transformationLanguages and Compilers for Parallel Computing10.1007/3-540-57659-2_30(522-545)Online publication date: 31-May-2005
  • (1992)Efficient call graph analysisACM Letters on Programming Languages and Systems10.1145/151640.1516431:3(227-242)Online publication date: 1-Sep-1992
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 January 1988
Published in SIGPLAN Volume 23, Issue 9

Check for updates

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)44
  • Downloads (Last 6 weeks)13
Reflects downloads up to 06 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2006)Interprocedural analysis and optimizationCommunications on Pure and Applied Mathematics10.1002/cpa.316048090348:9(947-1003)Online publication date: 18-Oct-2006
  • (2005)FIAT: A framework for interprocedural analysis and transformationLanguages and Compilers for Parallel Computing10.1007/3-540-57659-2_30(522-545)Online publication date: 31-May-2005
  • (1992)Efficient call graph analysisACM Letters on Programming Languages and Systems10.1145/151640.1516431:3(227-242)Online publication date: 1-Sep-1992
  • (1990)Key references in distributed computer systems 1959–1989Distributed Computer Systems10.1016/B978-0-408-02938-4.50016-4(193-295)Online publication date: 1990
  • (2012)Compiler-Assisted Data Distribution and Network Configuration for Chip MultiprocessorsIEEE Transactions on Parallel and Distributed Systems10.1109/TPDS.2011.27923:11(2058-2066)Online publication date: 1-Nov-2012
  • (2012)A Compiler-Based Tool for Array Analysis in HPC ApplicationsProceedings of the 2012 41st International Conference on Parallel Processing Workshops10.1109/ICPPW.2012.63(454-463)Online publication date: 10-Sep-2012
  • (2010)Compiler-assisted data distribution for chip multiprocessorsProceedings of the 19th international conference on Parallel architectures and compilation techniques10.1145/1854273.1854335(501-512)Online publication date: 11-Sep-2010
  • (2005)Interprocedural analysis for parallelizationLanguages and Compilers for Parallel Computing10.1007/BFb0014192(61-80)Online publication date: 9-Jun-2005
  • (2005)Current status of the SUIF research projectThe Data Parallel Programming Model10.1007/3-540-61736-1_43(65-78)Online publication date: 4-Jun-2005
  • (2005)Uniqueness and completeness analysis of array comprehensionsStatic Analysis10.1007/3-540-58485-4_41(193-207)Online publication date: 8-Jun-2005
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Get Access

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media