Abstract
Cetus is a compiler infrastructure for the source-to-source transformation of programs. Since its creation nearly three years ago, it has grown to over 12,000 lines of Java code, been made available publically on the web, and become a basis for several research projects. We discuss our experience using Cetus for a selection of these research projects. The focus of this paper is not the projects themselves, but rather how Cetus made these projects possible, how the needs of these projects influenced the development of Cetus, and the solutions we applied to problems we encountered with the infrastructure. We believe the research community can benefit from such a discussion, as shown by the strong interest in the mini-workshop on compiler research infrastructures where some of this information was first presented.
This material is based upon work supported in part by the National Science Foundation under Grant No. 9703180, 9975275, 9986020, and 9974976.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Banerjee, P., Chandy, J.A., Gupta, M., et al.: The PARADIGM Compiler for Distributed-Memory Multicomputers. IEEE Computer 28(10), 37–47 (1995)
Blume, W., Doallo, R., Eigenmann, R., et al.: Advanced Program Restructuring for High-Performance Computers with Polaris. IEEE Computer, 78–82 (December 1996)
Blume, W., Eigenmann, R., et al.: Restructuring Programs for High-Speed Computers with Polaris. In: ICPP Workshop, pp. 149–161 (1996)
Cook, R.P., LeBlanc, T.J.: A Symbol Table Abstraction to Implement Languages with Explicit Scope Control. IEEE Transactions on Software Engineering 9(1), 8–12 (1983)
Faigin, K.A., Weatherford, S.A., Hoeflinger, J.P., Padua, D.A., Petersen, P.M.: The Polaris Internal Representation. International Journal of Parallel Programming 22(5), 553–586 (1994)
Fischer, C.N., LeBlanc Jr., R.J.: Crafting a Compiler. Benjamin/Cummings (1988)
Forum, O.: OpenMP: A Proposed Industry Standard API for Shared Memory Programming. Technical report (October 1997)
Havlak, P., Kennedy, K.: An implementation of interprocedural bounded regular section analysis. IEEE Transactions on Parallel and Distributed Systems 2(3), 350–360 (1991)
Lee, G.C., Midkiff, S.P.: Ninja 2: Towards fast, portable, numerical Java. In: Workshop on Compilers for Parallel Computing (July 2004)
Lee, S.-I., Johnson, T.A., Eigenmann, R.: Cetus - An Extensible Compiler Infrastructure for Source-to-Source Transformation. In: 16th International Workshop on Languages and Compilers for Parallel Computing (LCPC), October 2003, pp. 539–553 (2003)
Min, S.-J., Basumallik, A., Eigenmann, R.: Optimizing OpenMP programs on Software Distributed Shared Memory Systems. International Journal of Parallel Programming 31(3), 225–249 (2003)
Nguyen, T.N., Gu, J., Li, Z.: An Interprocedural Parallelizing Compiler and Its Support for Memory Hierarchy Research. In: Proceedings of the International Workshop on Languages and Compilers for Parallel Computing (LCPC), pp. 96–110 (1995)
Polychronopoulos, C., Girkar, M.B., et al.: The Structure of Parafrase-2: An Advanced Parallelizing Compiler for C and Fortran. In: Languages and Compilers for Parallel Computing. MIT Press, Cambridge (1990)
Serrano, M.J., Bordawekar, R., Midkiff, S.P., Gupta, M.: Quicksilver: a Quasi-Static Compiler for Java. In: Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), pp. 66–82 (2000)
Sun Microsystems. The Java Virtual Machine Specification
Wilson, R.P., French, R.S., et al.: SUIF: An Infrastructure for Research on Parallelizing and Optimizing Compilers. SIGPLAN Notices 29(12), 31–37 (1994)
Zhou, P., Liu, W., Fei, L., Lu, S., Qin, F., Zhou, Y., Midkiff, S., Torrellas, J.: AccMon: Automatically detecting memory-related bugs via program counter-based invariants. In: Proceedings of the 37th Annual IEEE/ACM International Symposium on Micro-architecture, MICRO 2004 (2004)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2005 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Johnson, T.A. et al. (2005). Experiences in Using Cetus for Source-to-Source Transformations. In: Eigenmann, R., Li, Z., Midkiff, S.P. (eds) Languages and Compilers for High Performance Computing. LCPC 2004. Lecture Notes in Computer Science, vol 3602. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11532378_1
Download citation
DOI: https://doi.org/10.1007/11532378_1
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-28009-5
Online ISBN: 978-3-540-31813-2
eBook Packages: Computer ScienceComputer Science (R0)