Skip to main content

An Overview of the Open Research Compiler

  • Conference paper
Languages and Compilers for High Performance Computing (LCPC 2004)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 3602))

Abstract

The Open Research Compiler (ORC), jointly developed by Intel Microprocessor Technology Labs and the Institute of Computing Technology at Chinese Academy of Sciences, has become the leading open source compiler on the ItaniumTM Processor Family (IPF, previously known as IA-64). Since its first release in 2002, it has been widely used in academia and industry worldwide as a compiler and architecture research infrastructure and as code base for further development. In this paper, we present an overview of the design of the major components in ORC, especially those new features in the code generator. We discuss the development methodology that is important to achieving the objectives of ORC. Performance comparisons with other IPF compilers and a brief summary of the research work based on ORC are also presented.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Ball, T., Larus, J.: Optimally profiling and tracing programs. ACM Transactions on Programming Languages and Systems 16(3), 1319–1360 (1994)

    Article  Google Scholar 

  2. Ball, T., Larus, J.: Efficient path profiling. In: Proc. 29th Annual Intl. Symp. on Microarchitecture (December 1996)

    Google Scholar 

  3. Berkeley Unified Parallel C (UPC) Project, http://upc.lbl.gov

  4. Berstein, D., Rodeh, M.: Global Instruction Scheduling for Superscalar Machines. In: Proc. of SIGPLAN 1991 Conference on Programming Language Design and Implementation (1991)

    Google Scholar 

  5. Calder, B., Feller, P., Eustance, A.: Value Profiling. In: Proc. 30th Annual Intl. Symp. on Microarchitecture (December 1997)

    Google Scholar 

  6. Chen, D., Liu, L., Fu, C., Yang, S., Wu, C., Ju, R.: Efficient Resource Management during Instruction Scheduling for the EPIC Architecture. In: Proc. of the 12th International Conference on Parallel Architectures and Compilation Techniques, New Orleans (September 2003)

    Google Scholar 

  7. Chow, F., Chan, S., Kennedy, R., Liu, S., Lo, R., Tu, P.: A New Algorithm for Partial Redundancy Elimination Based on SSA Form. In: Proc. of SIGPLAN 1997 Conf. on Programming Language Design and Implementation (May 1997)

    Google Scholar 

  8. Chow, F., Lo, R., Liu, S., Chan, S., Streich, M.: Effective Representation of Aliases and Indirect Memory Operations in SSA Form. In: Proc. of 6th Int’l Conf. on Compiler Construction (April 1996)

    Google Scholar 

  9. Du, Z., Lim, C., Li, X., Yang, C., Zhao, Q., Ngai, T.: A Cost-Driven Compilation Framework for Speculative Parallelization of Sequential Programs. In: Proc. of the ACM SIGPLAN 2004 Conference on Programming Language Design and Implementation (2004)

    Google Scholar 

  10. Eichenberger, A., Davidson, E.: Register allocation for predicated code. In: Proc. of the 28th Annual International Symposium on Microarchitecture (December 1995)

    Google Scholar 

  11. Faraboschi, P., Fisher, J., Young, C.: Instruction Scheduling for Instruction Level Parallel Processors. Proceedings of the IEEE 89(11) (November 2001)

    Google Scholar 

  12. Fisher, J.: Trace scheduling: A Technique for Global Microcode Compaction. IEEE Trans. on Computers 7 (1981)

    Google Scholar 

  13. Gao, G., Amaral, J., Dehnert, J., Towle, R.: The SGI Pro64 Compiler Infrastructure. In: 2000 International Conference on Parallel Architectures and Compilation Techniques, Tutorial (October 2000)

    Google Scholar 

  14. Hank, R.: Region Based Compilation, Doctoral thesis, University of Illinois at Urbana Champaign (1996)

    Google Scholar 

  15. Havanki, W.: Treegion Scheduling for VLIW Processors, MS Thesis, Dept.of Electrical and Computer Engineering, North Carolina State University, Raleigh, NC (1997)

    Google Scholar 

  16. University of Houston, Dragon Analysis Tool, http://www2.cs.uh.edu/~dragon

  17. Hwu, W., Mahlke, S., Chen, W., Chang, P., Warter, N., Bringmann, R., Ouellette, R., Hank, R., Kiyohara, T., Haab, G., Holm, J., Lavery, D.: The Superblock: An Effective Technique for VLIW and Superscalar Compilation. Journal of Supercomputing 7(1,2), 229–248 (1993)

    Article  Google Scholar 

  18. Intel, Intel Itanium Architecture Software Developer’s Manual, ?vol. 1 (October 2002)

    Google Scholar 

  19. Intel, Itanium Processor Microarchitecture Reference (March 2000)

    Google Scholar 

  20. Intel, Itanium Microarchitecture Knobs API Programmer’s Guide (2001)

    Google Scholar 

  21. Intel, ICT.: The Open Research Compiler Project, http://ipf-orc.sourceforge.net

  22. Johnson, R., Schlansker, M.: Analysis technique for predicated code. In: Proceedings of the 29th International Symposium on Microarchitecture (December 1996)

    Google Scholar 

  23. Ju, R., Chan, S., Ngai, T., Wu, C., Lu, Y., Zhang, J.: Open Research Compiler (ORC) 2.0 and Tuning Performance on Itanium, Micro-35 Tutorial, Istanbul, Turkey, November 19 (2002)

    Google Scholar 

  24. Ju, R., Nomura, K., Mahadevan, U., Wu, L.: A Unified Compiler Framework for Control and Data Speculation. In: 2000 International Conference on Parallel Architectures and Compilation Techniques (October 2000)

    Google Scholar 

  25. Kennedy, R., Chan, S., Liu, S., Lo, R., Tu, P., Chow, F.: Partial Redundancy Elimination in SSA Form. TOPLAS 21(3) (May 1999)

    Google Scholar 

  26. Lin, J., Chen, T., Hsu, W., Yew, P., Ju, R., Ngai, T., Chan, S.: A Compiler Framework for Speculative Analysis and Optimizations. In: Proc. of the ACM SIGPLAN 2003 Conference on Programming Language Design and Implementation (2003)

    Google Scholar 

  27. Liu, Y., Zhang, Z., Qiao, R., Ju, R.: A Region-Based Compilation Infrastructure. In: Proc. of the 7th Workshop on Interaction between Compilers and Computer Architectures (2003)

    Google Scholar 

  28. Lo, R., Chow, F., Kennedy, R., Liu, S., Tu, P.: Register Promotion by Sparse Partial Redundancy Elimination of Loads and Stores. In: Proc. of SIGPLAN 1998 Conf. on Programming Language Design and Implementation (June 1998)

    Google Scholar 

  29. Mahlke, S., Chen, W., Hwu, W., Rau, B., Schlansker, M.: Sentinel Scheduling for Superscalar and VLIW Processors. In: Proc. of the 5th Int’l Conference on Ar-chitectural Support for Programming Languages and Operating Systems (October 1992)

    Google Scholar 

  30. Mahlke, S., Lin, D., Chen, W., Hank, R., Bringmann, R.: Effective Compiler Support for Predicted Execution Using the Hyperblock. In: Proceedings of 25th international symposium of Microarchitecture (1992)

    Google Scholar 

  31. Rice University, Open64 Project, http://www.hipersoft.rice.edu/open64

  32. SGI.: WHIRL Intermediate Language Specification, http://open64.sourceforge.net

  33. SGI, Standard Template Library Programmer’s Guide, http://www.sgi.com/tech/stl

  34. Tsinghua University, ORC-OpenMP Project, http://sourceforge.net/projects/orc-openmp

  35. Wolf, M., Maydan, D., Chen, D.: Combining Loop Transformations Considering Caches and Scheduling. In: MICRO-29 (December 1996)

    Google Scholar 

  36. Wu, Y.: Efficient Discovery of Regular Stride Patterns In Irregular Programs and Its Use in Compiler Prefetching. In: PLDI 2002, Berlin, Germany (June 2002)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2005 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Wu, C. et al. (2005). An Overview of the Open Research Compiler. 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_3

Download citation

  • DOI: https://doi.org/10.1007/11532378_3

  • 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)

Publish with us

Policies and ethics