全書分為3篇。第1篇介紹編譯器基礎知識,包括中間表示,重點介紹SSA、數據流分析、支配、循環等知識,此外還介紹了LLVM的後端描述語言TableGen。第二篇剖析分LLVM代碼生成,其中對代碼生成的每一步驟都有提及,著重介紹指令選擇、指令調度、寄存器分配和編譯優化。同時還以BPF後端為例總結了如何基於LLVM開發一款新後端的編譯器。第三篇附錄主要總結了LLVM代碼生成過程中使用的IR、BPF指令集以及如何在Linux運行BPF應用,Pass和PassManager的運行機制等知識。
通過閱讀本書,讀者理解和掌握LLVM代碼生成過程,可以根據本書指導為基於LLVM開發一款新後端的編譯器。同時本書還介紹了各種編譯過程中使用到的算法,讀者可以根據場景對算法進行增強從而達到性能優化目的。