Intel® C++ Compiler Classic Developer Guide and Reference

ID 767249
Date 3/31/2023
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

qopt-args-in-regs, Qopt-args-in-regs

Determines whether calls to routines are optimized by passing parameters in registers instead of on the stack. This is a deprecated option that may be removed in a future release.

Architecture Restrictions

Only available on IA-32 architecture. IA-32 support has been deprecated, and will be removed in a future release.

Syntax

Linux:

-qopt-args-in-regs[=keyword]

macOS:

None

Windows:

/Qopt-args-in-regs[:keyword]

Arguments

keyword

Specifies whether the optimization should be performed and under what conditions. Possible values are:

none

The optimization is not performed. No parameters are passed in registers. They are put on the stack.

seen

Causes parameters to be passed in registers when they are passed to routines whose definition can be seen in the same compilation unit.

all

Causes parameters to be passed in registers, whether they are passed to routines whose definition can be seen in the same compilation unit, or not. This value is only available on Linux* systems.

Default

-qopt-args-in-regs=seen or /Qopt-args-in-regs:seen

Parameters are passed in registers when they are passed to routines whose definition is seen in the same compilation unit.

Description

This option determines whether calls to routines are optimized by passing parameters in registers instead of on the stack. It also indicates the conditions when the optimization will be performed.

This is a deprecated option that may be removed in a future release. There is no replacement option.

This option can improve performance for Application Binary Interfaces (ABIs) that require parameters to be passed in memory and compiled without interprocedural optimization (IPO).

Note that on Linux* systems, if all is specified, a small overhead may be paid when calling "unseen" routines that have not been compiled with the same option. This is because the call will need to go through a "thunk" to ensure that parameters are placed back on the stack where the callee expects them.

IDE Equivalent

None

Alternate Options

None