きつねさんでもわかるLLVM

達人出版会様より「きつねさんでもわかるLLVM」を販売させて頂きました

柏木餅子, 風薬
達人出版会
発行日: 2013-02-08
対応フォーマット: EPUB, PDF

ずっと要望を出していた皆様、お待たせしました。ようやく念願の電子書籍化ができました!達人出版会様よりご購入頂けます。是非よろしくお願いします。

前回の「きつねさんとおぼえるLLVM」から大きな内容の変更はありませんが、誤字脱字の修正と電子書籍向けのデザイン変更を行いました。 現時点では内容に追加はありませんが、今後も新しい発見があれば追記修正していくつもりですので、 是非本作品をよろしくお願いします。

本書の概要

LLVMというコンパイラ基盤に興味があるけどわからない,遊んでみたいという方向けにLLVMを使ったコンパイラを実際に作りながら紹介するという本になっています。 フロントエンド(中間表現出力まで)、ミドルエンド(最適化)、バックエンド(オブジェクト生成)と幅広く解説していますので多くの方に有用な内容を含んでいるのではないかと思います。 ただし、本書の内容が全て正しいという保証はありません。 著者二人が趣味で遊んでいて、知っていることをまとめた程度だと思って頂いて構いません。 本書のボリュームからわかる通り非常に多くの内容を詰め込んでいますので、 それらを参考に改めて確認して頂ければ一から学習するよりも理解が早くなると思います。

ご意見・ご感想など

ご意見・ご感想などはTwitter上でそのままつぶやいて頂いても構いません。ほとんどの場合はこちらは見ていると思います。 もちろん直接ご連絡頂けると非常にうれしいです。報告用フォーム(注:Google Docs)からも投稿可能です。 現状ではまだベータ版となっていますので意見を取り込んで改善していきたいと思っています。

ブクログで登録できますのでこちらを利用して頂いても構いません!

誤字・脱字修正情報

こちらに修正情報をまとめました。

バージョン情報

  • v0.9.0
    • 初版
    • LLVM 3.1ベース
  • v0.9.1
    • v0.9.0から内容の追加はありません
    • 誤字脱字の修正
  • v0.9.2
    • 商業誌版と同内容になりました!
    • LLVM 3.2ベース
    • Passの解説の追加
    • 誤字脱字の修正
きつねさんでもわかるLLVM

章構成

  • はじめに
    • 本書の構成
    • この本で何ができるようになるの?
    • 本書の目的とターゲット層
    • 本書を読むにあたって必要となるもの
    • 本書内の記載について
    • お断り
  • コンパイラとLLVM
    • 一般的なコンパイラのお話
    • LLVMプロジェクト
  • 環境構築
    • 本章の概要と構成
    • 環境
    • インストール
    • ツールの種類と確認
  • LLVM IR
    • 本章の概要と目的
    • LLVM IRの特徴
    • LLVM IR の構成
    • LLVM の型とLLVM アセンブリの主な命令
    • 基本的なLLVMの中間表現
    • 条件文
    • ループ文
    • 合成型へのアクセス
    • Metadata
  • フロントエンドを作る
    • 本章の概要
    • 構文規則の定義
    • 目標の設定
    • 字句解析
    • 構文解析
    • 意味解析
    • コード生成
    • main の作成
    • コンパイルと動作確認
    • mem2reg の適用と組込み関数の導入
    • JITをやってみる
    • Metadata を埋め込みたい場合
    • CommandLine ライブラリ
  • Passについて
    • Passの概念
    • Passの種類
    • その他のPass に実装すべきもの
    • 簡単なPass を実装してみる
    • 無用命令の削除を実装してみる
    • ループの繰り返し回数のカウント
    • 適用されるPass を確認する
  • バックエンドを作る
    • LLVMのバックエンドを学ぶ前に
    • LLVMのバックエンドって何するの?
    • バックエンドの流れ
    • 目標を決める
    • ターゲットの仕様を決める
    • TableGen
    • ターゲットのクラス構成
    • TableGenの記述(Sample.td)
    • 共通クラスの実装
    • SelectionDAGISelの実装
    • AsmPrinterの実装
    • フレーム処理の実装
    • Disassemblerの実装
    • その他の実装
    • コンパイルしよう!
    • バックエンドを作ってみて
  • あとがき
  • 索引
  • 参考文献
  • 著者/関係者一覧