llvm を使用して x86 プログラムを実行することは可能ですか? つまり、llvm を x86 シミュレーターとして使用して x86 プログラムを実行し、x86 プログラムを計測したいと考えています。
ありがとう!
あなたはLibCPUを探していると思います。
x86フロントエンドがあり(実際には現時点では8086のみであり、完全ではありませんが、作業中です)、LLVM上に構築されているため、明らかにx86バックエンドもあります。 x86-on-x86の実行を可能にしますが、LLVMの最適化、インストルメンテーション、および分析の各段階を通過させます。
また、qemu で LLVM を使用するプロジェクトがありました。また、LLVM 経由で x86 コードを実行する方法でもあります。
http://code.google.com/p/llvm-qemu/
これは GSoC プロジェクトでしたが、svn にコードがあり、作成者は結果を持っています:
regular qemu llvm-qemu rle,dse,simple regalloc llvm-qemu full opts
4m35.349s 5m39.697s 13m50.697s
llvm-qemu は qemu よりも 2 倍も 3 倍遅いですが、動作します。
私は libCPU を知りませんがlibx86
、非常によく似たことを行う があります。32 ビット x86 プロセッサ (ただし 64 ビット モードではない) で実行されている場合は、仮想 8086 プロセスを実行し、他の場所で実行されている場合は8086
、ソフトウェア内でエミュレートしようとします。かなりクール。ただし、ドキュメントは比較的不足しています。