HP Compilers for HP Integrity Servers (September 2011)

+Onosumreduction option will disallow the sum reduction optimization under
any setting of +Ofltacc.
The +Ocxlimitedrange option indicates complex multiply, divide, and cabs
operations are not required to satisfy C99 infinity properties, and allows extended
and long double versions to be more likely to encounter undue over/underflow. This
functionality can also be chosen with #pragma STDC CX_LIMITED_RANGE ON
in the source code at the desired scope, and is implied by +Ofltacc=relaxed.
The +FPD option or the library call fesetflushtozero(1) set the flush-to-zero
underflow mode.
Other options provide specialized characteristics of floating-point code and math library
functions.
The option +Ofenvaccess provides reliable use of <fenv.h> functionality to access
floating-point control modes and exception flags. This functionality is also activated with
the #pragma STDC FENV_ACCESS ON in the source code at the desired scope.
The +Olibmerrno option provides math functions which set errno, and return values
documented for HP PA-RISC and Unix 95 where these differ from C99 for IEC 60559
implementations. Alternatively, +Onolibmerrno, the default, provides functions that do
not set errno.
Extensive inline assembly
HP allows users to embed machine-level code within a C or C++ program using inline
assembly intrinsics. These intrinsics have an easy-to-use interface defined in <machine/
sys/inline.h>. When this header file is included, the compiler ensures the correct
values and use of inline instruction arguments.
A paper describing the use of the inline assembly intrinsics is available online (see
“Reference 17” (page 36)).
Application tuning
Tuning an application is basically an iterative process with just two steps:
1. Determine the hot spots in the application or general performance issues with the
application.
2. Optimize the hot spots, attacking performance issues.
HP has developed several new tools for finding hot spots and characterizing application
performance on Integrity servers. The following sections describe the use of these tools
and other techniques for tuning application performance.
Profiling
HP provides two performance analysis tools:
HP Caliper – provides access to several types of performance data. HP Caliper
provides three levels of performance measurements, from application call graphs
Application tuning 23