参考

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 库的参考指南。

收敛性和均匀性

在不可约控制流存在的情况下,均匀性分析的描述及其实现。