(0)
(1) ループ命令の追加でどこまで速くなるか?
- TL-6は結構高速で、10億回ループの速度ではgcc比で11.3倍まで来ましたが、もっと速くできないでしょうか?そのためにはどうしたらいいでしょうか?
- x86にはLOOP命令というのがあります。LOOP命令は、ECXレジスタの値を1減じて、もし0でなければ指定したアドレスに分岐することができます。別にこのことそのものはすごくないのですが、それが1命令できるというのがポイントです。
- では、TL-6に似たような命令を追加したとしたらどうでしょうか。しかし完全には真似せずに、1加算して、所定の値と比較して、もし等しくなかったら分岐するということにします。これはKの観察では、多くのプログラムではループカウンタを現象ではなく増加させているからです。
こめんと欄