leetcode
18
java
编译器设计
重要的
6月18日期中考试即将到来。
6
月
8
日:SSA
和
GC
单一静态分配
(SSA)
表格
是对代码的转换,它是许多低级优化的先决条件,例如消除死代码/重复代码。
把它想象成变量的版本控制。
每个变量在进行分配时都会获得一个新的版本号,因此是单一分配。
如果我们有多个分支(即循环或条件),我们需要将不同的变量版本合并在一起(由
phi
函数表示)。
伪代码
SSA
表格
基本块:
a
=
5
a
=
a
+
10
print
a
SSA
基本块:
a_0
=
5
a_1
=
a_0
+
10
print
a_1
有条件的
a
=
5
if
(a
<
10)
{
a++
}
else
{
a--
}
a
=
a
*
2
print
a
有条件的SSA
a_0
=
5
if
(a_0
<
10)
{
a_1
=
a_0
+
1
}
else
{
a_2
=
a_0
-
1
}
a_3
=
phi(a_1,a_2)
*
2
print
a_3
垃圾收集
啊内存管理。
不管它如何发生,它必须发生,除非你喜欢泄漏内存。
记住现代计算机系统
评论0