Optimization and tuning options

You can control the optimization and tuning process, which can improve the performance of your application at run time, using the options in Table 1. Remember that not all options benefit all applications. Trade-offs sometimes occur between an increase in compile time, a reduction in debugging capability, and the improvements that optimization can provide.

Table 1. Optimization and tuning options
Option Description C Compile C++ Compile IPA Link More Information
AGGRCOPY Enables destructive copy operations for structures and unions, which can improve performance. See detail
ANSIALIAS Indicates to the compiler that the code strictly follows the type-based aliasing rule in the ISO C and C++ standards, and can therefore be compiled with higher performance optimization of the generated code. See detail
ARCHITECTURE Specifies the machine architecture for which the executable program instructions are to be generated. See detail
ASSERT(RESTRICT) Enables optimizations for restrict qualified pointers. See detail
COMPACT Avoids optimizations that increase object file size. See detail
HGPR Enables the compiler to exploit 64-bit general purpose registers (GPRs) in 32-bit programs targeting z/Architecture® hardware. See detail
HOT Performs high-order loop analysis and transformations (HOT) during optimization.   See detail
IGNERRNO Allows the compiler to perform optimizations that assume errno is not modified by system calls. See detail
INLINE Attempts to inline functions instead of generating calls to those functions, for improved performance. See detail
IPA Enables or customizes a class of optimizations known as interprocedural analysis (IPA). See detail
LIBANSI Indicates whether or not functions with the name of an ANSI C library function are in fact ANSI C library functions and behave as described in the ANSI standard. See detail
MAXMEM Limits the amount of memory used for local tables, and that the compiler allocates while performing specific, memory-intensive optimizations, to the specified number of kilobytes. See detail
OPTIMIZE Specifies whether to optimize code during compilation and, if so, at which level. See detail
PREFETCH Inserts prefetch instructions automatically where there are opportunities to improve code performance.   See detail
RESTRICT Indicates to the compiler that all pointer parameters in some or all functions are disjoint. See detail
SMP Enables parallelization of program code. See detail
STRICT Used to prevent optimizations done by default at optimization levels OPT(3), and, optionally at OPT(2), from re-ordering instructions that could introduce rounding errors. See detail
STRICT_INDUCTION Prevents the compiler from performing induction (loop counter) variable optimizations. These optimizations may be unsafe (may alter the semantics of your program) when there are integer overflow operations involving the induction variables. See detail
THREADED Indicates to the compiler whether it must generate threadsafe code. See detail
TUNE Tunes instruction selection, scheduling, and other implementation-dependent performance enhancements for a specific implementation of a hardware architecture. See detail
UNROLL Controls loop unrolling, for improved performance. See detail