参考¶
LLVM 和 API 参考文档。
API 参考¶
- Doxygen 生成的文档
(类)
- 如何使用属性
解答有关新属性基础架构的一些问题。
LLVM 参考¶
命令行实用工具¶
- LLVM 命令指南
LLVM 命令行实用工具的参考手册(LLVM 工具的“man”页)。
- LLVM bugpoint 工具:设计和用法
自动错误查找器和测试用例缩减器描述和使用信息。
- 使用 -opt-bisect-limit 调试优化错误
用于调试优化引起的故障的命令行选项。
- 符号器标记格式
被
llvm-symbolizer
接受的日志符号器标记的参考。- Microsoft PDB 文件格式
Microsoft PDB(程序数据库)文件格式的详细描述。
垃圾回收¶
- LLVM 中的垃圾回收
源语言编译器应使用的用于编译 GC 程序的接口。
- LLVM 中的垃圾回收安全点
本文描述了垃圾回收支持的一组实验性扩展。
LibFuzzer¶
- libFuzzer – 用于覆盖引导的模糊测试的库。
用于编写进程内引导式模糊器的库。
- 模糊测试 LLVM 库和工具
关于编写和使用模糊器来查找 LLVM 中的错误的信息。
LLVM IR¶
- LLVM 语言参考手册
定义 LLVM 中间表示以及不同节点的汇编形式。
- 未定义行为 (UB)
关于什么是 UB/undef/poison 以及何时使用它们的指南。
- InAlloca 属性的设计和用法
inalloca
参数属性的描述。- LLVM Bitcode 文件格式
本文描述了用于 LLVM “bc”文件的文件格式和编码。
- 机器 IR (MIR) 格式参考手册
MIR 序列化格式的参考手册,该格式用于测试 LLVM 的代码生成 pass。
- 全局指令选择
本文描述了原型指令选择替换 GlobalISel。
- 收敛操作语义
convergent
操作语义和相关内在函数的描述。
测试和调试¶
- LLVM 测试基础设施指南
使用 LLVM 测试基础设施的参考手册。
- test-suite 指南
描述如何编译和运行 test-suite 基准测试。
- GWP-ASan
专为生产用途设计的抽样堆内存错误检测工具包。
XRay¶
- XRay Instrumentation
关于如何在 LLVM 中使用 XRay 的高级文档。
- 使用 XRay 进行调试
如何使用 XRay 调试应用程序的示例。
其他主题¶
- FaultMaps 和隐式检查
LLVM 对将控制流折叠到 faulting 机器指令中的支持。
- LLVM 原子指令和并发指南
关于 LLVM 并发模型的信息。
- LLVM 中的异常处理
本文档描述了 LLVM 中异常处理的设计和实现。
- LLVM 扩展
LLVM 寻求兼容的工具和格式的 LLVM 特定扩展。
- 如何为您的类层次结构设置 LLVM 风格的 RTTI
如何使
isa<>
、dyn_cast<>
等可用于您的类层次结构的客户端。- LLVM 块频率术语
提供有关
BlockFrequencyInfo
分析 pass 中使用的术语的信息。- LLVM 分支权重元数据
提供有关分支预测信息的信息。
- 经常被误解的 GEP 指令
解答有关 LLVM 最常被误解的指令的一些非常常见的问题。
- Scudo 强化分配器
一个实现安全强化的 malloc() 的库。
- 内存模型松弛注释
目标定义的对 LLVM 并发模型的松弛。
- MemTagSanitizer
旨在缓解内存相关漏洞的生产代码的安全强化。基于 Armv8.5-A 内存标记扩展。
- 依赖图
各种依赖图(例如 DDG(数据依赖图))的设计描述。
- 推测加载强化
Spectre v1 的推测加载强化缓解措施的描述。
- LLVM 中的分段堆栈
本文档描述了分段堆栈以及它们在 LLVM 中的使用方式。
- LLVM 的可选富反汇编输出
本文档描述了可选的富反汇编输出语法。
- LLVM 中的堆栈映射和补丁点
LLVM 对将指令地址映射到值的位置并允许修补代码的支持。
- LLVM 中的协程
LLVM 对协程的支持。
- 指针身份验证
指针身份验证、其 LLVM IR 表示形式及其在后端中的支持的描述。
- YAML I/O
使用 LLVM YAML I/O 库的参考指南。
- 收敛性和均匀性
在不可约控制流存在的情况下,均匀性分析的描述及其实现。