+O[no]inline

+O[no]inline

The +Oinline option indicates that any function can be inlined by the optimizer. +Onoinline disables inlining of functions by the optimizer. This option does not affect functions inlined at the source code level.

Use +O[no]inline at optimization levels 2, 3 and 4.

The default is +Oinline at optimization levels 3 and 4.

Usage:

+O[no]inline=function1{,function2...]

Enables [disables] optimizer inlining for the named functions.

+O[no]inline:filename

The file indicated by filename should contain a list of function names, separated by commas or newlines. Optimization is enabled [disabled] for the named functions.

+Olit

+Olit=kind

The +Olit option places the data items that do not require load-time or runtime initialization in a read-only data section. +Olit=all is the default for both HP aC++ and HP C. This represents a change from earlier versions of the HP C compiler, which defaulted to +Olit=const. Note that if you attempt to modify the constant or literal, a runtime signal 11 will be generated.

The defined values for kind are:

all

All string literals and all const-qualified variables that do not require load-time or runtime

 

initialization will be placed in a read-only data section. +Olit=all replaces the

 

deprecated +ESlit option.

const

All string literals appearing in a context where const char * is legal, and all

 

const-qualified variables that do not require load-time or runtime initialization will be

 

placed in a read-only data section. +Olit=const is mapped to +Olit=all with a

 

warning, except in C mode. +Olit=const replaces the deprecated +ESconstlit

 

option in C.

none

No constants are placed in a read-only data section. +Olit=none replaces the

 

deprecated +ESnolit option.

+Ointeger_overflow

+Ointeger_overflow=kind

To provide the best runtime performance, the compiler makes assumptions that runtime integer arithmetic expressions that arise in certain contexts do not overflow (produce values that are too high or too low to represent) both expressions that are present in user code and expressions that the compiler constructs itself. Note that if an integer arithmetic overflow assumption is violated, runtime behavior is undefined.

+Ointeger_overflow=moderate is the default for all optimization levels. This was changed to enable a wider class of applications to be compiled with optimization and run correctly.

The defined values of kind are:

conservative

Directs the compiler to make fewer assumptions that integer arithmetic

 

expressions do not overflow.

moderate

Allows the compiler to make a broad set of assumptions so that the integer

 

arithmetic expressions do not overflow, except that linear function test

 

replacement (LFTR) optimization is not performed.

60 Command-Line Options

Page 60
Image 60
HP C/aC++ for PA-RISC Software manual +Onoinline, +Olit, +Ointegeroverflow