動的ループ展開
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2018/10/23 06:34 UTC 版)
ループ展開の有効性は対象となる配列の大きさに依存するが、実行時にならないとその大きさが判明しないことも多い。実行時コンパイラ (JIT) などは、通常のループにすべきか、展開すべきかを判断できる。ループ展開の観点では、この柔軟性が静的または手動の最適化に比べてJIT方式の強みとなっている。 アセンブリ言語では、効率的なジャンプテーブルを使うような技法で動的ループ展開を行うことができる。ここで重要となるのは、配列の最大オフセットが機械語命令で表せる範囲かどうかである。その範囲外の場合、最適化の効果が薄れる。次の例はSystem/360またはZ/Architectureのアセンブリ言語で書かれている。FROM配列とTO配列はそれぞれ1要素256バイトで50要素あり、各要素の先頭から100バイトをFROMからTOにコピーするものである。
※この「動的ループ展開」の解説は、「ループ展開」の解説の一部です。
「動的ループ展開」を含む「ループ展開」の記事については、「ループ展開」の概要を参照ください。
- 動的ループ展開のページへのリンク