LLVMCookbook中文版 - (EPUB全文下载)

文件大小:1.83 mb。
文件格式:epub 格式。
书籍内容:

目录
内容简介
译者序
关于作者
关于审校者
前言
第1章 LLVM设计与使用
概述
模块化设计
交叉编译Clang/LLVM
将C源码转换为LLVM汇编码
将LLVM IR转换为bitcode
将LLVM bitcode转换为目标平台汇编码
将LLVM bitcode转回为LLVM汇编码
转换LLVM IR
链接LLVM bitcode
执行LLVM bitcode
使用C语言前端——Clang
使用GO语言前端
使用DragonEgg
第2章 实现编译器前端
概述
定义TOY语言
实现词法分析器
定义抽象语法树
实现语法分析器
解析简单的表达式
解析二元表达式
为解析编写驱动
对TOY语言进行词法分析和语法分析
为每个AST类定义IR代码生成方法
为表达式生成IR代码
为函数生成IR代码
增加IR优化支持
第3章 扩展前端并增加JIT支持
概述
处理条件控制结构——if/then/else结构
生成循环结构
处理自定义二元运算符
处理自定义一元运算符
增加JIT支持
第4章 准备优化
概述
多级优化
自定义LLVM Pass
使用opt工具运行自定义Pass
在新的Pass中调用其他Pass
使用Pass管理器注册Pass
实现一个分析Pass
实现一个别名分析Pass
使用其他分析Pass
第5章 实现优化
概述
编写无用代码消除Pass
编写内联转换Pass
编写内存优化Pass
合并LLVM IR
循环的转换与优化
表达式重组
IR向量化
其他优化Pass
第6章 平台无关代码生成器
概述
LLVM IR指令的生命周期
使用GraphViz可视化LLVM IR控制流图
使用TableGen描述目标平台
定义指令集
添加机器码描述
实现MachineInstrBuilder类
实现MachineBasicBlock类
实现MachineFunction类
编写指令选择器
合法化SelectionDAG
优化SelectionDAG
基于DAG的指令选择
基于SelectionDAG的指令调度
第7章 机器码优化
概述
消除机器码公共子表达式
活动周期分析
寄存器分配
插入头尾代码
代码发射
尾调用优化
兄弟调用优化
第8章 实现LLVM后端
概述
定义寄存器和寄存器集合
定义调用约定
定义指令集
实现栈帧lowering
打印指令
选择指令
增加指令编码
子平台支持
多指令lowering
平台注册
第9章 LLVM项目最佳实践
概述
LLVM中的异常处理
使用sanitizer
使用LLVM编写垃圾回收器
将LLVM IR转换为JavaScript
使用Clang静态分析器
使用bugpoint
使用LLDB
使用LLVM通用Pass
图书在版编目(CIP)数据
LLVM Cookbook中文版/(印)潘迪(Pandey,M.),(印)撒达(Sarda,S.)著;王欢明译.—北京:电子工业出版社,2016.6
ISBN 978-7-121-28847-0
Ⅰ. ①L… Ⅱ. ①潘… ②撒… ③王… Ⅲ. ①编译程序-程序设计 Ⅳ. ①TP314
中国版本图书馆CIP数据核字(2016)第108748号
策划编辑:张春雨
责任编辑:付 睿
印  刷:三河市双峰印刷装订有限公司
装  订:三河市双峰印刷装订有限公司
出版发行:电子工业出版社
北京市海淀区万寿路173信箱 邮编:100036
开  本:787×980 1/16 印张:19.25 字数:375千字
版  次:2016年6月第1版
印  次:2016年6月第1次印刷
定  价:75.00元
凡所购买电子工业出版社图书有缺损问题,请向购买书店调换。若书店售缺,请与本社发行部联系,联系及邮购电话:(010)88254888,88258888。
质量投诉请发邮件至zlts@phei.com.cn,盗版侵权举报请发邮件至dbqq@phei.com.cn。
本书咨询联系方式:010-51260888-819 faq@phei.com.cn。
Copyright © Packt Publishing 2015. First published in the English language under the title ‘LLVM Cookbook’.
本书简体中文版专有出版权由Packt Publishing授予电子工业出版社。未经许可,不得以任何方式复制或抄袭本书的任何部分。专有出版权受法律保护。
版权贸易合同登记号 图字:01-2015-6374
内容简介
本书以任务驱动的方式,带领读者编写基于LLVM的编译器前端、优化器、后端。通过丰富的实例,读者能够从中理解LLVM的架构,以及如何使用LLVM来编写自己的编译器。
相比于传统的介绍编译技术的书籍,此书更偏向于实战,因此适合熟悉编译但对LLVM比较陌生的人员,也适合正在学习编译技术并且在寻找实战机会的人员。
译者序
LLVM这个名字源于Lower Level Virtual Machine,但这个项目并不局限于创建一个虚拟机,它已经发展成为当今炙手可热的编译器基础框架。LLVM最初以C/C++为编译目标,近年来经过众多机构和开源社区的努力,LLVM已经能够为ActionScript、D、Fortran、Haskell、Java、Objective-C、Swift、Python、Ruby、Rust、Scala等众多语言提供编译支持,而一些新兴语言则直接采用了LLVM作为后端。可以说,LLVM对编译器领域的发展起到了举足轻重的作用。
本书是目前为数不多的介绍LLVM的书籍。本书从LLVM的构建与安装开始说起,介绍了LLVM的设计思想、LLVM工具链、前端、优化器、后端,涵盖了LLVM的绝大部分内容。本书以任务驱动的方式对内容进行介绍,围绕着实现TOY语言的编译器,每一章节都会带领读者编写代码。在第2章实现了编译器的前端,第4、5章逐步实现优化器,后面的章节则实现了编译器后端。书中以实践的方式进行讲 ............

书籍插图:
书籍《LLVMCookbook中文版》 - 插图1
书籍《LLVMCookbook中文版》 - 插图2

以上为书籍内容预览,如需阅读全文内容请下载EPUB源文件,祝您阅读愉快。

版权声明:书云(openelib.org)是世界上最大的在线非盈利图书馆之一,致力于让每个人都能便捷地了解我们的文明。我们尊重著作者的知识产权,如您认为书云侵犯了您的合法权益,请参考版权保护声明,通过邮件openelib@outlook.com联系我们,我们将及时处理您的合理请求。 数研咨询 流芳阁 研报之家 AI应用导航 研报之家
书云 Open E-Library » LLVMCookbook中文版 - (EPUB全文下载)