----------------------------------------------- Descriptions of options used by HP for CPU2000: ----------------------------------------------- +A Cause the linker ld(1) to use only archive libraries for all occurrences of the -l option. Also inform the C++ run-time environment that no shared libraries will be used by the program. -Ae Enable ANSI compatibility mode with UNIX extensions. +cat Concatenate input source files. -D Set definition for preprocessor. +DA Generate code for the architecture specified. +DS Schedule code for the architecture specified. +ESfic Replace millicode calls with in-line code for for indirect calls. +ESlit Put literals in read-only text space. fastmem.o Replacement for malloc/free that assumes ANSI compliant code. +I/+P Optimize/Instrument for profile based optimization. -K Use static storage for locals instead of stack storage. Same functionality as the +save option. The default is +nosave. Kernel Tunables (Listed separately) +noeh Disable exception handling. Note that mixing objects compiled both with and without +noeh can have undesired results. Object destruction, for example, will not be done for objects local to functions compiled with the +noeh option. +O1 Perform optimizations within basic blocks only. +O2 Perform +O1 optimizations. In addition perform global optimizations at the procedure level. (Same as -O.) +O3 Perform +O2 optimizations as well as interprocedural global optimizations within a file (including inlining). +O4 Perform level 3 as well as doing link time optimizations. Also sends +Oprocelim and +Ofastaccess to the linker (see ld(1)). +O[no]aggressive Apply [do not apply] aggressive optimizations; that is, new optimizations and the optimizations invoked by the following option settings: +Oentrysched +Onofltacc +Onoinitcheck +Olibcalls +Oregionsched +Osignedpointers +Ovectorize These optimizations can occur at levels 2, 3, and 4. The default is +Onoaggressive. +O[no]all Apply [do not apply] all optimizations enabled by the +Oaggressive and +Onolimit options. This option automatically invokes optimization level 4. The default is +Onoall. +Ocachepadcommon Pad common blocks to avoid cache collisions. +O[no]cxlimitedrange Enable [disable] the use of floating point math in the compilation unit. The default is +Onocxlimitedrange. +O[no]dataprefetch Generate data prefetch instructions for data structures referenced within innermost loops. +Oentrysched Perform instruction scheduling on a subprogram's entry and exit sequences. +Ofast Select a combination of compilation options for optimum execution speed at build times. Currently: +O2, +Olibcalls, +Onolimit, +Ofltacc=relaxed, +FPD. In addition, the following options will be passed to the linker: +pi 4M +pd 4M +mergeseg +O[no]fastaccess Enable [disable] fast access to global data items. +fastallocatable Enables a different representation for allocatable arrays in the object code produced by the compiler. This alternate representation avoids problems in optimizing code containing allocatable array references. This alternate representation for allocatable arrays is binary compatible with the old representation. +Ofaster Selects the +Ofast option at optimization level +O3. +O[no]fltacc Disable [enable] floating-point optimizations that can result in numerical differences. +Ofltacc is the same as +Ofltacc=strict. +Onofltacc is the same as +Ofltacc=relaxed. +Onofltacc also generates Fused Multiply-Add (FMA) instructions, as does compiling your program at optimization level 2 or higher. FMA instructions can improve performance of floating-point applications and are available only on PA-RISC 2.0 systems or later. If you do not specify either +Ofltacc or +Onofltacc at optimization level 2 or higher, the optimizer will generate FMA instructions but will not perform any expression-reordering optimizations. +Ofltacc=[strict|default|limited|relaxed] Control the level of floating point optimizations that the compiler may perform. The defined values for optlevel are: default Allow contractions, such as fused multiply-add (FMA), but disallows any other floating point optimization that can result in numerical differences. limited Like default, but also allows floating point optimizations which may affect the generation and propagation of infinities, NaNs, and the sign of zero. Also implies +Ocxlimitedrange. relaxed In addition to the optimizations allowed by limited, permits optimizations, such as reordering of expressions, even if parenthesized, that may affect a rounding error. This is the same as +Onofltacc. Also implies +Ocxlimitedrange. strict Disallow any floating point optimization that can result in numerical differences. This is the same as +Ofltacc. The default is +Ofltacc=default. +O[no]inline Request [disable] inlining. This option can be used at optimization level 3 and higher. The default is +Oinline. +Oinline_budget=n +Oinlinebudget=n The +Oinlinebudget option controls the aggressiveness of inlining. n is an integer in the range 1 - 1000000 that specifies the level of aggressiveness as follows: n Meaning = 100 Default level on inlining. > 100 More aggressive inlining. 2 - 99 Less aggressive inlining. = 1 Only inline if it reduces code size. This optimization can occur at optimization levels 3, and 4. The default is +Oinlinebudget=100. +O[no]libcalls Invoke [do not invoke] low call-overhead versions of select library routines. +O[no]limit Suppress [do not suppress] optimizations that significantly increase compile-time or consume enormous amounts of memory. These optimizations can occur at levels 2, 3, and 4. The default is +Olimit. +O[no]loop_block Enable [disable] loopblocking for data cache optimizations. Available at optimization level 3 and above. +O[no]loop_unroll Enable [disable] loop unrolling. +Omultiprocessor Prevent instruction cache prefetching following subroutine returns. This can benefit some multithreaded applications. +O[no]procelim Remove [do not remove] any unreferenced procedures from the output executable file. +O[no]promote_indirect_calls Enable [disable] the promotion of indirect calls to direct calls. (Indirect calls occur with pointers to functions (and virtual calls for C++).) This option can be used at optimization levels 3 and 4. The default is +Onopromote_indirect_calls. +Optrs_strongly_typed Assume that all pointers are type safe. +O[no]ptrs_to_globals Optimize with assumption that global variables may [may not] be modified through pointers. +Oregionsched Perform scheduling across branches. +O[no]signedpointers Enable [disable] the treating of pointers as signed quantities. This optimization can occur at optimization levels 0, 1, 2, 3, and 4. The default is +Onosignedpointers. +Ostatic_prediction Enable static branch prediction. +Ostaticprediction Alternate spelling of static_predicton. (Preferred spelling with underbar.) +O[no]vectorize Replace eligible loops with calls to the vector library. +pd size Request a particular virtual memory page size that should be used for data. Sizes of 4K, 16K, 64K, 256K, 1M, 4M, 16M, 64M, 256M, D, and L are supported. A size of D allows the kernel to choose what page size should be used. A size of L will result in using the largest page size available. The actual page size may vary if the requested size cannot be fulfilled. +pi size Request a particular virtual memory page size that should be used for instructions. See the +pd option for additional information. +Owhole_program_mode Asserts [does not assert] that files compiled with this option directly reference only those global variables and procedures that are defined in these files. This optimization can occur at optimization level 4. The default is +Onowhole_program_mode. -Wl,+FPD Enable sudden underflow (flush to zero) of denormalized values. -Wl,-a,archive Link with archive format libraries rather than shared. -Wl,-aarchive Equivalent to -Wl,-a,archive. ------------------------------- Descriptions of Kernel Tunables ------------------------------- dbc_max_pct Maximum dynamic buffer cache size as a percent of system memory dbc_min_pct Minimum dynamic buffer cache size as a percent of system memory maxdsiz Maximum data size maxdsiz_64bit Maximum data size for 64 bit applications maxssiz Maximum stack size maxssiz_64bit Maximum stack size for 64 bit applications tmplog In tmplog mode, the intent log is almost always delayed. This improves performance, but recent changes may disappear if the system crashes. This mode is only recommended for temporary file systems. vps_ceiling Maximum System-Selected Page Size (in Kbytes) vps_pagesize Default user page size (in Kbytes)