Using -ip with -Qoption Specifiers

Use -Qoption with the applicable keywords to select particular inline expansions and loop optimizations. The option must be entered with a -ip or -ipo specification, as follows:

-ip -Qoption,tool,opts]

where tool is C++ (c) and opts are -Qoption specifiers (see below).

-option Specifiers

If you specify -ip or -ipo  without any -Qoption qualification, the compiler

You can refine interprocedural optimizations by using the following -Qoption specifiers. To have an effect, the -Qoption option must be entered with either -ip or -ipo also specified, as in this example:

-ip -Qoption,c,ip_specifier

where ip_specifier is one of the specifiers described in the table that follows.

-option Specifiers

-ip_args_in_regs=FALSE Disables the passing of arguments in registers. By default, external functions can pass arguments in registers when called locally. Normally, only static functions can pass arguments in registers, provided the address of the function is not taken and the function does not use a variable number of arguments.
-ip_ninl_max_stats=n Sets the valid max number of intermediate language statements for a function that is expanded in line. The number n is a positive integer. The number of intermediate language statements usually exceeds the actual number of source language statements. The default is set to the maximum number of 200.
-ip_ninl_min_stats=n Sets the valid min number of intermediate language statements for a function that is expanded in line. The number n is a positive integer. The default value for ip_ninl_min_stats is:
  • IA-32 compiler: ip_ninl_min_stats = 7
  • Itanium(TM) compiler: ip_ninl_min_stats = 15
-ip_ninl_max_total_stats=n Sets the maximum increase in the total_stats. The number of intermediate language statements for each function that is expanded in line. The number is a positive integer. By default, each function can increase to a maximum of 5000 statements.
-ip_no_external_ref Indicates that the source file contains the main program and does not contain functions that are referenced by external functions. If you do not specify this option, the compiler retains an original copy of each expanded in-line function.

The following command activates procedural and interprocedural optimizations on source.cpp and sets the maximum increase in the number of intermediate language statements to 5 for each function:

prompt>icc -ip -Qoption,c,-ip_ninl_max_stats=5 source.cpp