4

私は、LLVM-IR を C のような言語に変換するためのコードを書かなければならないプロジェクトに取り組んでいます。この言語は、C と非常によく似た構造を持っています。少し調べてみたところ、LLVM のバージョン 3.0 までは、LLVM-IR から C コードへの変換を担当する CBackend.cpp という名前のファイルが存在することがわかりました。確認したいのは、LLVM-IR の入力ファイルに対してこの CBackend.cpp ファイルを実行し、C コードを生成することです。

このコマンドは次のとおりです: llc -march=c -o code.c code.ll

ここで、code.ll ファイルは入力 llvm-ir を含む入力ファイルであり、code.c は結果の C コードを含む出力ファイルです。

私が直面しているのは、ubuntu システムに LLVM バージョン 3.4svn がインストールされており、ファイルが CppBackend.cpp (LLVM-IR を C++ に変換する) にアップグレードされているため、このバージョンには CBackend.cpp ファイルがありません。この CBackend.cpp ファイルを LLVM-IR 入力ファイルで実行して、LLVM のバージョン 3.4svn で対応する C コードを取得するには、どのコマンドを使用できますか?

前もって感謝します。

4

1 に答える 1

6

C バックエンドはリリース 3.1 で削除されました。これは、メンテナンスが行われず、コードの腐敗が進み、負担になったためです。メンテナがステップアップしなかったため、ツリーから削除されました。3.1のリリースノートから:

C バックエンドが削除されました。重要なプログラムをコンパイルできないという点まで、多くの問題がありました。

2012 年 8 月に llvmdev のスレッドでC バックエンドの復活について議論されましたが、それがどこにも役に立たなかったと思います。

引き続き LLVM バージョン 3.0 をダウンロードして (リリース ページから)、ビルドして C バックエンドの動作を確認したり、そのコードを調べたりすることができます。特定の目的のために - コードを見て、それがどのように機能するかを理解するには、3.0 C バックエンド十分なはずです。

于 2013-10-16T19:53:16.173 に答える