Skip to content

Commit

Permalink
Update 06LLVMDetail.md
Browse files Browse the repository at this point in the history
  • Loading branch information
sfs999 authored Aug 11, 2024
1 parent 2d7ebf3 commit f27ccd2
Showing 1 changed file with 4 additions and 2 deletions.
6 changes: 4 additions & 2 deletions 03Compiler/01Tradition/06LLVMDetail.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 基本单位

Expand Down

0 comments on commit f27ccd2

Please sign in to comment.