网站首页 软件下载 游戏下载 翻译软件 电子书下载 电影下载 电视剧下载 教程攻略
书名 | LLVM编译器实战教程/计算机科学丛书 |
分类 | |
作者 | (巴西)布鲁诺·卡多索·洛佩斯//拉斐尔·奥勒 |
出版社 | 机械工业出版社 |
下载 | ![]() |
简介 | 内容推荐 LLVM是一个正在发展中的前沿编译器技术框架,它易于扩展并设计成多个库,可以为编译器入门者提供流畅的体验,并能使编译器开发所涉及的学习过程变得非常顺畅。本书首先介绍如何配置、构建和安装LLVM库、工具和外部项目,随后介绍LLVM设计以及它在每个LLVM编译器阶段的实际工作方式,这些阶段包括:前端、IR、后端、JIT引擎、交叉编译功能和插件接口。本书还提供了多个实际操作的范例和源代码片段,可以帮助读者顺利地掌握LLVM编译器开发环境的入门知识。 目录 出版者的话 译者序 前言 关于作者 关于审稿人 第1章 构建和安装LLVM 1.1 了解LLVM版本 1.2 获取预构建包 1.2.1 获取官方预构建二进制文件 1.2.2 使用软件包管理器 1.3 从源代码构建 1.3.1 系统要求 1.3.2 获取源代码 1.3.3 构建和安装LLVM 1.3.4 Windows和Microsoft Visual Studio 1.3.5 Mac OS X和Xcode 1.4 总结 第2章 外部项目 2.1 Clang外部项目介绍 2.1.1 构建和安装Clang外部工具 2.1.2 理解Compiler-RT 2.1.3 实验Compiler-RT 2.2 使用DragonEgg插件 2.2.1 构建DragonEgg 2.2.2 使用DragonEgg和LLVM工具了解编译流程 2.2.3 理解LLVM测试套件 2.2.4 使用LLDB 2.2.5 libc++标准库介绍 2.3 总结 第3章 工具和设计 3.1 LLVM的基本设计原理及其历史 3.2 理解目前的LLVM 3.3 与编译器驱动程序交互 3.4 使用独立工具 3.5 深入LLVM内部设计 3.5.1 了解LLVM的基本库 3.5.2 介绍LLVM的C++惯例 3.5.3 演示可插拔的流程接口 3.6 编写你的第一个LLVM项目 3.6.1 编写Makefile 3.6.2 编写代码 3.7 关于LLVM源代码的一般建议 3.7.1 将代码理解为文档 3.7.2 请求社区的帮助 3.7.3 应对更新:使用SVN日志作为文档 3.7.4 结束语 3.8 总结 第4章 前端 4.1 Clang简介 4.1.1 前端操作 4.1.2 库 4.1.3 理解Clang诊断 4.2 Clang前端阶段介绍 4.2.1 词法分析 4.2.2 语法分析 4.2.3 语义分析 4.2.4 生成LLVM IR代码 4.3 完整的例子 4.4 总结 第5章 LLVM中间表示 5.1 概述 5.2 操作IR格式的基本工具示例 5.3 LLVM IR语法介绍 5.4 编写自定义的LLVM IR生成器 5.4.1 构建和运行IR生成器 5.4.2 使用C++后端编写代码来生成IR构造 5.5 在IR层执行优化 5.5.1 编译时优化和链接时优化 5.5.2 发现最佳编译器流程 5.5.3 流程间的依赖关系 5.5.4 了解流程API 5.5.5 自定义流程 5.6 总结 第6章 后端 6.1 概述 6.2 后端代码结构介绍 6.3 后端库介绍 6.4 如何使用TableGen实现LLVM后端 6.4.1 TableGen语言 6.4.2 代码生成器.td文件介绍 6.5 指令选择阶段介绍 6.5.1 SelectionDAG类 6.5.2 降级 6.5.3 DAG合并以及合法化 6.5.4 DAG到DAG指令选择 6.5.5 指令选择过程可视化 6.5.6 快速指令选择 6.6 调度器 6.6.1 指令执行进程表 6.6.2 竞争检测 6.6.3 调度单元 6.7 机器指令 6.8 寄存器分配 6.8.1 寄存器合并器 6.8.2 虚拟寄存器重写 6.8.3 编译目标的信息 6.9 前序代码和结束代码 6.10 机器代码框架介绍 6.10.1 MC指令 6.10.2 代码输出 6.11 自定义机器流程 6.12 总结 第7章 即时编译器 7.1 LLVM JIT引擎的基础知识介绍 7.1.1 介绍执行引擎 7.1.2 内存管理 7.2 llvm::JIT框架介绍 7.2.1 将二进制大对象写入内存 7.2.2 使用JITMemoryManager 7.2.3 目标代码输出器 7.2.4 目标信息 7.2.5 学习如何使用JIT类 7.3 llvm::MCJIT框架介绍 7.3.1 MCJIT引擎 7.3.2 MCJIT中模块编译过程 7.3.3 使用MCJIT引擎 7.4 使用LLVM JIT编译工具 7.4.1 使用lli工具 7.4.2 使用llvm-rtdyld工具 7.5 其他资源 7.6 总结 第8章 跨平台编译 8.1 GCC和LLVM对比 8.2 目标三元组介绍 8.3 准备自己的工具链 8.3.1 标准C/C++库 8.3.2 运行时库 8.3.3 汇编器和链接器 8.3.4 Clang前端 8.4 用Clang命令行参数进行交叉编译 8.4.1 针对目标的驱动程序选项 8.4.2 依赖包 8.4.3 交叉编译 8.4.4 更改系统根目录 8.5 生成Clang交叉编译器 8.5.1 配置选项 8.5.2 构建和安装基于Clang的交叉编译器 8.5.3 其他构建方法 8.6 测试 8.6.1 开发板 8.6.2 模拟器 8.7 其他资源 8.8 总结 第9章 Clang静态分析器 9.1 静态分析器的作用 9.1.1 传统警告信息和Clang静态分析器比较 9.1.2 符号执行引擎的高效性 9.2 测试静态分析器 9.2.1 使用驱动程序与使用编译器 9.2.2 了解可用的检查器 9.2.3 在Xcode IDE中使用静态分析器 9.2.4 生成HTML格式的图形 9.2.5 处理大型项目 9.3 使用自定义的检查器扩展静态分析器 9.3.1 熟悉项目架构 9.3.2 自定义检查器 9.4 其他资源 9.5 总结 第10章 基于LibTooling的Clang工具 10.1 生成编译命令数据库 10.2 cla |
随便看 |
|
霍普软件下载网电子书栏目提供海量电子书在线免费阅读及下载。