mcmodel

 

特定のメモリーモデルでコード生成とデータ格納を行うようコンパイラーに指示します。

IDE オプション

なし

アーキテクチャー

インテル® 64 アーキテクチャー

構文

Linux:

-mcmodel=mem_model

Mac OS X:

なし

Windows:

なし

引数

mem_model

使用するメモリーモデルです。設定可能な値は以下のとおりです。

small

コードとデータをアドレス空間の最初の 2GB までに制限するようコンパイラーに指示します。コードとデータのすべてのアクセスは、命令ポインター (IP) 相対アドレス指定で行われます。

medium

コードを最初の 2GB までに制限するようコンパイラーに指示します。データは制限されません。コードは IP 相対アドレス指定でアクセスできますが、データのアクセスは絶対アドレス指定を使用する必要があります。

large

コードもデータも制限されません。コードもデータもアクセスは絶対アドレス指定を使用しなければなりません。

デフォルト

-mcmodel=small

インテル® 64 アーキテクチャー・ベースのシステムでは、コンパイラーは、コードとデータをアドレス空間の最初の 2GB までに制限します。命令ポインター (IP) 相対アドレス指定がコードとデータのアクセスに使用されます。

説明

このオプションは、特定のメモリーモデルでコード生成とデータ格納を行うようコンパイラーに指示します。コードサイズとパフォーマンスに影響します。プログラムにある COMMON ブロックとローカルデータが合計で 2GB よりも少ない場合、-mcmodel=small で十分です。2GB を超える COMMON には、-mcmodel=medium または -mcmodel=large が必要です。。2GB を超えるメモリー割り当ては、-mcmodel のどの設定でも行うことができます。

IP 相対アドレス指定は 32 ビットのみ必要ですが、絶対アドレス指定は 64 ビット必要です。IP 相対アドレス指定の方が多少速くアクセスできます。そのため、small メモリーモデルは、パフォーマンスへの影響が最も少ないモデルです。

Note icon

-mcmodel=medium または -mcmodel=large を指定する場合、インテル® ランタイム・ライブラリーの正しいダイナミック・バージョンが使用されるように、-shared-intel コンパイラー・オプションも指定する必要があります。

代替オプション

なし

次の例は、-mcmodel: を使用するコンパイル方法を示します。

ifort -shared-intel -mcmodel=medium -o prog prog.f

関連情報