Abstract
Miprac is a parallelizing C, Lisp and Fortran compiler. We present its workings by following a C program as it progresses through the modules of the compiler. Miprac makes use of a simple, operational intermediate form, called MIL. Dependence analysis and memory management are performed by a whole-program abstract interpretation of MIL. We present the intermediate form, and illustrate the analysis and transformation of the example program as it becomes a parallel object code for Cedar.
This is a preview of subscription content, log in via an institution.
Preview
Unable to display preview. Download preview PDF.
References
Abramsky, S., and Hankin, C. Abstract Interpretation of Declarative Languages. Ellis Horwood Books in Computing Science. Halsted Press (John Wiley and Sons), 1987, ch. An introduction to abstract interpretation, pp. 9–31.
Ammarguellat, Z. An algorithm for control-flow normalization and its complexity. IEEE TOSE 18, 3 (March 1992), 237–251.
Banning, J. An efficient way to find the side effects of procedure calls and the aliases of variables. In 6th ACM Symposium on Principles of Programming Languages (1979).
Bodin, F. Preliminary report: Data structure analysis in c programs.
Chase, D. R., Wegman, M., and Zadeck, F. K. Analysis of pointers and structures. In ACM SIGPLAN '90 Conference on Programming Language Design and Implementation (1990), pp. 296–310.
Deutsch, A. A storeless model of aliasing and its abstractions using finite representations of right-regular equivalence relations. In Proceedings of the IEEE 1992 International Conference on Computer Languages (Apr. 1992), IEEE Press.
Gifford, D. K., Jouvelot, P., Lucassen, J. M., and Sheldon, M. A. Fx-87 reference manual. Tech. Rep. MIT/LCS/TR-407, Massachusetts Institute of Technology, Jan. 1987.
Guarna, V. A. Analysis of c programs for parallelization in the presence of pointers. Tech. Rep. 695, Center for Supercomputing Research and Development, University of Illinois at Urbana-Champaign, 1987.
Harrison III, W. The interprocedural analysis and automatic parallelization of scheme programs. Lisp and Symbolic Computation: an International Journal 2, 3/4 (1989), 179–396.
Harrison III, W. Generalized iteration space and the parallelization of symbolic programs. In Proceedings of the Workshop on Computation of Symbolic Languages for Parallel Computers (Oct. 1991), I. Foster and E. Tick, Eds., Argonne National Laboratory. ANL-91/34.
Hendren, L., and Nicolau, A. Parallelizing programs with recursive data structures. IEEE Transactions on Parallel and Distributed Systems (Jan. 1990).
Horowitz, S., Pfeiffer, P., and Reps, T. Dependence analysis for pointer variables. In Proceedings of the ACM SIGPLAN 1989 Symposium on Programming Language Design and Implementation (June 1989).
Jones, N. D., and Muchnick, S. S. A flexible approach to interprocedural data flow analysis of programs with recursive data structures. In Conference Record of the Ninth ACM Symposium on Principles of Programming Languages (Jan. 1982), pp. 66–74.
Kuck, D., Davidson, E., Lawrie, D., and Sameh, A. Parallel supercomputing today and the cedar approach. In Experimental Parallel Computing Architectures, J. J. Dongarra, Ed. Elsevier Science Publishers B.V. (North-Holland), New York, NY, 1987, pp. 1–20.
Landi, W., and Ryder, B. A safe approximate algorithm for interprocedural pointer aliasing. Tech. Rep. LCSR-TR-168, Laboratory for Computer Science Research, Rutgers University, Sept. 1991.
Larus, J., and Hilfunger, P. Detecting conflicts between structure accesses. In Proceedings of the Sigplan'88 — Conference on Programming Language Desing and Implementation (1988), pp. 21–34.
L.J. Hendren J. Hummel, A. N. Abstractions for recursive pointer data structures: Improving the analysis and transformations of imperative programs. In ACM Sigplan Conference on Programming Language Design and Implementation (1992).
Lucasses, J., and D.K.Gifford. Polymorphic effect systems. Proceedings 15th POPL (1988), 47–57.
Neirynck, A. Static Analysis of Aliasing and Side Effects in Higher-Order Languages. PhD thesis, Cornell University, January 1988.
Padua, D., and Wolfe, M. J. Advanced compiler optimizations for supercomputers. Communications of the ACM 29, 12 (Dec. 1986).
Polychronopoulos, C., Girkar, M., Haghighat, M., Lee, C., Leung, B., and Schouten, D. Parafrase-2: An environment for parallelizing, partitioning, synchronizing, and scheduling programs on multiprocessors. In Proceedings of the 1989 International Conference on Parallel Processing (Aug. 1989).
Reynolds, J. C. Syntactic control of interference. In 5th ACM Symposium on Principles of Programming Languages (1978).
Schnabel, R. Determining feasibility of a set of nonlinear inequality constraints. In Mathematical Programming Study 16. North-Holland Publishing Company, 1982, pp. 137–146.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1993 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Harrison, W., Ammarguellat, Z. (1993). A program's eye view of Miprac. In: Banerjee, U., Gelernter, D., Nicolau, A., Padua, D. (eds) Languages and Compilers for Parallel Computing. LCPC 1992. Lecture Notes in Computer Science, vol 757. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-57502-2_68
Download citation
DOI: https://doi.org/10.1007/3-540-57502-2_68
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-57502-3
Online ISBN: 978-3-540-48201-7
eBook Packages: Springer Book Archive