100 likes | 249 Views
Open64 | The Open Research Compiler. Ben Reinhardt and Cliff Piontek. Open64. Initially created by SGI Derived from work by Intel Currently maintained by Professor Guang Gao at UD and CAPSL Source Languages: C, C++, Fortrain90/95 Arch: MIPS, IA64, X86-64, Ceva, Tensilica, XScale (ARM).
E N D
Open64 | The Open Research Compiler Ben Reinhardt and Cliff Piontek
Open64 • Initially created by SGI • Derived from work by Intel • Currently maintained by Professor Guang Gao at UD and CAPSL • Source Languages: C, C++, Fortrain90/95 • Arch: MIPS, IA64, X86-64, Ceva, Tensilica, XScale (ARM)
How it works Open64 is broken down into different modules which communicate via a common IR called WHIRL. The major components are the three front end modules and a back end module which is subdivided into 3 optimizers and a code generator. There are components to support parallelization. The first phase takes in code either in C, C++ or Fortran. The three front end components produce a very high level IR stored in a .B file. This file is then passed to the Very High Level Optimizer (VHO) which operates on the generated code and lowers it to a high level IR. The following optimizers work on the code stage by stage reducing it to lower level IR. All of this is controlled by a driver.
Current Use • NVIDIA uses open64 for its general purpose computing using GPUs. Open64 was chosen for the strength of its optimizations.
Benchmarks Out of all the CPU2000 and CPU2006 benchmarks, they claim benefits in: • The CPU2000 FP benchmark 179.art • INT benchmark 181.mcf • The CPU2006 INT benchmark 462.libquantum.
Limitations • Initially designed for a single architecture but has since proven itself on many others
Future • Further tune the current implementation of static profile estimates • Relax some of the restrictions • Make the analysis and transformation more general, allowing more types to be transformed • Will allow them to apply the transformation to more applications and analyze the effects. • Make the existing field-reordering framework and the new structure layout optimization framework collaborate with each other so as to maximize their combined effects
References • http://www.open64.net • Official Open64 Site • www.wikipedia.org • The Free Encyclopedia • http://www2.cs.uh.edu/~dragon/Documents/open64-doc.pdf • University of Houston Computer Science Dept.