
全书分为3篇。第1篇介绍编译器基础知识,包括中间表示,重介绍SSA、数据流分析、支配、循环等知识,此外还介绍了LLVM的后端描述语言TableGen。第二篇剖析分LLVM代码生成,其中对代码生成的每一步骤都有提及,着重介绍指令选择、指令调度、寄存器分配和编译优化。同时还以BPF后端为例总结了如何基于LLVM发一款新后端的编译器。第三篇附录主要总结了LLVM代码生成过程中使用的IR、BPF指令集以及如何在Linux运行BPF应用,Pass和PassManager的运行机制等知识。通过阅读本书,读者理解和掌握LLVM代码生成过程,可以根据本书指导为基于LLVM发一款新后端的编译器。同时本书还介绍了各种编译过程中使用到的算法,读者可以根据场景对算法行增强从而达到性能优化目的。<br/>【推荐语】<br/>1)主流新版LLVM详解:本书以LLVM 15版本为核心,深剖析其内部机制,帮助读者掌握前沿的编译器技术。2)提供配套代码仓库:提供专门的代码仓库镜像,确保读者能够轻松获取并编译书中使用的LLVM版本,实现理论与实践相结合。3)LLVM IR从门到精通:详尽介绍LLVM IR的基础知识及其设计原理,引导初学者快速上手,阶至专业水平。4)提供BPF后端实战案例:选用BPF作为示例后端,通过精简的代码示例讲解代码生成的关键步骤,易于理解和跟踪。5)丰富的示例与资源:配套大量示例代码,涵盖C/C 、LLVM IR等多种语言和中间表示形式,并遵循统一命名规则,方便验证学习成果。<br/>【作者】<br/>彭成寒:AI编译器与虚拟机技术专家,目前主要专注于LLVM、MLIR相关的AI编译器研究,并在JVM、V8和WebAssembly等虚拟机技术方面有着丰富的研发经验。他深耕IT领域近20年,曾涉足应用软件和大数据发等多个领域,并著有《JVM G1源码分析和调优》《新一代垃圾回收器ZGC设计与实现》《深探索JVM垃圾回收:ARM服务器垃圾回收的挑战和优化》等重要领域专著。 李灵:毕业于上海交通大学,拥有6年编译器和虚拟机相关的研发工作经验,深度参与了多项LLVM编译器及V8、WebAssembly虚拟机等源项目的研发工作,目前正在从事AI编译器研发工作。 戴贤泽:毕业于南京理工大学,拥有7年编译器和虚拟机相关工作经验,深参与了方舟编译器及V8、WebAssembly虚拟机等源项目的研发工作,目前正在从事编译器和虚拟机的设计与研发工作。 王志磊:毕业于浙江大学,拥有6年编译器和虚拟机相关的研发工作经验,参与了多项编译器及虚拟机的发项目,并为llvm-bolt、V8、WebAssembly等源项目贡献代码,目前专注于虚拟机相关的研发,精通AOT和JIT技术。 俞佳嘉:南京大学硕士研究生,现任华为编译器与编程语言实验室鸿蒙发者生态构建技术首席专家。他拥有10余年的丰富工作经验,在Intel、Microsoft、华为等世界知名公司从事过编译器、虚拟机、指令翻译等技术的相关研发工作,并深参与了Intel Houdini、华为方舟编译器等产品的核心研发工作。 <br/>
評論0