3

LLVMが実際に行うことについて頭を悩ませるのに問題があります...C++プログラムで実行時に数式を解析するために使用できると思いますか?

現在、実行時に、数式を取得し、それからCプログラムを構築し、gccへのシステムコールを実行してその場でコンパイルします。次に、gccによって生成された.soを動的にロードし、eval関数を抽出します。

このワークフローをもっと単純なもの、おそらくもっと速いものに置き換えたいのですが... LLVMは私を助けてくれますか?私を始めるためのリソースはありますか?

4

1 に答える 1

2

あなたはLLVMをJITコンパイラとして使用していると説明していますが、これは絶対に可能です。LLVM IR コードを (メモリ内で) 生成してライブラリに渡すと、マシン コードが生成されます (まだメモリ内にあります)。その後、好きなようにそのコードを実行できます。

C コードから LLVM IR を生成したい場合はclang、ライブラリとしてリンクすることもできます。

これは、この回答で見つけた PDF です。これには、LLVM を JIT として使用する方法の例がいくつかあります。

于 2013-01-31T21:20:24.697 に答える