图书介绍

LLVM Cookbook中文版PDF|Epub|txt|kindle电子书版本网盘下载

LLVM Cookbook中文版
  • (印)MayurPandey,(印)SuyogSarda著;王欢明译 著
  • 出版社: 北京:电子工业出版社
  • ISBN:9787121288470
  • 出版时间:2016
  • 标注页数:294页
  • 文件大小:24MB
  • 文件页数:309页
  • 主题词:编译程序-程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

LLVM Cookbook中文版PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 LLVM设计与使用1

概述1

模块化设计2

交叉编译Clang/LLVM6

将C源码转换为LLVM汇编码8

将LLVM IR转换为bitcode9

将LLVM bitcode转换为目标平台汇编码12

将LLVM bitcode转回为LLVM汇编码14

转换LLVM IR15

链接LLVM bitcode18

执行LLVM bitcode19

使用C语言前端——Clang20

使用GO语言前端24

使用DragonEgg25

第2章 实现编译器前端29

概述29

定义TOY语言30

实现词法分析器32

定义抽象语法树35

实现语法分析器38

解析简单的表达式39

解析二元表达式42

为解析编写驱动45

对TOY语言进行词法分析和语法分析47

为每个AST类定义IR代码生成方法48

为表达式生成IR代码49

为函数生成IR代码51

增加IR优化支持55

第3章 扩展前端并增加JIT支持57

概述57

处理条件控制结构——if/then/else结构58

生成循环结构64

处理自定义二元运算符71

处理自定义一元运算符77

增加JIT支持83

第4章 准备优化87

概述87

多级优化88

自定义LLVM Pass89

使用opt工具运行自定义Pass92

在新的Pass中调用其他Pass93

使用Pass管理器注册Pass96

实现一个分析Pass99

实现一个别名分析Pass102

使用其他分析Pass105

第5章 实现优化109

概述109

编写无用代码消除Pass110

编写内联转换Pass115

编写内存优化Pass119

合并LLVM IR121

循环的转换与优化123

表达式重组126

IR向量化127

其他优化Pass134

第6章 平台无关代码生成器139

概述139

LLVM IR指令的生命周期140

使用GraphViz可视化LLVM IR控制流图143

使用TableGen描述目标平台150

定义指令集151

添加机器码描述152

实现MachineInstrBuider类156

实现MachineBasicBlock类157

实现MachineFunction类159

编写指令选择器160

合法化SelectionDAG166

优化SelectionDAG173

基于DAG的指令选择179

基于SelectionDAG的指令调度186

第7章 机器码优化191

概述191

消除机器码公共子表达式192

活动周期分析203

寄存器分配209

插入头尾代码215

代码发射219

尾调用优化221

兄弟调用优化225

第8章 实现LLVM后端227

概述227

定义寄存器和寄存器集合228

定义调用约定230

定义指令集231

实现栈帧lowering232

打印指令236

选择指令240

增加指令编码244

子平台支持246

多指令lowering249

平台注册251

第9章 LLVM项目最佳实践265

概述265

LLVM中的异常处理265

使用sanitizer271

使用LLVM编写垃圾回收器273

将LLVM IR转换为JavaScript279

使用Clang静态分析器281

使用bugpoint282

使用LLDB286

使用LLVM通用Pass291

热门推荐