互联网
                       类型
                        可以朗读
                       语音朗读
                        330千字
                       字数
                        2024-09-01
                       发行日期
                    展开全部
                    
主编推荐语
全面介绍LLVM代码生成过程。
内容简介
全书分为3篇。
第一篇介绍编译器基础知识,包括中间表示,重点介绍SSA、数据流分析、支配、循环等知识,此外还介绍了LLVM的后端描述语言TableGen。
第二篇剖析分LLVM代码生成,其中对代码生成的每一步骤都有提及,着重介绍指令选择、指令调度、寄存器分配和编译优化。同时还以BPF后端为例总结了如何基于LLVM开发一款新后端的编译器。
第三篇附录主要总结了LLVM代码生成过程中使用的IR、BPF指令集以及如何在Linux运行BPF应用,Pass和PassManager的运行机制等知识。
目录
- 版权信息
 - 前言
 - 第一部分 基础知识
 - 第1章 绪论
 - 1.1 LLVM设计思路分析
 - 1.2 LLVM主要子项目
 - 1.3 LLVM构建与调试
 - 1.4 LLVM在线工具
 - 1.5 本章小结
 - 第2章 IR基础知识
 - 2.1 IR分类
 - 2.2 CFG的基本块与构建
 - 2.3 静态单赋值
 - 2.4 本章小结
 - 第3章 数据流分析基础知识
 - 3.1 半格、格与不动点
 - 3.2 数据流分析原理及描述
 - 3.3 数据流方程示例
 - 3.4 扩展阅读:数据流的遍历性能分析
 - 3.5 本章小结
 - 第4章 支配分析
 - 4.1 支配和逆支配
 - 4.2 支配树和支配边界的实现
 - 4.3 扩展阅读:支配树相关小课堂
 - 4.4 本章小结
 - 第5章 循环基本知识
 - 5.1 自然循环
 - 5.2 LLVM的循环实现
 - 5.3 本章小结
 - 第6章 TableGen介绍
 - 6.1 目标描述语言
 - 6.2 TableGen工具链
 - 6.3 扩展阅读:如何在TD文件中定义匹配
 - 6.4 本章小结
 - 第二部分 代码生成
 - 第7章 指令选择
 - 7.1 指令选择的处理流程
 - 7.2 SelectionDAGISel算法分析
 - 7.3 快速指令选择算法分析
 - 7.4 全局指令选择算法原理与实现
 - 7.5 本章小结
 - 第8章 指令调度
 - 8.1 LLVM指令调度
 - 8.2 Linearize调度器
 - 8.3 Fast调度器
 - 8.4 BURR List调度器
 - 8.5 Source List调度器
 - 8.6 Hybrid List调度器
 - 8.7 Pre-RA-MISched调度器
 - 8.8 Post-RA-TDList调度器
 - 8.9 Post-RA-MISched调度器
 - 8.10 循环调度
 - 8.11 扩展阅读:调度算法的影响因素
 - 8.12 本章小结
 - 第9章 基于SSA形式的编译优化
 - 9.1 前期尾代码重复
 - 9.2 Phi优化
 - 9.3 栈着色
 - 9.4 栈槽分配
 - 9.5 死指令消除
 - 9.6 IPL优化之If-Conversion
 - 9.7 循环不变量外提
 - 9.8 公共子表达式消除
 - 9.9 代码下沉
 - 9.10 窥孔优化
 - 9.11 本章小结
 - 第10章 寄存器分配
 - 10.1 寄存器分配流程解析
 - 10.2 寄存器分配涉及的Pass
 - 10.3 Fast算法实现
 - 10.4 Basic算法实现
 - 10.5 Greedy算法实现
 - 10.6 PBQP算法实现
 - 10.7 扩展阅读:图着色分配
 - 10.8 4种算法对比
 - 10.9 本章小结
 - 第11章 函数栈帧生成和非SSA形式的编译优化
 - 11.1 函数栈帧生成以及相关优化
 - 11.2 MIR优化
 - 11.3 MIR指令变换和调度
 - 11.4 MIR信息收集及布局优化
 - 11.5 扩展阅读:后缀树构造和应用
 - 11.6 本章小结
 - 第12章 生成机器码
 - 12.1 MC
 - 12.2 机器码生成过程
 - 12.3 本章小结
 - 第13章 添加一个新后端
 - 13.1 适配新后端的各个阶段
 - 13.2 添加新后端所需要的适配
 - 13.3 本章小结
 - 附录
 - 附录A LLVM的中间表示
 - A.1 狭义LLVM IR介绍
 - A.2 指令选择DAG介绍
 - A.3 MIR介绍
 - A.4 MC介绍
 - A.5 GMIR介绍
 - 附录B BPF介绍
 - B.1 eBPF基础
 - B.2 Linux如何运行eBPF
 - 附录C Pass的分类与管理
 - C.1 LegacyPassManage中的Pass
 - C.2 LegacyPassManager对Pass的管理
 - C.3 New PassManager
 
                        展开全部
                        
出版方
机械工业出版社
机械工业出版社是全国优秀出版社,自1952年成立以来,坚持为科技、为教育服务,以向行业、向学校提供优质、权威的精神产品为宗旨,以“服务社会和人民群众需求,传播社会主义先进文化”为己任,产业结构不断完善,已由传统的图书出版向着图书、期刊、电子出版物、音像制品、电子商务一体化延伸,现已发展为多领域、多学科的大型综合性出版社,涉及机械、电工电子、汽车、计算机、经济管理、建筑、ELT、科普以及教材、教辅等领域。
