graph - 我的 SSA 结构正确吗?(重命名)
问题描述
我一直在学习 ssa(静态单一赋值形式),我得到了下面插入了 phi 函数的图表,但该图表尚未重命名:
我不得不重命名变量,这就是我得到的:
我很不确定这是否正确。我是否正确重命名了变量?这是最小的ssa吗?我正在使用这里的算法( Cytron 等人的论文)来重命名变量。请帮忙!:)
解决方案
不,您的图表不正确。phi 函数和重命名x
和y
是正确的,问题是临时变量t1
通过t3
. 这些变量在L1
进入块时是死的,根本不需要任何 phi 函数。如果您坚持对这些变量使用 phi 函数,则必须假设变量存在并且在输入图形时具有不确定的值。让t1_0
,t2_0
和t3_0
成为这些值并相应地更新重命名的图形。
推荐阅读
- json - 具有依赖类型的 Swift JSON 解码
- tensorflow - 无法在 python 3.9 上安装 tensorflow
- android - 使用 Visual Studio 2019 让 ADB 在 Pixel 5 / Android 11 上工作
- javascript - HTML拖放,dragover事件返回子元素而不是父元素
- reactjs - React - 如何将流类型分配给导出的模块?
- python - AttributeError:“Line2D”对象没有属性“cmap”
- excel - Visual Basic excel vba字符串中最大的数据类型失败
- reactjs - 反应原生的布尔文本输入
- arrays - 尝试使用 image-proc 工具箱中的 regionprops 测量高尔夫球的直径
- list - Flutter calendar Firestore“类型'QuerySnapshot'不是'List'类型的子类型
'"