てがみ: qatacri at protonmail.com | 統計 | 2019

201908800

One VM to rule them all

色々すごい。言語実装者が AST ジェネレータと AST インタプリタを Truffle というフレームワーク上で実装すると、 JIT コンパイラが生成される…ようだ。動的型言語の type specialization などは AST の上で行われる。試してみないと Truffle が Java のコードを直接読んで色々するのか、ライブラリとして実装されているのかすらよく分からない。

LLVM Bitcode も変換できると書いてあって、 irreducible CFG の扱いが気になる。

Bringing Low-Level Languages to the JVM: Efficient Execution of LLVM IR on Truffle

int bci = 0;
while (bci !=  -1)
  bci = blocks[bci].execute();

Relooper のようなアルゴリズムは使わないようだ。このディスパッチ部分は特別扱いされるの?