ループ改善 - Scheme VM を書く
昨日の発見を教訓に多く呼ばれる命令を gcc -S を眺める。
多く呼ばれる命令 Top 5 の gcc -S を眺める
PUSH
スタックオーバーフローのチェックがやはり長いですね。
それ以外は想定通り。
CONSTANT
問題無し。
REFER_LOCAL
問題無し。
REFER_FREE
をインライン展開出来ればもう少し速くなると思う。
ただヘッダに書いていないだけだったあれ?何でだっけ。
対応した。
APPLY
とにかく長いコードの共通化をしたい。
ここは昨日挙がっていた命令列チェックを減らせればここもだいぶすっきりする。
命令列長チェック
命令毎に、命令列終端にあるかどうか?をチェックしていたがこれを終端に HALT 命令を置くことで改善した。