コード生成オプション
このセクションでは、コード生成に関連するコンパイラー・オプションを説明します。
親トピック:
コンパイラー・オプションの詳細
arch
生成する命令セットを含む、ターゲット機能をコンパイラーに指示します。
EH
実行する例外処理モデルを指定します。
fasynchronous-unwind-tables
命令範囲または呼び出し範囲で巻き戻し情報が正確かどうかを決定します。
fexceptions
例外処理テーブルの生成を有効にします。
fomit-frame-pointer、Oy
EBP を最適化で汎用レジスターとして使用するかどうかを指定します。
Gd
デフォルトの呼び出し規約として __cdecl を指定します。
Gr
__fastcall をデフォルトの呼び出し規約にします。これは C++ 固有のコンテンツです。
DPC++
には適用されません。
GR
C++ のランタイム型情報 (RTTI) を有効または無効にします。
guard
制御フローの保護メカニズムを有効にします。
Gv
ベクトル引数を渡すときにベクトル呼び出し規約 (__vectorcall) を使用します。
Gz
デフォルトの呼び出し規約として __stdcall を指定します。これは C++ 固有のコンテンツです。
DPC++
には適用されません。
m
生成する命令セット・アーキテクチャー (ISA) を含む、ターゲット機能をコンパイラーに指示します。
m32、m64、Qm32、Qm64
特定のアーキテクチャー向けにコードを生成するようにコンパイラーに指示します。
m80387
コンパイラーが x87 命令を使用可能かどうかを指定します。
march
特定の機能をサポートするプロセッサー専用のコードを生成するようにコンパイラーに指示します。
masm
選択した方言を使用して、アセンブラー出力ファイルを生成するようにコンパイラーに指示します。
mbranches-within-32B-boundaries、Qbranches-within-32B-boundaries
パフォーマンスを向上させるため、分岐と融合分岐を 32 バイト境界でアライメントするようにコンパイラーに指示します。これは C++ 固有のコンテンツです。
DPC++
には適用されません。
mconditional-branch、Qconditional-branch
条件付き分岐のスペキュレーション・ミスによりセキュリティーで保護されたデータが漏洩する可能性のある、投機的実行のサイドチャネル攻撃に対して脆弱なコードを特定および修正できます。これは C++ 固有のコンテンツです。
DPC++
には適用されません。
mintrinsic-promote、Qintrinsic-promote
特定の CPU 機能を必要とする組込み関数呼び出しを含む関数において、必要な機能が利用できるようにターゲット・アーキテクチャーを自動的に昇格します。
momit-leaf-frame-pointer
フレームポインターを省略するか、リーフ関数で保持するかを指定します。
mregparm
整数の引数を渡すのに使用するレジスターの数を制御します。これは C++ 固有のコンテンツです。
DPC++
には適用されません。
mtune、tune
特定のプロセッサー向けの最適化を実行しますが、(-march とは違い) 拡張命令セットは使用しません。
Qcxx-features
Microsoft* の機能を無効にせずに、C++ 標準機能を有効にします。
Qpatchable-addresses
静的に割り当てられたアドレスへの参照がパッチできるようにコードを生成するようにコンパイラーに指示します。
Qsafeseh
安全な例外処理のために例外ハンドラーを登録します。これは C++ 固有のコンテンツです。
DPC++
には適用されません。
regcall、Qregcall
呼び出し規約を直接指定していない関数に __regcall 呼び出し規約を使用するようにコンパイラーに指示します。
x、Qx
生成する命令セットと最適化を含む、ターゲット・プロセッサー機能をコンパイラーに指示します。
xHost、QxHost
コンパイルを行うホスト・プロセッサーで利用可能な最上位の命令セット向けのコードを生成するようにコンパイラーに指示します。