Skip to content

Commit

Permalink
[docs] fix accipit spec typo & quads UD chain description
Browse files Browse the repository at this point in the history
  • Loading branch information
floatshadow committed Mar 4, 2024
1 parent 729aa39 commit ced42f2
Show file tree
Hide file tree
Showing 2 changed files with 2 additions and 1 deletion.
1 change: 1 addition & 0 deletions docs/appendix/accipit-spec.md
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,7 @@ i32,32 位带符号整数。
指针类型,由被指的类型 (pointee type) 加上后缀 * 表示。

函数类型,类似于函数声明,例如:

- 加法 add,两个 i32 参数,一个 i32 返回值 `fn(i32, i32) -> i32`
- 读入,无参数,一个 i32 返回值 `fn() -> i32`
- 输出,一个 i32 参数,无返回值 `fn(i32) -> ()`
Expand Down
2 changes: 1 addition & 1 deletion docs/appendix/quads2ssa.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ result = x add y

你会发现,我们一直需要知道某个源变量最新的赋值发生在哪里,这意味这:

- 要么每次从后往前扫描,第一个遇到的对源变量的赋值,就是最新的值,这样时间开销很大.
- 要么每次从后往前扫描,第一个遇到的对源变量的赋值,就是最新的值,而且对于循环可能需要特殊处理,这样时间开销很大.
- 要么维护一个稠密的集合,记录当前指令前所有变量最新的赋值发生在哪里,这样在变量很多的情况下空间开销很大.

上述这种关系被称为 use-def chain,静态单赋值形式 (SSA) 的优点之一就在于它能较好地维护 use-def chain.SSA 的一个特点是每个变量仅赋值一次,因此,上面的代码需要写成:
Expand Down

0 comments on commit ced42f2

Please sign in to comment.