Abstract
This paper presents an overview of the SUIF (Stanford University Intermediate Format) research project and its current status. SUIF is a fully-functional research compiler that includes algorithms to analyze pointer aliases, find parallelism in outer loops across procedure calls, and optimize for parallelism and locality.
This research was supported in part by the ARPA contract F30602-95-C-0098, an NSF Young Investigator Award, an NSF CISE postdoctoral fellowship, and fellowships from AT & T Bell Laboratories, DEC Western Research Laboratory, and Intel Corporation.
Preview
Unable to display preview. Download preview PDF.
References
J. M. Anderson, S. P. Amarasinghe, and M. S. Lam. Data and computation transformations for multiprocessors. In Proceedings of the Fifth ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, pages 166–178, Santa Barbara, CA, July 1995.
S. P. Amarasinghe, J. M. Anderson, C. S. Wilson, S.-W. Liao, B. R. Murphy, R. S. French, M. S. Lam, and M. W. Hall. Multiprocessors from a software perspective. IEEE Micro, June 1996.
J. M. Anderson and M. S. Lam. Global optimizations for parallelism and locality on scalable parallel machines. In Proceedings of the SIGPLAN '93 Conference on Programming Language Design and Implementation, pages 112–125, Albuquerque, NM, June 1993.
B. Blume, R. Eigenmann, K. Faigin, J. Grout, Jay Hoeflinger, D. Padua, P. Petersen, B. Pottenger, L. Rauchwerger, P. Tu, and S. Weatherford. Polaris: The next generation in parallelizing compilers. In Proceedings of the Seventh Annual Workshop on Languages and Compilers for Parallel Computing, August 1994.
B. Bixby, K. Kennedy, and U. Kremer. Automatic data layout using 0–1 integer programming. In Proceedings of the International Conference on Parallel Architectures and Compilation Techniques (PACT), pages 111–122, Montreal, Canada, August 1994.
Jong-Deok Choi, Michael Burke, and Paul Carini. Efficient flow-sensitive interprocedural computation of pointer-induced aliases and side effects. In Proceedings of the Twentieth Annual ACM Symposium on the Principles of Programming Languages, pages 232–245, January 1993.
B. Creusillet and F. Irigoin. Interprocedural array region analyses. In Proceedings of the 8th International Workshop on Languages and Compilers for Parallel Computing. Springer-Verlag, August 1995.
M. Cierniak and W. Li. Unifying data and control transformations for distributed shared memory machines. Technical Report TR-542, Department of Computer Science, University of Rochester, November 1994.
S. Carr, K. S. McKinley, and C.-W. Tseng. Compiler optimizations for improving data locality. In Proceedings of the Sixth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS-VI), pages 252–262, San Jose, CA, October 1994.
David R. Chase, Mark Wegman, and F. Kenneth Zadeck. Analysis of pointers and structures. In Proceedings of the ACM SIGPLAN'90 Conference on Programming Language Design and Implementation, pages 296–310, June 1990.
Alain Deutsch. Interprocedural may-alias analysis for pointers: Beyond k-limiting. In Proceedings of the ACM SIGPLAN'94 Conference on Programming Language Design and Implementation, pages 230–241, June 1994.
Maryam Emami, Rakesh Ghiya, and Laurie J. Hendren. Context-sensitive interprocedural points-to analysis in the presence of function pointers. In Proceedings of the ACM SIGPLAN'94 Conference on Programming Language Design and Implementation, pages 242–256, June 1994.
C. W. Fraser and D. R. Hanson. A retargetable compiler for ANSI C. SIGPLAN Notices, 26(10), October 1991.
R. French, editor. Proceedings of the First SUIF Workshop. January 1996.
M. Gupta and P. Banerjee. Demonstration of automatic data partitioning techniques for parallelizing compilers on multicomputers. IEEE Transactions on Parallel and Distributed Systems, 3(2): 179–193, March 1992.
D. Gay, S. Feldman, M. Maimone, and N. Schryer. f2c. Available via netlib@research.att.com.
M.W. Hall, S.P. Amarasinghe, B.R. Murphy, S. Liao, and M.S. Lam. Detecting coarse-grain parallelism using an interprocedural parallelizing compiler. In Proceedings of Supercomputing '95, December 1995.
W. Ludwell Harrison III. The interprocedural analysis and automatic parallelization of Scheme programs. Lisp and Symbolic Computation, 2(3):176–396, October 1989.
M. Hind, M. Burke, P. Carini, and S. Midkiff. An empirical study of precise interprocedural array analysis. Scientific Programming, 3(3):255–271, 1994.
High Performance Fortran Forum. High Performance Fortran language specification. Scientific Programming, 2(1–2):1–170, 1993.
P. Havlak and K. Kennedy. An implementation of interprocedural bounded regular section analysis. IEEE Transactions on Parallel and Distributed Systems, 2(3):350–360, July 1991.
S. Hiranandani, K. Kennedy, and C.-W. Tseng. Compiling Fortran D for MIMD distributed-memory machines. Communications of the ACM, 35(8):66–80, August 1992.
Laurie J. Hendren and Alexandra Nicolau. Parallelizing programs with recursive data structures. IEEE Transactions on Parallel and Distributed Systems, 1(1):35–47, January 1990.
F. Irigoin, P. Jouvelot, and R. Triolet. Semantical interprocedural parallelization: An overview of the PIPS project. In Proceedings of the 1991 ACM International Conference on Supercomputing, Cologne, Germany, June 1991.
F. Irigoin. Interprocedural analyses for programming environments. In NSF-CNRS Workshop on Evironments and Tools for Parallel Scientific Programming, September 1992.
F. Irigoin and R. Triolet. Supernode partitioning. In Proceedings of the Fifteenth Annual ACM Symposium on the Principles of Programming Languages, San Diego, CA, January 1988.
Y. Ju and H. Dietz. Reduction of cache coherence overhead by compiler data layout and loop transformation. In U. Banerjee, D. Gelernter, A. Nicolau, and D. Padua, editors, Languages and Compilers for Parallel Computing, Fourth International Workshop, pages 344–358, Santa Clara, CA, August 1991. Springer-Verlag.
N. Jones and S. Muchnick. Flow analysis and optimization of Lisp-like structures. In S. Muchnick and N. Jones, editors, Program Flow Analysis: Theory and Applications, pages 102–131. Prentice Hall, 1979.
J. Li and M. Chen. The data alignment phase in compiling programs for distributed-memory machines. Journal of Parallel and Distributed Computing, 13(2):213–221, October 1991.
James R. Larus and Paul N. Hilfinger. Detecting conflicts between structure accesses. In Proceedings of the ACM SIGPLAN'88 Conference on Programming Language Design and Implementation, pages 21–34, June 1988.
A. W. Lim and M. S. Lam. Communication-free parallelization via affine transformations. In Proceedings of the 7th Workshop on Languages and Compilers for Parallel Computing, August 1994.
William Landi and Barbara G. Ryder. A safe approximate algorithm for interprocedural pointer aliasing. In Proceedings of the ACM SIG-PLAN'92 Conference on Programming Language Design and Implementation, pages 235–248, June 1992.
Z. Li and P. Yew. Efficient interprocedural analysis for program restructuring for parallel programs. In Proceedings of the ACM SIGPLAN Symposium on Parallel Programming: Experience with Applications, Languages, and Systems (PPEALS), New Haven, CT, July 1988.
T. Mowry, M. S. Lam, and A. Gupta. Design and evaluation of a compiler algorithm for prefetching. In Proceedings of the Fifth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS-V), pages 62–73, Boston, MA, October 1992.
R. Metzger and P. Smith. The CONVEX application compiler. Fortran Journal, 3(1):8–10, 1991.
T. J. Sheffler, R. Schreiber, J. R. Gilbert, and S. Chatterjee. Aligning parallel arrays to reduce communication. In Frontiers '95: The 5th Symposium on the Frontiers of Massively Parallel Computation, pages 324–331, McLean, VA, February 1995.
B. Steensgaard. Points-to analysis in almost linear time. In Proceedings of the 24th Annual ACM Symposium on Principles of Programming Languages, pages 32–41, January 1996.
R. Triolet, F. Irigoin, and P. Feautrier. Direct parallelization of call statements. In Proceedings of the SIGPLAN '86 Symposium on Compiler Construction, SIGPLAN Notices 21(7), pages 176–185. ACM, July 1986.
P. Tu and D. Padua. Automatic array privatization. In Proceedings of the Sixth Workshop on Languages and Compilers for Parallel Computing, Portland, OR, August 1993.
M. E. Wolf and M. S. Lam. A data locality optimizing algorithm. In Proceedings of the SIGPLAN '91 Conference on Programming Language Design and Implementation, pages 30–44, Toronto, Canada, June 1991.
R. P. Wilson and M. S. Lam. Efficient context-sensitive pointer analysis for c programs. In Proceedings of the ACM SIGPLAN'95 Conference on Programming Language Design and Implementation, pages 1–12, June 1995.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1996 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Lam, M.S. (1996). Current status of the SUIF research project. In: Perrin, GR., Darte, A. (eds) The Data Parallel Programming Model. Lecture Notes in Computer Science, vol 1132. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-61736-1_43
Download citation
DOI: https://doi.org/10.1007/3-540-61736-1_43
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-61736-5
Online ISBN: 978-3-540-70646-5
eBook Packages: Springer Book Archive