《LLVM Cookbook中文版》电子书下载

LLVM Cookbook中文版txt,chm,pdf,epub,mobi下载
作者: 【印】Mayur Pandey(马尤尔•潘迪) / 【印】Suyog Sarda(苏尤葛•撒达)
出版社: 电子工业出版社
译者: 王欢明
出版年: 2016-6
页数: 351
定价: 75.00元
装帧: 平装
ISBN: 9787121288470

内容简介  · · · · · ·

《LLVM Cookbook中文版》以任务驱动的方式,带领读者编写基于LLVM 的编译器前端、优化器、后端。通过丰富的实例,读者能够从中理解LLVM 的架构,以及如何使用LLVM 来编写自己的编译器。

相比于传统的介绍编译技术的书籍,此书更偏向于实战,因此适合熟悉编译但对LLVM 比较陌生的人员,也适合正在学习编译技术并且在寻找实战机会的人员。





作者简介  · · · · · ·

Mayur Pandey 是一名专业的软件工程师,同时也是一位开源软件的爱好者。他专注于编译器以及编译器工具的开发,是LLVM 开源社区的活跃贡献者,也是Tizen 编译器项目的一员,他对其他编译器也有着亲身实践经验。

Mayur 在印度阿拉哈巴德的Motilal Nehru 国家技术研究所获得学士学位。目前居住在印度班加罗尔。

Suyog Sarda 是一名专业的软件工程师,同时也是一位开源软件的爱好者。他专注于编译器以及编译器工具的开发,是LLVM 开源社区的活跃贡献者,也是Tizen 编译器项目的一员。除此之外,Suyog 也参与了ARM 和x86 架构的代码改进工作。他对其他的编译器也有着亲身实践经验。他对编译器的主要研究在于代码优化和向量化。除了编译器之外,Suyog 也对Linux 内核的开发很感兴趣。他曾在2012 年于迪拜由Birla...



目录  · · · · · ·

前言 XI
第1 章 LLVM设计与使用 1
概述 1
模块化设计 2
交叉编译Clang/LLVM 6
将C 源码转换为LLVM 汇编码 8
· · · · · · ()
前言 XI
第1 章 LLVM设计与使用 1
概述 1
模块化设计 2
交叉编译Clang/LLVM 6
将C 源码转换为LLVM 汇编码 8
将LLVM IR 转换为bitcode 9
将LLVM bitcode 转换为目标平台汇编码 12
将LLVM bitcode 转回为LLVM 汇编码 14
转换LLVM IR 15
链接LLVM bitcode 18
执行LLVM bitcode 19
使用C 语言前端——Clang 20
使用GO 语言前端 24
使用DragonEgg 25
第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 Pass 89
使用opt 工具运行自定义Pass 92
在新的Pass 中调用其他Pass 93
使用Pass 管理器注册Pass 96
实现一个分析Pass 99
实现一个别名分析Pass 102
使用其他分析Pass 105
第5 章 实现优化 109
概述 109
编写无用代码消除Pass 110
编写内联转换Pass 115
编写内存优化Pass 119
合并LLVM IR 121
循环的转换与优化 123
表达式重组 126
IR 向量化 127
其他优化Pass 134
第6 章 平台无关代码生成器 139
概述 139
LLVM IR 指令的生命周期 140
使用GraphViz 可视化LLVM IR 控制流图 143
使用TableGen 描述目标平台 150
定义指令集 151
添加机器码描述 152
实现MachineInstrBuilder 类 156
实现MachineBasicBlock 类 157
实现MachineFunction 类 159
编写指令选择器 160
合法化SelectionDAG 166
优化SelectionDAG 173
基于DAG 的指令选择 179
基于SelectionDAG 的指令调度 186
第7 章 机器码优化 191
概述 191
消除机器码公共子表达式 192
活动周期分析 203
寄存器分配 209
插入头尾代码 215
代码发射 219
尾调用优化 221
兄弟调用优化 225
第8 章 实现LLVM 后端 227
概述 227
定义寄存器和寄存器集合 228
定义调用约定 230
定义指令集 231
实现栈帧lowering 232
打印指令 236
选择指令 240
增加指令编码 244
子平台支持 246
多指令lowering 249
平台注册 251
第9 章 LLVM项目最佳实践 265
概述265
LLVM 中的异常处理 265
使用sanitizer 271
使用LLVM 编写垃圾回收器 273
将LLVM IR 转换为JavaScript 279
使用Clang 静态分析器 281
使用bugpoint 282
使用LLDB 286
使用LLVM 通用Pass 291
· · · · · · ()

下载地址

发布者:Amor颖

文件说明:zip / 解压密码:yiquhai.com

迅雷下载:您需要先后,才能查看

网盘下载:您需要先后,才能查看

关于内容:内容自于互联网,如果发现有违规内容请联系管理员删除!

作者: Amor颖

该用户很懒,还没有介绍自己。

19 条评论

发表评论

  1. 筱软軟 筱软軟说道:
    1#

    还行。。。

  2. 乐谭卜 乐谭卜说道:
    2#

    还没看 不错

  3. neal0620 neal0620说道:
    3#

    已经很惊讶

  4. 彤彤 彤彤说道:
    4#

    文笔优美

  5. 显示更多