1

ユーザーがJITコンパイルし、メモリ内でコンパイルした後、バイナリファイルとしてディスクに書き込まれるLLVM IRコードを生成するコンパイラを何らかの方法で作成することは可能ですか?

このシナリオの背後にある考え方は、LLVM IR コードをコンパイルしてユーザーにすぐに実行させたくないということです (JIT コンパイルによりパフォーマンスが低下します)。しかし、ユーザーがこのプログラムを 2 回目に実行したときに、既にコンパイルされていることを望みますか?

4

1 に答える 1

1

問題は、ネイティブ バイナリを生成するときに JIT によって生成されたコードを再利用する方法です。これを行うための API があるとは思えませんが、MC JIT がどのように機能するかを思い出すと、比較的簡単に実装できるかもしれません。

しかし、私の視点からすると、2 回目の実行で LLVM IR をネイティブ コードにコンパイルする方が良いでしょう。

于 2012-08-06T03:43:44.530 に答える