作って学ぶコンピュータアーキテクチャ -- LLVMとRISC-Vによる低レイヤプログラミングの基礎
コンピュータアーキテクチャ、とくにCPUの命令セットアーキテクチャについて、RISC-Vを例に「上のレイヤからアプローチする」ことで理解を深めることを目的とした一冊。本書を一通り読み終えるころには、低レイヤに対する一段上の実力がついているはずです!
■第1章:コンピュータアーキテクチャとISAの基礎知識
■■コンピュータアーキテクチャの全体像
■■命令セットアーキテクチャ(ISA)
■■CPUの高速化技法
■第2章:RISC-Vの基礎知識
■■RISC-V命令セットの特徴
■■RISC-V命令セットの詳細
■■RISC-Vを体験する
■第3章:LLVMの基礎知識
■■LLVMの概要
■■LLVMを体験する
■第4章:LLVMバックエンドの仕組み
■■LLVMバックエンド開発の全体像
■■LLVMのバックエンドを作るための第一歩
■■ターゲット記述ファイル(tdファイル)の作成
■■MYRISCVXのC++クラスを実装する
■■llcはどのようにマルチターゲットを実現しているのか
■第5章:簡単な関数や演算のサポート
■■関数の仕組み
■■シンプルな関数をコンパイルできるようにする
■■関数が戻り値を返せるようにする
■■関数のプロローグ・エピローグに必要な新規命令の実装
■■関数のプロローグ・エピローグの実装
■第6章:算術演算・グローバル変数・ポインタ・制御構文のサポート
■■算術・論理・比較命令の生成
■■まとめとレッスン:画像のパタンマッチングを行うプログラムをシミュレーションする
■■グローバル変数のサポート
■■ポインタ・配列・構造体のサポート
■■条件分岐や繰り返しの生成
■■関数呼び出しのサポート
■■[LLVM] LLVMのビルドと確認
■■まとめとレッスン:配列のソート
■第7章:オブジェクトファイル・ELFファイル出力のサポート
■■オブジェクトファイルとは何なのか
■■インラインアセンブリとllvm-mcの実装
■■まとめとレッスン:N-Queen問題を解く
■第8章:LLVMでのテスト記述とリグレッション
■■llvm-litによるテスト実行
レビュー(0件)