コンパイラの最適化メモ

コンパイラにおける
最適化のメモ

最適化には大別して3つの方法が考えられる。
1.命令の実行回数を減らす
2.並列化する
3.高速な命令を使用するようにする。

1.命令の実行回数を減らす

 ・実行結果を保存し再利用する。
 ・コンパイル時に計算できるものは計算を行う。
 ・ループ内等で無駄に実行している命令を移動する。
 ・無駄な命令を取り除く

2.並列化する。

 ・命令セットを並列化する。
 ・プロセッサレベルで並列化する。

3.高速な命令を使用するようにする。

 ・対象データが常にレジスタに入っているようにする。
 ・単純な命令を使用する。
 ・プログラムの局所性を高め、メモリアクセスを速くする。

JVMニーモニックが0〜3までなのは
4つのレジスタを対象としているからか。
iload_0, iload_1, iload_2, iload_3
同時所要変数が5つ以上になると
iload #5
とかこんな感じになって、
レジスタが5つある計算機はいいけど
4つのやつは一回メモリに格納しなきゃなんない。