我正在尝试使用本文中描述的算法将命令式编程语言转换为管理范式 (ANF):http ://www.sciencedirect.com/science/article/pii/S1571066105825964
在论文中,Zadarnovsky 等人。描述一种将 SSA 程序转换为 ANF 形式的算法,然后继续介绍我目前不感兴趣的优化算法。
我的问题是:如何将指针变量转换为 SSA 形式?
我正在尝试使用本文中描述的算法将命令式编程语言转换为管理范式 (ANF):http ://www.sciencedirect.com/science/article/pii/S1571066105825964
在论文中,Zadarnovsky 等人。描述一种将 SSA 程序转换为 ANF 形式的算法,然后继续介绍我目前不感兴趣的优化算法。
我的问题是:如何将指针变量转换为 SSA 形式?
指针是一个值,就像整数或浮点数是一个值一样。
这是libfirm 文档中的一个示例,
表示x.z
:
这是 SSA 形式的数据依赖图(边缘方向反转的数据流)。黄色的地址节点包含 的符号地址x
。Member 操作提取指向该z
字段的指针。Load 操作采用该指针并在那里加载值。Load 还通过蓝色边缘获取另一个值,即内存状态。Proj 节点表示加载的值,可供其他操作使用。