Sun Studio 12: Fortran プログラミングガイド

9.1.1.5 -dalign

-dalign を使用すると、コンパイラはダブルワードのロード命令またはストア命令を (可能であれば) 生成できます。 データの移動量が多いプログラムは、このオプションを付けてコンパイルすれば、その恩恵を十分に受けることができます。-dalign は、-fast によって選択されるオプションの 1 つです。ダブルワード命令の速度は、同等のシングルワード命令と比べると、ほとんど倍になります。

しかし、-dalign を使用するときは (したがって、-fast を使用するときも) 十分注意しなければいけません。なぜなら、COMMON ブロック中のデータの特定の境界合わせを予想してコーディングされたプログラムのうち、問題を起こすものがあるからです。-dalign を使用すると、コンパイラはパディングを追加して、倍精度と 4 倍精度のデータをすべて (REAL も COMPLEX も) ダブルワード境界にそろえようとします。その結果、次のようなことが起こります。

たとえば、複数のデータ型が混在する COMMON ブロック全体を 1 つの配列として別名付けを行うことによって、データを書き込むプログラムは -dalign を付けるとうまく動作しません。なぜなら、倍精度変数や 4 倍精度変数のパディングのために、プログラムが予想するよりもブロックが大きくなるからです。