Using the SGI Pro64 Compiler Infrastructure
for R&D on Back-End Optimizations





We present an overview of the Pro64 compiler infrastructure made available as open source software by SGI in May 2000. We also report the experience at the University of Delaware using this infrastructure for academic research. Our target audience is researchers that want to use Pro64; instructors and students of compiler design/optimization; and industry practitioners. This tutorial will be divided into the following topics:
 
 

  • Part I: Overview of the SGI Pro64 compiler infrastructure
  • Part II: The Pro64 code generator design
  • Part III: Case Studies:
  • Minimizing Register Pressure Through Schedule Optimization. 
  • Design and Evaluation of an Induction Pointer Prefetching Algorithm.
  • An Exercise on Retargeting the Pro64 Compiler Infrastructure.

  •  

    José Nelson Amaral is an associated professor at the Department of Computing Science at the University of Alberta, Canada. He was a post-doctoral associate with the Computer Architecture and Parallel Systems Laboratory (CAPSL) at the University of Delaware until June 2000. Amaral received his Ph.D. in Electrical and Computer Engineering from The University of Texas at Austin in 1994 From 1995 to 1997 he was a professor of Electrical Engineering at the Pontificia Universidade Catolica do Rio Grande do Sul, in Porto Alegre, RS, Brazil.
     

    Guang R. Gao received his S.M. and Ph.D. degrees in Electrical Engineering and Computer Science from the Massachusetts Institute of Technology, in 1982 and 1986, respectively. Currently he is a professor at the Department of Electrical and Computer Engineering at the University of Delaware, where he has been the founder and leader of the Computer Architecture and Parallel Systems Lab. Prior to that he has been an associated professor of the School of Computer Science, McGill University, Montreal, Canada. Prof. Gao's main research interests include high-performance computing systems and architectures, programming language design and implementation, parallel programming and applications.

    Jim Dehnert received his BS in Mathematics at Stanford University, and his Ph.D. in Applied Mathematics (formal language theory) at the University of California at Berkeley in 1983.  He has worked on commercial compilers since 1978, including MSL, CMS-2, and Ada at ROLM Corporation, Cydra Fortran at Cydrome, and C, C++, and Fortran at Apogee Software and SGI.  He was the architect of the SGI code generator, and has designed and implemented software pipelining loop preparation, target description tables, interprocedural alias analysis, register allocation, etc.  His primary interest is in optimization, code generation, and computer architecture; he also has interests in programming methodology and parallelism.

    Ross Towle received his Ph.D. in Computer Science at the University of Illinois at Urbana-Champaign. He was a founder and the manager of compiler development at Cydrome, and one of the principal architects of the Cydra 5 architecture.  He is currently Director of High Performance Programming Environments at SGI.