HP Compilers for HP Integrity Servers (September 2011)

HP compilers for HP Integrity servers
This document provides a technical overview of the key features of HP compilers for HP
Integrity servers running the HP-UX 11i v3 operating system.
Understanding HP compilers
HP Integrity servers use the IntelĀ® ItaniumĀ® architecture, co-developed by HP and Intel,
which uses Explicitly Parallel Instruction Computing (EPIC). EPIC enables processors to
take advantage of advanced compiler techniques and massive processor resources to
execute instructions faster and more in parallel than traditional RISC. HP compilers have
been designed in parallel with the architecture to exploit the benefits of this architecture
for real applications. In addition to the key features of HP compilers, this paper suggests
how developers can use HP compilers to unlock the performance advantages of Integrity
servers.
HP offers a family of compilers for Integrity servers, supporting the C, C++, and Fortran
languages. HP compilers share an overall design structure that facilitates the integration
of common functional components such as the code generator, optimizer, linker, and
debugger.
The HP compiler structure (see Figure 1 (page 5)) begins with a language-dependent
front end which includes components for lexical, syntax, and semantic analysis of the
incoming source code. Each front end produces an intermediate-level representation of
the program. The high-level optimizer performs performance-enhancing optimizations of
the intermediate code. The code generator converts the intermediate representation into
an instruction sequence nearly appropriate for the target system. Finally, the low-level
optimizer completes the generation of machine code and performs additional
transformations which improve performance.
HP-UX system libraries on Integrity servers are generally supersets of their counterparts
on HP 9000 systems based on the PA-RISC architecture. For example, the HP-UX C/C++
math library for Integrity servers provides an API that is a major superset of the PA-RISC
library. It includes all the C99/Unix 2003, Unix 95, and PA-RISC math functions for four
floating-point types. The functions provided for Integrity servers are generally faster, more
accurate, and more consistent in the treatment of exceptional cases than their PA-RISC
counterparts.
All HP compilers share a common implementation of the code generator and optimizers
in order to maximize inter-operability between languages.
The HP compilers for Integrity servers have already compiled millions of lines of C, C++,
and Fortran source code for HP-UX 11i, including HP-UX 11i itself. Much of this
compilation is at high levels of optimization. Hundreds of independent software providers
have used the HP compilers to make thousands of applications available on HP-UX 11i.
HP uses its compilers to tune performance of the SPEC2006 benchmark, which comprises
a total of 29 applications, using advanced levels of optimization. These programs make
4 HP compilers for HP Integrity servers