0
llvmliteで生成されたIRからバイナリコードを取得することが可能かどうかは知っていますか? llvmでは、-emit-llvm -o foo.bc -c foo.cを単にclangできます。 llvmliteを使用している場合はどうなりますか?は、llvmliteからのIR生成からバイナリコードを生成します
llvmliteで生成されたIRからバイナリコードを取得することが可能かどうかは知っていますか? llvmでは、-emit-llvm -o foo.bc -c foo.cを単にclangできます。 llvmliteを使用している場合はどうなりますか?は、llvmliteからのIR生成からバイナリコードを生成します
私が知る限り、llvmliteにはリンカーは含まれていません。あなたは、例えば、
target = llvm.Target.from_default_triple()
machine = target.create_target_machine()
with llvm.create_mcjit_compiler(module, target) as mcjit:
def on_compiled(module, objbytes):
open('mymodule.o', 'w').write(objbytes)
mcjit.set_object_cache(on_compiled, lambda m: None)
mcjit.finalize_object()
を持つオブジェクトコードを書き、そして通常は、オブジェクトファイルをリンクするgcc
かclang
経由でなければなりませんあなたの標準リンカld
を、使用することができます。 LLVM 4は、手動で使用するオプションである独自のリンカーlld
と一緒に出荷されているようですが、llvmliteはバージョン4にはなく、その機能を公開することはできません。例えば、私のマシンで
、私はbash
$ gcc -o llvmapp mymodule.o
$ ./llvmapp
から実行することができます