インテル® Fortran コンパイラー 19.0 デベロッパー・ガイドおよびリファレンス
2 の累乗のバイト境界でループをアライメントします。
Linux* および macOS*: | -falign-loops[=n] -fno-align-loops |
Windows*: | /Qalign-loops[:n] /Qalign-loops- |
n |
最小アライメント境界のバイト数 (オプション)。1 から 4096 の範囲内の 2 の累乗の値でなければなりません (例: 1、2、4、8、16、32、64、128 など)。 n を 1 に設定するとアライメントされません。これは、オプションの否定形を指定するのと同じです。 n を指定しない場合、デフォルトのアライメントは 16 バイトです。 |
-fno-align-loops または /Qalign-loops- |
ループはアライメントされません。 |
このオプションは、2 の累乗のバイト境界でループをアライメントします。このアライメントにより、パフォーマンスが向上する可能性があります。
このオプションは、CODE_ALIGN および ATTRIBUTES CODE_ALIGN ディレクティブにより影響を受けます。
-falign-loops=m (Linux* および macOS*) または /Qalign-loops:m (Windows*) オプションを指定してコンパイルすると、ループの前に CODE_ALIGN:n ディレクティブがある場合、そのループは max (m, n) バイト境界でアライメントされます。プロシージャーに CODE_ALIGN:k 属性が含まれ、ループの前に CODE_ALIGN:n ディレクティブがある場合、プロシージャーとループはともに MAX (k, n) バイト境界でアライメントされます。
なし
test_align_loops.f90 ファイルの次のコードについて考えてみます。
DO J = 1, N
…
END DO
-falign-loops (Linux* および macOS*) または /Qalign-loops (Windows*) オプションを指定して test_align_loops.f90 をコンパイルすると、DO J ループのコードは (デフォルトの) 16 バイト境界でアライメントされます。このオプションを指定しない場合、ループのアライメントは実装依存で、コンパイルのたびに異なる可能性があります。