diff --git a/03Compiler/01Tradition/06LLVMDetail.md b/03Compiler/01Tradition/06LLVMDetail.md index 34b08627..935fa3cc 100644 --- a/03Compiler/01Tradition/06LLVMDetail.md +++ b/03Compiler/01Tradition/06LLVMDetail.md @@ -162,11 +162,13 @@ ret i32 %1 在进行编译器优化时,需要了解 LLVM IR(中间表示)的内存模型。LLVM IR 的内存模型是基于基本块的,每个基本块都有自己的内存空间,指令只能在其内存空间内执行。 -在 LLVM 架构中,几乎所有的实体都是一个 `Value`。`Value` 是一个非常基础的基类,其子类表示它们的结果可以被其他地方使用。继承自 `User` 的类表示它们会使用一个或多个 `Value` 对象。根据 `Value` 与 `User` 之间的关系,可以引申出 use-def 链和 def-use 链这两个概念。 +在 LLVM 架构中,几乎所有的实体都是一个 `Value`。`Value` 是一个非常基础的基类,其子类表示它们的结果可以被其他地方使用。`User` 类是继承自 `Value` 的一个类,表示能够使用一个或多个 `Value` 的对象。根据 `Value` 与 `User` 之间的关系,可以引申出 use-def 链和 def-use 链这两个概念。 - use-def 链是指被某个 `User` 使用的 `Value` 列表; -- def-use 链是指使用某个 `Value` 的 `User` 列表。实际上,LLVM 中还定义了一个 `Use` 类,`Use` 表示上述使用关系中的一个边。 +- def-use 链是指使用某个 `Value` 的 `User` 列表。 + +实际上,LLVM 中还定义了一个 `Use` 类,`Use` 是一个对象,它表示对一个 `Value` 的单个引用或使用。主要作用是帮助 LLVM 跟踪每个 `Value` 的所有使用情况,从而支持 def-use 链的构建和数据流分析。 ### LLVM IR 基本单位