インテル® C++ コンパイラー XE 13.1 ユーザー・リファレンス・ガイド
特定のメモリーモデルでコード生成とデータ格納を行うようにコンパイラーに指示します。
-mcmodel=small |
インテル® 64 アーキテクチャー・ベースのシステムでは、コンパイラーは、コードとデータをアドレス空間の最初の 2GB までに制限します。命令ポインター (IP) 相対アドレス指定がコードとデータのアクセスに使用されます。 |
このオプションは、特定のメモリーモデルでコード生成とデータ格納を行うようにコンパイラーに指示します。コードサイズとパフォーマンスに影響します。プログラムにあるグローバルとスタティック・データが合計で 2GB よりも少ない場合、-mcmodel=small で十分です。2GB を超えるグローバルとスタティック・データには、-mcmodel=medium または -mcmodel=large が必要です。 2GB を超えるメモリー割り当ては、-mcmodel のどの設定でも行うことができます。
IP 相対アドレス指定は 32 ビットのみ必要ですが、絶対アドレス指定は 64 ビット必要です。IP 相対アドレス指定の方が多少速くアクセスできます。そのため、small メモリーモデルは、パフォーマンスへの影響が最も少ないモデルです。
-mcmodel=medium または -mcmodel=large を指定する場合、インテル® ランタイム・ライブラリーの正しいダイナミック・バージョンが使用されるように、-shared-intel コンパイラー・オプションも指定する必要があります。