2026年7月25日(土)掲載 2,930本日 0
HN298

CインタプリタにJITコンパイラを後付けして爆速化させる技術

Retrofitting JIT Compilers into C Interpreters

ltratt3か月前

議論

5
1sgbeal3か月前

自分ではコンピュータオタクだと思ってたけど、こういう記事を見ると自分なんてオタクのレベルにも達してないんだなって思い知らされるわ。

2mwkaufma3か月前

要約:ランタイムのIRトレースを有効にしたLLVMのフォークでコンパイルしろってことか。めちゃくちゃ賢いな!

3fuhsnn3か月前

Cプログラム用のインタプリタの話なのか、それとも「C」という特定の種類のインタプリタの話なのか理解するのに時間がかかったよ。結局のところ、Cで実装されたインタプリタに修正を加えたLLVMを使ってレトロフィット(後付け実装)してるって話なんだね。でもこれ、LLVM IRを使う他の言語や、Cの他のswitch-in-a-loopパターンにも応用できるんじゃないの?

4djwatson243か月前

ほぼ任意のCコードに対してこれを実現できるのは本当にすごいね!PyPyがやってることとすごく似てるけど、PythonのサブセットじゃなくてCでやってるわけだ。

とはいえデメリットもあるね。平均的なコードだとLuaより2倍速い程度みたいだし、LuaJITが5~10倍速いことが多いのと比べるとね。