电子书 编程

学习 LLVM 17:LLVM 编译器工具与核心库初学者指南

¥1.90 已售 0
✓ 自动发货 ✓ 永久有效 ✓ 售后保障

资源介绍

(第二版)(英文版电子书) 核心内容 LLVM 基础与环境搭建 详细讲解 LLVM 的安装与编译过程,涵盖 Ubuntu、Fedora、FreeBSD、macOS 和 Windows 等多个操作系统。 介绍 CMake 和 Ninja 等构建工具的配置方法,以及如何通过自定义变量优化 LLVM 的构建流程。 编译器结构与前端实现 解析编译器的三大核心组件:前端(词法分析、语法分析、语义分析)、中端(中间代码优化)和后端(机器码生成)。 以算术表达式语言和简化的 Modula-2 子集 “tinylang” 为例,演示如何手动实现词法分析器(Lexer)、语法分析器(Parser)和抽象语法树(AST),并进行语义检查。 中间代码生成与优化 讲解 LLVM 中间表示(IR)的结构与特性,包括基本块、指令选择和静态单赋值(SSA)形式。 介绍如何从 AST 生成 LLVM IR,处理控制流(如条件语句、循环)、聚合数据类型(数组、结构体)和面向对象特性(类、虚函数)。 深入探讨 LLVM 的优化管道,包括如何自定义优化 passes、实现函数内联和死代码消除等优化策略。 高级主题与实战应用 TableGen 语言:介绍 LLVM 专用的领域特定语言,用于简化后端代码生成,定义寄存器、指令格式和目标描述。 JIT 编译:讲解如何利用 LLVM 的即时编译功能(ORC 框架)实现动态代码生成与执行,构建交互式计算器等应用。 调试与测试工具:涵盖地址 sanitizer、内存 sanitizer 和线程 sanitizer 等工具的使用,以及如何通过 libFuzzer 进行模糊测试和 XRay 进行性能分析。 后端开发:指导读者为新 CPU 架构添加后端支持,包括目标描述、指令选择和机器码生成。 适用人群 编译器开发人员、爱好者和工程师。 希望利用编译器工具进行代码分析与优化的 C++ 软件工程师。 对 LLVM 核心库感兴趣的初学者,需具备中级 C++ 编程经验。 特色亮点 实践性强:包含大量示例代码和项目案例,如表达式计算器、自定义语言编译器等,便于读者动手实践。 内容更新:第二版新增 TableGen 语言详解、GlobalISel 指令框架和机器函数 pass 开发等内容,聚焦 LLVM 17 的新特性。 结构清晰:按 “基础 - 进阶 - 实战” 的逻辑组织,从环境搭建到后端开发逐步深入,适合系统学习。 通过本书,读者不仅能掌握 LLVM 的核心原理与工具链使用,还能独立开发支持高级语言特性的编译器,并针对特定硬件架构优化代码生成,为编译器开发和代码优化领域打下坚实基础。