Loop interchange とは

コンパイラ理論では、ループ交換は、ネストされたループで使用される2つの反復変数の順序を交換するプロセスです。内部ループで使用される変数は外部ループに切り替えられ、その逆もあります。多次元配列の要素がメモリ内に存在する順序で確実にアクセスされ、参照の局所性が向上することがよくあります。
たとえば、コード・フラグメントでは次のようになります。
 0から20までのiについてiから0まで10 a [i、j] = i + j
ループ交換は次のようになります。
 j = 0〜20 i = 0〜10 a [i、j] = i + j
場合によっては、そのような変換は、配列割り当ての自動ベクトル化など、さらに最適化する機会を作り出すことがあります。