インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス

qopt-args-in-regs、Qopt-args-in-regs

スタックではなく、レジスターで引数を渡すことで、ルーチンへの呼び出しを最適化するかどうかを指定します。

アーキテクチャーの制限

IA-32 アーキテクチャーでのみ利用できます。

構文

Linux* および macOS*:

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

Windows*:

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

引数

keyword

最適化を行うか、また行う場合はどのような条件で行うかを指定します。設定可能な値は以下のとおりです。

none

最適化は実行されません。引数はレジスターでは渡されません。スタックに配置されます。

seen

同じコンパイル単位から定義を見ることができるルーチンには、引数がレジスターで渡されます。

all

同じコンパイル単位からルーチンの定義を見ることができるかどうかにかかわらず、引数はレジスターで渡されます。この値は、Linux* システムでのみ利用できます。

デフォルト

-qopt-args-in-regs=seen または /Qopt-args-in-regs:seen

同じコンパイル単位から定義を見ることができるルーチンには、引数がレジスターで渡されます。

説明

このオプションは、スタックではなく、レジスターで引数を渡すことで、ルーチンへの呼び出しを最適化するかどうかを指定します。また、最適化を行う条件も示します。

このオプションは、引数をメモリーで渡し、プロシージャー間の最適化 (IPO) を行わずにコンパイルする必要のあるアプリケーション・バイナリー・インターフェイス (ABI) のパフォーマンスを向上できます。

Linux* システムで all が指定された場合、同じオプションでコンパイルされていない "定義が見えない" ルーチンを呼び出す際、若干のオーバーヘッドが生じることがあります。これは、呼び出し先が期待するスタックに引数が配置されるように、"サンク" によって呼び出しを行わなければならないためです。

IDE オプション

なし

代替オプション

なし