Abstract
The Polaris Program Manipulation System is a production quality tool for source-to-source transformations and complex analysis of Fortran code. In this paper, we describe the motivations for and the implementation of Polaris' internal representation (IR). The IR is composed of a basic abstract syntax tree on top of which exist many layers of functionality. This functionality allows complex operations on the data structure. Further, the IR is designed to enforce the consistency of the internal structure in terms of both the correctness of the data structures and the correctness of the Fortran code being manipulated. In addition, operations on the IR result in the automatic updating of affected data structures such as flow information. We describe low the system's philosophies developed from its predecessor, the Delta prototyping system, and how they were implemented in Polaris' IR. We also provide a number of examples of using the Polaris system.
Similar content being viewed by others
References
W. Blume, R. Eigenmann, K. Faigin, J. Grout, J. Hoeflinger, D. Padua, P. Petersen, W. Pottenger, L. Rauchwerger, P. Tu, and S. Weatherford, Polaris, A New Generation Parallelizing Compiler for MPPs.Seventh Annual Workshop on Languages and Compilers for Parallel Computing, Ithaca, NY 1994. CSRD Report No. 1306, University of Illinois, Urbana-Champaign, Center for Supercomputing Research and Development (June 1993).
Rudolf Eigenmann, Jay Hoeflinger, Greg Jaxon, Zhiyuan Li, and David Padua, Restructuring Fortran Programs for Cedar.Proc. of the 1991 Int'l. Conf. on Parallel Processing (August 1991).
David A. Padua, The Delta Program Manipulation system—Preliminary design. CSRD Report No. 808, University of Illinois, Urbana-Champaign, Center for Supercomputing Research and Development (June 1989).
Paul M. Petersen, Greg P. Jaxon, and David A. Padua, A Gentle Introduction to Delta, University of Illinois, Urbana-Champaign, Center for Supercomputing Research and Development (June 1992).
J. T. Schwartz, R. B. K. Dewar, E. Dubinsky, and E. Schonberg,Programming with Sets: An Introduction to Setl, Springer-Verlag (1986).
F. Bodin, P. Beckman, D. Gannon, S. Narayana, and S. Srinivas, SAGE++: A Class Library for Building Fortran 90 and C++ Restructuring Tools—DRAFT 0.1.1993.
Kuck and Associates, KAP for SPARC Fortran User's Guide. Beta Version 1.0, Document #9308006 (1993).
Peng Tu and David Padua, Automatic Array Privatization. In Utpal Banerjee, David Gelernter, Alex Nicolau, and David Padua, (eds.),Proc. Sixth Workshop on Languages and Compilers for Parallel Computing, Lectures Notes in Computer Science, Portland, Oregon, Springer-Verlag768:500–521 (August 1993).
W. Blume and R. Eigenmann, An overview of symbolic analysis techniques needed for the effective parallelization of the PERFECT benchmarks.Proc. of the 1995 Int'l. Conf. on Parallel Processing. CSRD Report No. 1332, University of Illinois, Urbana-Champaignn, Center for Supercomputing, Research and Development (January 1994).
Stephen A. Weatherford, High-Level Pattern-matching Extensions to C++ for Fortran Program Manipulation in Polaris. CSRD Report No. 1350, University of Illinois, Urbana-Champaign, Center for Supercomputing Research and Development (May 1994).
J. Ferrante, K. Ottenstein and J. Warren, The Program Dependence Graph and Its Use in Optimization.ACM Trans. on Programming Languages and Systems 9(1):319–349 (1987).
Author information
Authors and Affiliations
Additional information
The research described was supported by Army contract DABT63-92-C-0033. This work is not necessarily representative of the positions or policies of the Army or the Government.
Rights and permissions
About this article
Cite this article
Faigin, K.A., Weatherford, S.A., Hoeflinger, J.P. et al. The polaris internal representation. Int J Parallel Prog 22, 553–586 (1994). https://doi.org/10.1007/BF02577778
Received:
Issue Date:
DOI: https://doi.org/10.1007/BF02577778