llvm编译器实战教程第二版-LLVM编译器实战教程.pdfVIP

llvm编译器实战教程第二版-LLVM编译器实战教程.pdf

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
llvm编译器实战教程第⼆版_ LLVM编译器实战教程 出版者的话 译者序 前⾔ 关于作者 关于审稿⼈ 第 1章 构建和安装 VM 1 1.1  了解 VM版本 1 1.2 获取预构建包 2 1.2.1 获取官⽅预构建⼆进制⽂件 2 1.2.2 使⽤软件包管理器 3 1.3 从源代码构建 4 1.3.1 系统要求 4 1.3.2 获取源代码 4 1.3.3 构建和安装 VM 5 1.3.4 Windows和Microsoft Visual Studio 10 1.3.5 Mac OS X和Xcode 12 1.4 总结 14 第2章 外部项 ⽬ 15 2.1 Clang外部项 ⽬介绍 15 2.1.1 构建和安装Clang外部⼯具 16 2.1.2 理解Compiler-RT 17 2.1.3 实验Compiler-RT 17 2.2 使⽤DragonEgg插件 18 2.2.1 构建DragonEgg 19 2.2.2 使⽤DragonEgg和 VM⼯具了解编译流程 19 2.2.3 理解 VM测试套件 20 2.2.4 使⽤ DB 2 1 2.2.5 libc++标准库介绍 23 2.3 总结 25 第3章 ⼯具和设计 26 3.1  VM的基本设计原理及其历史 26 3.2 理解 ⽬前的 VM 27 3.3 与编译器驱动程序交互 29 3.4 使⽤独⽴⼯具 30 3.5 深⼊ VM内部设计 33 3.5.1  了解 VM的基本库 33 3.5.2 介绍 VM的C++惯例 34 3.5.3 演⽰可插拔的流程接⼝ 37 3.6 编写你的第⼀个 VM项 ⽬ 38 3.6.1 编写Makefile 38 3.6.2 编写代码 40 3.7 关于 VM源代码的⼀般建议 4 1 3.7.1 将代码理解为⽂档 42 3.7.2 请求社区的帮助 42 3.7.3 应对更新 :使⽤SVN⽇志作为⽂档 42 3.7.4 结束语 44 3.8 总结 44 第4章 前端 45 4.1 Clang简介 45 4.1.1 前端操作 46 4.1.2 库 47 4.1.3 理解Clang诊断 49 4.2 Clang前端阶段介绍 52 4.2.1 词法分析 52 4.2.2 语法分析 58 4.2.3 语义分析 63 4.2.4 ⽣成 VM IR代码 65 4.3 完整的例⼦ 65 4.4 总结 68 第5章  VM中间表⽰ 69 5.1 概述 69 5.2 操作IR格式的基本⼯具⽰例 7 1 5.3  VM IR语法介绍 7 1 5.4 编写⾃定义的 VM IR⽣成器 76 5.4.1 构建和运⾏IR⽣成器 79 5.4.2 使⽤C++后端编写代码来⽣成IR构造 80 5.5 在IR层执⾏优化 80 5.5.1 编译时优化和链接时优化 80 5.5.2 发现最佳编译器流程 82 5.5.3 流程间的依赖关系 83 5.5.4  了解流程API 85 5.5.5  ⾃定义流程 85 5.6 总结 89 第6章 后端 90 6.1 概述 90 6.2 后端代码结构介绍 92 6.3 后端库介绍 93 6.4 如何使⽤TableGen实现 VM后端 94 6.4.1 TableGen语⾔ 95 6.4.2 代码⽣成器.td⽂件介绍 96 6.5 指令选择阶段介绍 100 6.5.1 SelectionDAG类 100 6.5.2 降级 102 6.5.3 DAG合并以及合法化 103 6.5.4 DAG到DAG指令选择 104 6.5.5 指令选择过程可视化 107 6.5.6 快速指令选择 107 6.6 调度器 107 6.6.1 指令执⾏进程表 108 6.6.2 竞争检测 109 6.6.3 调度单元 109 6.7 机器指令 109 6.8 寄存器分配 110 6.8.1 寄存器合并器 111 6.8.2 虚拟寄存器重写 114 6.8.3 编译 ⽬标的信息 115

文档评论(0)

movie + 关注
实名认证
文档贡献者

喜欢分享的作者

1亿VIP精品文档

相关文档

相关课程推荐