搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
文献来源:
出版时间 :
LLVM编译器原理与实践/芯科技前沿技术丛书
0.00     定价 ¥ 139.00
图书来源: 浙江图书馆(由浙江新华配书)
此书还可采购25本,持证读者免费借回家
  • 配送范围:
    浙江省内
  • ISBN:
    9787111763543
  • 作      者:
    编者:吴建明//吴一昊|责编:李晓波//马超
  • 出 版 社 :
    机械工业出版社
  • 出版日期:
    2024-10-01
收藏
畅销推荐
内容介绍
LLVM是伊利诺伊大学的一个研究项目,提供一个现代化的,基于SSA的编译策略,并能够同时支持静态和动态的任意编程语言的编译目标。LLVM由不同的子项目组成,其中许多是正在生产中使用的商业和开源的项目。它也被广泛用于学术研究。 本书力求将LLVM基础知识理论与案例实践融合在一起进行详细的介绍,帮助读者理解LLVM工作原理,同时按照应用与设备需要,使用LLVM进行相应的优化与部署。本书包含大量示例和代码片段,帮助读者掌握LLVM的编译器开发环境。 本书共11章,包括编译和安装LLVM、LLVM外部项目、LLVM编译器、Clang前端基础、Clang架构与实践示例、LLVM IR实践、LLVM芯片编译器实践示例、LLVM编译器示例代码分析、LLVM优化示例、LLVM后端实践,以及MLIR编译器。 本书适合算法、软件、编译器、人工智能、硬件等专业方向的企业工程技术人员、高校师生、科研工作人员和技术管理人员阅读。
展开
目录
前言
第1章 编译和安装LLVM
1.1 LLVM系统入门
1.1.1 查看LLVM(包括Clang等子项目)
1.1.2 配置和构建LLVM与Clang
1.2 独立构建
1.3 软硬件环境要求
1.3.1 硬件环境
1.3.2 软件环境
1.3.3 主机C++编译器和标准库
1.3.4 获取流行主机C++工具链
1.4 LLVM入门
1.4.1 术语和符号
1.4.2 打开LLVM存档文件
1.4.3 从Git中签出LLVM源代码
1.4.4 本地LLVM配置
1.4.5 编译LLVM套件源代码
1.4.6 交叉编译LLVM
1.4.7 LLVM目标文件的位置
1.4.8 可选配置项目
1.5 目录布局
1.6 使用LLVM工具链的示例
1.7 LLVM常见问题
1.8 LLVM相关链接
第2章 LLVM外部项目
2.1 LLDB调试器
2.1.1 LLDB基础知识
2.1.2 LLDB控制台
2.2 C++标准库libc
2.2.1 libc++库概述
2.2.2 Ubuntu下安装Clang和libc
2.3 compiler-rt运行时库
2.3.1 compiler-rt项目组成
2.3.2 compiler-rt的作用
2.3.3 平台支持
2.3.4 compiler-rt源代码结构
2.3.5 构建compiler-rt
2.4 DragonEgg
2.4.1 DragonEgg将LLVM作为GCC后端
2.4.2 DragonEgg实践
2.5 构建RISC-VLLVM并编译和运行test-suite
2.5.1 构建RISC-V的前期准备
2.5.2 开始构建
2.5.3 编译test-suite
2.5.4 运行LLVMtest-suite
2.6 Clang附加工具
第3章 LLVM编译器
3.1 LLVM与Clang源代码的下载及编译
3.1.1 下载并编译LLVM
3.1.2 Clang源代码的下载与编译
3.2 LLVM编译器基础结构
3.2.1 LLVM工作原理
3.2.2 LLVM的主要子项目
3.2.3 LLVM与Clang语法
3.3 LLVM三段式编译
3.3.1 传统编译器三段式设计及其实现
3.3.2 LLVM的三段式设计的实现
3.4 LLVM与Clang架构
3.4.1 LLVM与Clang架构简介
3.4.2 编译架构特点分析
3.5 LLVM与GCC的区别
3.6 LLVMIR
3.6.1 什么是LLVMIR
3.6.2 LLVMIR编译流程
3.6.3 如何得到IR
3.6.4 IR文件链接
3.6.5 IR文件编译流程
3.6.6 IR语法中的关键字
3.7 词法分析与语法分析
3.7.1 词法分析
3.7.2 AST结构分析
3.8 交叉编译器
3.8.1 主机与目标机
3.8.2 为什么要交叉编译
3.8.3 交叉编译难点
3.9 后端开发
3.9.1 XLA后端分析
3.9.2 SSA问题分析
3.9.3 目标信息代码分析
3.10 LLVM示例实践
3.10.1 如何在ARM上编译LLVM/Clang
3.10.2 如何编写LLVMPass
3.10.3 基于LLVM的依赖分析方案
3.11 LLVM数据并行、时间并行和多核并行
第4章 Clang前端基础
4.1 编译器Clang会代替GCC吗
4.1.1 GCC概述
4.1.2 Clang概述
4.1.3 GCC基本设计与示例
4.1.4 GCC与Clang的区别
4.2 使用Clang静态分析器进行分析调试
4.2.1 静态分析器概述
4.2.2 静态分析器库的结构
4.2.3 静态分析器工作原理
4.2.4 内部检查器
4.2.5 关于Clang静态分析器
4.3 如何进行编译时间混编优化
4.4 Clang模块实现原理探究
4.4.1 ModuleMap与Umbrella
4.4.2 模块的构建
4.4.3 Clang模块复用机制
4.4.4 PCH与PCM文件
4.5 使用Clang校验AST
4.5.1 制作Clang命令行工具的初衷
4.5.2 制作Clang命令行工具主要步骤
4.5.3 环境搭建
4.5.4 开发框架选择
4.5.5 代码开发
4.6 LLVM与Clang的底层原理
4.6.1 传统编译器设计
4.6.2 Clang前端
4.6.3 IR的优化
4.6.4 bitcode
4.6.5 编译流程总结示例
4.7 自定义Clang命令,利用LLVMPass实现对Objective-C函数的静态插桩
4.7.1 Objective-C中的常见的函数hook实现思路
4.7.2 什么是LLVMPass
4.7.3 编译过程
4.8 指令系统
4.8.1 指令系统概述
4.8.2 指令格式
4.8.3 指令的寻址方式
4.8.4 指令的类型与功能
4.8.5 CISC和RISC的比较
第5章 Clang架构与实践示例
5.1 C语言编译器Clang
5.1.1 Clang和GCC编译器架构
5.1.2 Clang起源
5.2 Clang模块内部实现原理及源代码分析
5.2.1 编译参数分析
5.2.2 预处理
5.3 好用的代码检查工具
5.4 Clang在Objective-C中的使用
5.4.1 终端使用特点
5.4.2 Clang的简单使用
5.5 Clang重排对象类结构分析
5.5.1 概述
5.5.2 根类、超类、子类
5.6 使用Clang编译C程序并在安卓设备中执行
5.7 分析Swift高效的原因
5.7.1 Swift的函数派发机制
5.7.2 结构体定义的内存分配
5.7.3 编译SIL
5.7.4 Clang编译流程的缺点
5.7.5 Swift的特点及其编
展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

请选择您读者所在的图书馆

选择图书馆
浙江图书馆
点击获取验证码
登录
没有读者证?在线办证