Developer Guide and Reference

Contents

Disable Passing Arguments in Registers Instead of On the Stack

You can specify an option that causes the compiler to pass arguments in registers rather than on the stack. This can yield faster code.
However, doing this may require the compiler to create an additional entry point for any function that can be called outside the code being compiled.
In many cases, this will lead to an increase in code size. To prevent this increase in code size, you can disable this optimization.
Options to specify:
Linux* and
macOS*
:
-qopt-args-in-regs=none
Windows*:
/Qopt-args-in-regs:none
Advantages of this method:
Disabling this optimization can reduce code size.
Disadvantages of this method:
The amount of code size saved may be small when compared to the corresponding performance loss of disabling the optimization.
Notes:
If you do not specify "none" for option [q or Q]opt-args-in-regs, the default behavior for the option is that parameters are passed in registers when they are passed to routines whose definition is seen in the same compilation unit.
Depending on code characteristics, this option can sometimes increase binary size.

Product and Performance Information

1

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804