2021-07-11谓词执行

1. 基于谓词的IF转换1.1if转换的实现过程需要考虑两个方面的问题(1)如何为每个基本块分配谓词(2)将谓词定义指令放在程序的什么位置程序段的代码都可以根据其自身的控制依赖,表示为相关的程序依赖图(PDG),图中每个顶点表示一个基本块,每条边,代表了一个可能的控制转移。因此每个基本块的谓词由它所在的分支路径和PDG中的分支条件决定,所以第一个问题就相当于如何为PDG中每个顶点指定谓词。第二个问题需要考虑分支转移的最早位置。当前有关的if转换都是基于一个经典的IF转换算法,它能够将谓词的使用和谓
摘要由CSDN通过智能技术生成

1. 基于谓词的IF转换

1.1if转换的实现过程需要考虑两个方面的问题
(1)如何为每个基本块分配谓词
(2)将谓词定义指令放在程序的什么位置
程序段的代码都可以根据其自身的控制依赖,表示为相关的程序依赖图(PDG),图中每个顶点表示一个基本块,每条边,代表了一个可能的控制转移。因此每个基本块的谓词由它所在的分支路径和PDG中的分支条件决定,所以第一个问题就相当于如何为PDG中每个顶点指定谓词。第二个问题需要考虑分支转移的最早位置。
当前有关的if转换都是基于一个经典的IF转换算法,它能够将谓词的使用和谓词定义指令的数目最小化
1、 计算后必经节点;
2、 计算指令间的控制依赖;
3、 将控制依赖分解成R,K,函数;
4、 根据R,K函数分配谓词并用对应的限定谓词将指令转换为谓词指令;
5、 合并谓词定义指令;
6、 减少谓词数目
我们通过两个函数来解决,R规定了每个块的赋值命名和相关谓词,K规定了使用中的每个谓词的位置指示,而位置取决于(1)谓词操作的语义(2)执行风格

2. 计算后必经节点信息

必经节点:如果控制流图节点d是节点i的必经节点,记作d dom i,如果从entry节点到i的每一条可能执行的路径都包括d,显然d是自反的(每个节点都是自己的必经节点)、传递的(a dom b 且b dom c,则a dom c)、和反对称的(a dom b 且b dom a,则a=b),任何节点的必经节点是一个集合。
后必经

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值