Table 29 Fine-tuning optimization options (continued)

Level

Level

Function

 

 

 

NOTE:

The optimizer tries

 

 

to determine the most likely

 

 

target of indirect calls. If the

 

 

profile data is incomplete or

 

 

ambiguous, the optimizer

 

 

may not select the best

 

 

target. If this happens, your

 

 

code’s performance may

 

 

decrease.

 

 

This option can be used at

 

 

optimization levels 3 and 4.

 

 

At +O3, it is only effective if

 

 

indirect calls from functions

 

 

within a file are mostly to

 

 

target functions within the

 

 

same file. This is because

 

 

+O3optimizes only within a

 

 

file whereas, +O4optimizes

 

 

across files.

 

 

The default is

 

 

+Opromote_indirect_callsat

 

 

optimization level 3 and

 

 

above.

 

 

 

+Onopromote_indirect_callswill

 

 

be the default at

 

 

optimization level 2 and

 

 

below.

 

 

 

 

+Orarely_called=function1[,function2...]

All

The named functions are

 

 

assumed to be rarely called.

 

 

This option overrides any

 

 

information in a profile

 

 

database.

 

 

 

+Orarely_called:filename

 

The file indicated by

 

 

filename contains a list of

 

 

functions, separated by

 

 

spaces or newlines. These

 

 

functions are assumed to be

 

 

rarely called. This option

 

 

overrides any information in

 

 

a profile database.

 

 

 

+O[no]recovery

All

This option generates [does

 

 

not generate] recovery code

 

 

for control speculation. For

 

 

code that writes to

 

 

uncacheable memory that

 

 

may not be properly

 

 

identified as volatile, the

 

 

+Orecoveryoption reduces

 

 

the risk of incorrect

 

 

behavior. The default is

 

 

+Orecovery.

 

 

NOTE:

The program that

 

 

uses signal handlers to catch

 

 

signals raised by memory

 

 

accesses may not behave

 

 

correctly under

 

 

+Onorecovery.

Using options to control optimization

97