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

スタックではなくレジスターで引数を渡すことの無効化

オプションを指定して、スタックではなく、レジスターで引数を渡すようにコンパイラーに指示できます。そうすることで、コードが高速になります。

しかし、コンパイルするコード以外から呼び出される可能性があるすべての関数に対して、コンパイラーは追加のエントリーポイントを作成する必要があります。

多くの場合、これはコードサイズの増加につながります。このコードサイズの増加を回避するには、この最適化を無効にします。

指定するオプション:

Linux* および macOS*: -qopt-args-in-regs=none
Windows*: /Qopt-args-in-regs:none

メリット

この最適化を無効にすることでコードサイズを減らすことができます。

デメリット

この最適化を無効にすることで失われるパフォーマンスに対して、削減されるコードサイズはわずかである可能性があります。

注:

[q または Q]opt-args-in-regs オプションで "none" を指定しない場合、デフォルトでは、同じコンパイル単位で定義されているルーチンへの引数渡しにレジスターが使用されます。

コードの特性によっては、このオプションはバイナリーサイズを増加させることがあります。