2012-01-08 7 views
14

私はプログラミングLLVMバックエンドを学んでいます。LLVMバックエンドプログラミングを学習するためのコード例

現在、分析パス、後でプログラム変換に興味があります。 (解析にもっと慣れていくと、プログラムの変換に時間がかかると思います)。

学習のためのリソースをお勧めしますか? (私はLLVMプログラマーのマニュアルとドラゴンブックを知っています;))。

リソースで私はチュートリアル、書籍だけでなく、特に小さなよく書かれたプロジェクトを意味します。私はのコード例を読んでコンパイルし、実際に実装する方法を学ぶためにそれらを再生したいと思っています。

これらのコードは、解析部分に限定する必要はありません。トピックは、一般的なLLVMバックエンドプログラミングですが、分析とプログラムの変換は最も興味深いものです。

+1

わずかに接する:[Try Out LLVM](http://llvm.org/demo/index.cgi)ページを使用して、IRを生成したLLVM C++ APIソースを生成するよう求めることができます。特定の翻訳を探す際に役立つかもしれません。 –

答えて

2

すべてのLLVM変換は、lib/Transformsディレクトリ内の自己完結型のパスとして編成されています。optツールを使用してソースを読み込んで任意のパスを実行できます。

また、独自のパスを作成し、LLVM全体を再コンパイルしないでロード可能なモジュールとして使用する方法についての素晴らしいチュートリアルもあります。

だからすでにかなり広い遊び場があります。

+2

**私は、ドキュメント自体とllvmソースよりも何かについて質問しました。特に私は小規模なもの(LLVMをハッキングするおもちゃの例でさえ)について書きました**。私は[LLVMマニュアル](http://llvm.org/docs/)の知識について強調しました。[LLVM doxygenは "プログラミング"部分で言及しました](http://llvm.org/doxygen/)について[LLVM CMake guide](http://llvm.org/docs/CMake.html#passdev)のソース3からプログラミングしてください。たくさんのドキュメンテーションがあり、あなたはプロジェクトの全体像をよく知ることができます。それにもかかわらず、多くの点でドキュメンテーションがうまくいきます。 –

+1

「LLVM全体を再コンパイルせずに」ドキュメントを記述しているので、ソースツリーからパスを作成する方法を教えてください:[CMakeでLLVMを構築する:LLVMをソースから流用する](http ://llvm.org/docs/CMake.html#passdev) –

+1

さて、大丈夫、無関係な答えには申し訳ありません。ツリーからのパスを開発するために、この機能は実際に私によって開発されました、笑。 – arrowd

1

3年前にやりたいことをした人: LLVMコードベースが最も優れた例です。 コンパイラの書籍によく記述されているように、支配者の分析を開始するのがよいかもしれません。

それはLLVMにどのように行われるか確認します。見てhttp://llvm.org/doxygen/Dominators_8h_source.html

その他の場所は、命令スケジューリングかもしれません。

1

私は似たような、LLVMライブラリを使用するコードを探していた、とGoogleでの長いセッションの後、私はちょうど「LLVMプロジェクト」の下にLLVMのウェブサイトでそれを見つけた:http://llvm.org/ProjectsWithLLVM/

はちょうどあなたがあなたのために、関連する考えをダウンロードしてください一緒に遊ぶ。

関連する問題