1

Sparcターゲットからアセンブリを印刷しようとしています。私はすでにそれからIRを生成できますが、どういうわけかこれはターゲットでは機能しません。llvm-isツールはモジュールを返すParseIRFileを使用するため、何を追加すればよいかわかりません。

http://pastebin.com/t3M9edrT

私の問題は、文字列にIRが含まれているにもかかわらず、これをターゲットコード生成に使用するパスを追加する方法がわからないことです。

generateCode()メソッドから生成してm_llvmIR変数に格納したIRを使用するには、 generateSparcsCode()関数で何を変更するかについてのポインターが必要です。同じコンテキストから、モジュールはクラスメンバーでもあり、ターゲット生成コードにそれを正しく使用するにはどうすればよいか疑問に思っていました。

4

1 に答える 1

2

適切なリソースは、llcツールのソース コードです ( をtools\llc\llc.cpp参照)。llc は LLVM ネイティブ コード ジェネレーターです。LLVM IR をターゲット マシン コードにコンパイルし、コマンド ラインでターゲットを選択できます (詳細については、このリファレンスを参照してください)。

llcmainの関数内のコードの流れを見てください。IR を読み取り、ターゲットを設定し、最後に出力を発行します。フラグを使用して、llcが出力するものを選択できます(それがアセンブリであるか、マシン コードを含むネイティブ オブジェクトであるか)。-filetype

于 2012-05-21T06:45:20.643 に答える