Sun Studio 12: Fortran ユーザーズガイド

3.4.13 -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 を呼び出すので、標準の数値連続型も影響を受けます。「3.4.2 -aligncommon[ ={1|2|4| 8|16}]」を参照してください。