私はそれに供給されるIRコードを再生成できるLLVM APIコードを生成しようとしています。私は次のエラーを取得するしかし現在のバージョンでは、IRコード経由でLLVMのapiコードを生成する方法は?
clang++ -S -O0 -emit-llvm MyFile.cpp -o MyIR.ll
llc -march=cpp MyIR.ll -o MyIR_Maker.cpp
: LLC:エラー:無効なターゲット「CPP」を、私は、このようなthis questionなど、さまざまな質問を経て発見されたとして、それは、この目標を達成するために次の操作を実行することが可能にいくつかの点でいました。 さらに調査したところ、バージョン3.1でcバックエンドが削除されたとき、以前のバージョンのLLVMではthe same issue occurredと表示されます。私はcppを使用していますが、何らかの理由でcppバックエンドが私のバージョンのllvmに存在しないと信じています。
実際に私がここから知りたいのは、これまでの分析が正しいとすれば、どのようにしてcppバックエンドを有効にするか、そうでなければ私の欲しいところで私のllcを使うことができる状態になるのですか?もちろん、私が間違っている場合や別の方法がある場合は、私はそれに開放されます。
私たちが扱うバージョンはLLVM 3.6です。これはOS Xのbrewを介してインストールされました。ありがとうございます。
編集:This questionはおそらく同様の質問として指摘されています。しかし、この問題はLLVM 3.2の特定の状況で尋ねられました。ここでは、現時点で実際の解決策が存在する可能性があるため、バージョン3.6の現在の状況に関係しています。その質問に対する唯一の答えは、一般的な外部リソースを指しており、実際の解決策が何であるかを完全には説明していません。
cバックエンドとcppバックエンドは大きく異なります。前者は削除されていますが、後者は引き続きサポートされており、デフォルトでは構築されていません。私はこの質問が[バックエンドとしてのLLVM C++ APIコードの生成](http://stackoverflow.com/questions/14751403/generate-llvm-c-api-code-as-backend)と重複していると思います。そのバックエンドを含めるようにLLVMを構築します。 – Oak
@Oak次に、C++バックエンドを有効にするにはどうすればいいのでしょうか?その質問への答えは、LLVMを構築するための一般的なページと、非常に明確なIMOではない文脈からの引用を指しているようです。私はLLVMバイナリをhomebrew経由でインストールすると述べましたが、自作バージョンを使ってC++バックエンドを有効にすることはできません。 –
既存のバイナリを使う代わりに、自分でLLVMをコンパイルする必要があるでしょう。申し訳ありませんが、私はそのリンクされた質問よりも詳細な答えはありません。 – Oak