こんなコードが動きます。
def m1
i = 1
sum = 0
while i <= 10000
sum += i
i += 1
end
sum
end
precompile Object, :m1
puts m1
たかがwhileにどれだけ時間かかってるんだという感じですが、機能追加に合わせて周辺コードを追加・変更しているためです。今回はSSA変換処理を修正しています。
これで、ループが書けるようになりましたので、まともなベンチマークを動かせます。次回はベンチマークを取ってJITの性能を確かめてみたいと思います。