Clover2開発日誌

Clover2というJavaのように静的な型を持つRubyのようなコンパイラ+仮想マシンの開発日誌です。LLVMでJITもします。https://github.com/ab25cqにて開発しています。

LLVMのルーチンを書き直してます

高速化のためにLLVMJITのルーチンを書き直しています。

完全にフルスクラッチからではありませんが、スタックの値をVMのスタックではなくLLVMのスタックを用意して、そこの値を使っています。1+1など単純な計算は最適化されて2とされるでしょう。

今のままだと一度VMのスタックに1を書き込んで、もう一度1を2つ読み込んで足し算して2となっていましたから最適化の余地もありませんでした。

LLVMのスタックからVMのスタックへの値を反映させる関数などは完成しているので、後は大体道なりで書き直せそうです。

今月末か来月末には新しく高速化されたLLVMのルーチンが出来上がるでしょう。

大体僕は2回位書かないとまともなルーチンを書けない癖がありまして。1回目は手探りで、2回目で整理されるって感じですかね。みなさんもそうなのかもしれませんが。

6月末までには大体めどを付けておきます。お楽しみに。