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 を使用すると、データの境界整列が標準に合わなくなる場合があります。これが原因で、EQUIVALENCE や COMMON の変数に問題が生じることがあります。さらに、-dalign が必要な場合、移植性のないプログラムになります。
-dalign は、次と同等なマクロです。
SPARC プラットフォームの場合、-xmemalign=8s -aligncommon=16
32 ビット x86 プラットフォームの場合、-aligncommon=8
64 ビット x86 プラットフォームの場合、-aligncommon=16
ある 1 つの副プログラムに -dalign を付けてコンパイルした場合は、プログラムのすべての副プログラムに -dalign を付けてコンパイルしてください。このオプションは -fast オプションに含まれます。
-dalign は、-aligncommon を呼び出すので、標準の数値連続型も影響を受けます。「3.4.1 –aligncommon[={ 1|2|4|8| 16}]」を参照してください。