This Article 
 Bibliographic References 
 Add to: 
An Implementation of Interprocedural Bounded Regular Section Analysis
July 1991 (vol. 2 no. 3)
pp. 350-360

Regular section analysis, which summarizes interprocedural side effects on subarrays in a form useful to dependence analysis, while avoiding the complexity of prior solutions, is shown to be a practical addition to a production compiler. Optimizing compilers should produce efficient code even in the presence of high-level language constructs. However, current programming support systems are significantly lacking in their ability to analyze procedure calls. This deficiency complicates parallel programming, because loops withcalls can be a significant source of parallelism. The performance of regular section analysis is compared to two benchmarks: the LINPACK library of linear algebra subroutines and the Rice Compiler Evaluation Program Suite (RiCEPS), a set of complete application codes from a variety of scientific disciplines. The experimental results demonstrate that regular section analysis is an effective means of discovering parallelism, given programs written in an appropriately modular programming style.

[1] D. Callahan and K. Kennedy, "Analysis of interprocedural side effects in a parallel programming environment,"J. Parallel Distributed Comput., vol. 5, pp. 517-550, 1988.
[2] D. Calahan, "A global approach to detection of parallelism," Ph.D. dissertation, Comput. Science Department, Rice Univ., Houston, TX, Feb. 1987.
[3] J. R. Allen and K. Kennedy, "PFC: A program to convert Fortran to parallel form," inSupercomputers: Design and Applications. Silver Spring, MD: IEEE Computer Society Press, 1984, pp. 186-205.
[4] K. Kennedy, K. S. McKinley, and C. Tseng, "Interactive parallel programming using the ParaScope editor," Tech. Rep. TR90-137, Dep. Comput. Sci., Rice Univ., Oct. 1990.IEEE Trans. Parallel Distributed Syst., this issue, pp. 329-341.
[5] R. Allen, D. Callahan, and K. Kennedy, "An implementation of interprocedural analysis in a vectorizing Fortran compiler," Tech. Rep. TR86-38, Dep. Comput. Sci., Rice Univ., May 1986.
[6] D. Callahan, K. Cooper, K. Kennedy, and L. Torczan, "Interprocedural constant propagation," inProc. ACM SIGPLAN "86 Symp. Compiler Construction, ACM SIGPLAN Notices, vol. 21, no. 6, June 1986.
[7] F. Allen and J. Cocke, "A catalogue of optimizing transformations," inDesign and Optimization of Compilers, J. Rustin, Ed. Englewood Cliffs, NJ: Prentice-Hall, 1972.
[8] K. Cooper, M. Hall, and L. Torczon, "An experiment with inline substitution," Tech. Rep. TR90-128, Dep. Comput. Sci., Rice Univ., July 1990.Software--Practice and Experience, to be published.
[9] P. Cousot and R. Cousot, "Abstract Interpretation: A Unified Lattice Model for Static Analysis of Programs by Construction or Approximation of Fixpoints,"Proc. Fourth Symp. Principles Programming Languages, ACM, New York, 1977, pp. 238-252.
[10] P. Cousot, "Semantic foundations of program analysis," inProgram Flow Analysis: Theory and Applications, S. S. Muchnick and M. D. Jones, Eds. Englewood Cliffs, NJ: Prentice-Hall, 1981, pp. 303-342.
[11] Z. Li and P.-C. Yew, "Interprocedural analysis and program restructuring for parallel programs," CSRD Rep. 720, Center for Supercomput. Res. Develop., Univ. of Illinois at Urbana-Champaign, Jan. 1988.
[12] Z. Li and P.-C. Yew, "Program parallelization with interprocedural analysis,"J. Supercomput., vol. 2, pp. 225-244, 1988.
[13] J. Banning, "A method for determining the side effects of procedure calls," Ph.D. dissertation, Standford Univ., Aug. 1978.
[14] J. Barth, "An interprocedural data flow analysis algorithm," inConf. Rec. Fourth ACM Symp. Principles Programming Languages, Los Angeles, CA, Jan. 1977.
[15] K. D. Cooper and K. Kennedy, "Efficient computation of flow insensitive interprocedural summary information," inProc. ACM SIGPLAN Symp. Compiler Construction, June 1984, pp. 247-258.
[16] K. Cooper and K. Kennedy, "Interprocedural side-effect analysis in linear time," inProc. ACM SIGPLAN '88 Conf. Program Language Design Implementation, Atlanta, GA, June 1988.
[17] R. Triolet, "Direct Parallelization of Call Statement,"SIGPlan Notices, July 1986, pp. 176-185.
[18] R. Triolet, "Interprocedural analysis for program restructuring with Parafrase," CSRD Rep. 538, Dep. Comput. Sci., Univ. of Illinois at Urbana-Champaign, Dec. 1985.
[19] U. Banerjee, "A direct parallelization of CALL statements--A review," CSRD Rep. 576, Center for Supercomput. Res. Develop., Univ. of Illinois at Urbana-Champaign, Apr. 1986.
[20] M. Burke and R. Cytron, "Interprocedural dependence analysis and parallelization," inProc. SIG-PLAN '86 Symp. Comp. Construct., Palo Alto, CA, June 1986, pp. 162-175.
[21] Z. Li and P.-C. Yew, "Efficient interprocedural analysis for program parallelization and restructuring," inProc. ACM/SIGPLAN Symp. Parallel Programming: Experience with Applications, Languages, and Systems, New Haven, CT, July 1988, pp. 85-99.
[22] V. Balasundaram, "Interactive parallelization of numerical scientific programs," Ph.D. dissertation, Rice Univ., July 1989. Available as Rice COMP TR89-95.
[23] V. Balasundaram and K. Kennedy, "A technique for summarizing data access and its use in parallelism enhancing transformations," inProc. ACM SIGPLAN '89 Conf. Program Language Design and Implementation, Portland, OR, June 1989.
[24] V. Balasundaram, "A mechanism for keeping useful internal information in parallel programming tools: The Data Access Descriptor,"J. Parallel Distributed Comput., vol. 9, pp. 154-170, 1990.
[25] X3J3 Subcommittee of ANSI, "American National Standard for Information Systems Programming Language Fortran: S8(X3.9-198x)," American National Standards Institute, New York, 1989.
[26] M. Karr, "Affine relationships among variables of a program,"Acta Informatica, vol. 6, pp. 133-151, 1976.
[27] J. H. Reif and R. E. Tarjan, "Symbolic program analysis in almost-linear time,"SIAM J. Comput., vol. 11, pp. 81-93, Feb. 1981.
[28] B. K. Rosen, M. N. Wegman, and F. K. Zadeck, "Global value numbers and redundant computations," inConf. Rec. Fifteenth ACM Symp. Principles Programming Languages, San Diego, CA, Jan. 1988, pp. 12-27.
[29] W. H. Harrison, "Compiler analysis of the value ranges for variables,"IEEE Trans. Software Eng., vol. SE-3, pp. 243-250, May 1977.
[30] K.D. Cooper, K. Kennedy, and L. Torczon, "The impact of interprocedure analysis and optimization in theRnenvironment,"ACM Trans. Program. Lang. Syst., vol. 8, no. 4, pp. 491-523, Oct. 1986.
[31] L. Torczon, "Compilation dependences in an ambitious optimizing compiler," Ph.D. dissertation, Dep. Comput. Sci., Rice Univ., May 1985.
[32] J. J. Dongarra, J. R. Bunch, C. B. Moler, and G. W. Stewart,LINPACK User's Guide. Philadelphia, PA: SIAM, 1979.
[33] G. Cybenko et al., "Supercomputer Performance Evaluation and the Perfect Club,"Proc. Int'l Conf. Supercomputing, 1990, CS Press, Order No. 2,056, pp. 254-266.
[34] A. Porterfield, "Software Methods for Improvement of Cache Performance on Supercomputer Applications," PhD thesis, Dept. of Computer Sci., Rice Univ., 1989.
[35] G. Goff, K. Kennedy, and C.-W. Tseng, "Practical Dependence Testing,"Proc. ACM SIGPLAN '91 Conf. Programming Language Design and Implementation, ACM Press, New York, June 1991, pp. 15-29.
[36] Z. Li, private communication, Oct. 1990.
[37] C. M. Rosene, "Incremental dependence analysis," Ph.D. dissertation, Rice Univ., Mar. 1990. Available as Rice COMP TR90-112.
[38] T. Gross and P. Steenkiste, "Structured dataflow analysis for arrays and its use in an optimizing compiler,"Software--Practice and Experience, vol. 20, pp. 133-155, Feb. 1990.

Index Terms:
Index Termsoptimizing compilers; interprocedural bounded regular section analysis; subarrays;dependence analysis; production compiler; high-level language constructs; programmingsupport systems; procedure calls; LINPACK library; linear algebra subroutines; RiceCompiler Evaluation Program Suite; RiCEPS; application codes; scientific disciplines;modular programming style; parallel programming; program compilers; program testing
P. Havlak, K. Kennedy, "An Implementation of Interprocedural Bounded Regular Section Analysis," IEEE Transactions on Parallel and Distributed Systems, vol. 2, no. 3, pp. 350-360, July 1991, doi:10.1109/71.86110
Usage of this product signifies your acceptance of the Terms of Use.