Oracle® Solaris Studio 12.4: Fortran ユーザーズガイド

印刷ビューの終了

更新: 2014 年 12 月
 
 

3.4.10 –dalign

COMMON ブロックおよび標準の数値連続型の整列を行い、高速なマルチワードのロード/ストアを生成します

このフラグを使用すると、COMMON ブロック、数値連続型、および EQUIVALENCE クラスのデータレイアウトが変更されるため、コンパイラは、そのデータに対する高速なマルチワードのロード/ストアを生成できるようになります。

データレイアウトは、-f フラグを指定した時と同じようになります。COMMON ブロックと EQUIVALENCE クラスの倍精度および 4 倍精度のデータが、メモリー内で「自然に」境界整列されます。これは、8 バイトの境界整列になります。なお、64 ビット環境で -m64 を指定してコンパイルを行うと、4 倍精度のデータは 16 バイトに境界整列されます。COMMON ブロック内のデータのデフォルト整列は、4 バイトの境界整列です。コンパイラも自然整列を前提とするため、高速なマルチワードのロード/ストアを生成してデータを参照できるようになります。

-dalign-xtypemap=real:64,double:64,integer:64 とともに使用すると、SPARC プロセッサで 64 ビット整数変数がダブルワードで境界整列されます。


注 -  -dalign を使用すると、データの境界整列が標準に合わなくなる場合があります。これが原因で、EQUIVALENCECOMMON の変数に問題が生じることがあります。さらに、-dalign が必要な場合、移植性のないプログラムになります。

-dalign は、次と同等なマクロです。

SPARC プラットフォームの場合、-xmemalign=8s -aligncommon=16

32 ビット x86 プラットフォームの場合、-aligncommon=8

64 ビット x86 プラットフォームの場合、-aligncommon=16

ある 1 つの副プログラムに -dalign を付けてコンパイルした場合は、プログラムのすべての副プログラムに -dalign を付けてコンパイルしてください。このオプションは -fast オプションに含まれます。

-dalign は、-aligncommon を呼び出すので、標準の数値連続型も影響を受けます。–aligncommon[={1|2|4|8|16}]を参照してください