HP aC++/HP C Programmer's Guide (B3901-90036; A.06.26; September 2011)
If you run out of memory when compiling at +O4 optimization, there are several things
you can do:
• Compile at +O4 only those modules that need to be compiled at optimization level
4, and compile the remaining modules at a lower level.
• If you still run out of memory, increase the per-process data size limit. Run the System
Administrator Manager (SAM) to increase the maxdsiz_64bit process parameter
to more than 4GB. This procedure provides the process with additional data space.
• If increasing the per-process data size limit does not solve the problem, increase the
system swap space.
Refer to the System Administration Tasks manual for more information.
Object Files Generated at Optimization Level 4
Object files generated by the compiler with +O4 or -ipo, called intermediate object
files, are intended to be temporary files. These object files contain an intermediate
representation of the user code in a format that is designed for advanced optimizations.
The size of these intermediate object files can typically be 3 to 10 times as large as
normal object files. Hewlett-Packard reserves the right to change the format of these files
without prior notice. There is no guarantee that intermediate object files will be compatible
from one revision of the compiler to the next. Use of intermediate files must be limited to
the compiler that created them. For the same reason, intermediate object files should not
be included into archived libraries that might be used by different versions of the compiler.
The compiler will issue an error message and terminate when an incompatible intermediate
file is generated.
Additional Optimization Options for Finer Control
Following are the additional optimizations options for finer control:
-ipo
The -ipo option enables interprocedural optimizations across files. The object file
produced using this option contains intermediate code (IELF file). At link time,ld
automatically invokes the interprocedural optimizer (u2comp), if any of the input object
files is an IELF file.
For optimization levels +O0 and +O1, this option is silently ignored.
The-ipo option will get implicitly invoked with the +O4 and +Ofaster options to match
current behavior (+O4 ==> +O3 -ipo).
For -ipo compilations, the back end is parallelized, and the level of parallelism can be
controlled with the environment variable PARALLEL, since the standard HP-UX make utility
is used for the parallelization.
66 Command-Line Options