支配边界及其构建算法 Dominance Frontier and its construction algorithm

支配边界及其构建算法 Dominance Frontier and its construction algorithm

Dominance FrontierSSA插入 ϕ \phi ϕ函数、构建CDG(控制依赖图)算法的重要工具。本文介绍Dominance Frontier的概念和算法。

Dominance Frontier

《现代编译原理C语言描述(修订版)》中对Dominance Frontier的定义如下:

节点xDominance Frontier是所有符合下面条件的节点w的集合:xw的前驱支配节点,但不是w的严格支配节点。

本质上,它是支配节点和非支配节点直接的”分界线“。
在这里插入图片描述
这个例子中,节点5是 { 5 , 6 , 7 , 8 } \{5, 6 ,7 ,8\} {5,6,7,8}的支配节点, D F ( 5 ) = { 5 , 4 , 13 , 12 } DF(5) = \{5, 4, 13, 12\} DF(5)={5,4,13,12}

Alogorithm of Dominance Frontier

《编译器设计(第二版)》提供了一种易于理解的算法,该算法以dominator treeCFG为输入。

根据Dominance Frontier的定义我们可以知道, DF的集合中的节点必定是CFG中的汇合点; 对于 j的某些前驱节点 k, j ∈ D F ( k ) j\in DF(k) jDF(k),那么对于每个 l ∈ D o m ( k ) l \in Dom(k) lDom(k),必然有 j ∈ D F ( l ) j \in DF(l) jDF(l),除非 l ∈ D o m ( j ) l \in Dom(j) lDom(j)。算法如下:
在这里插入图片描述
Dominator相关算法可以参考 支配节点树及其构建算法 Dominator-tree and its Construction Algorithms。看下面这个例子,根据上面的算法很容易得到DF集合。
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

参考

  • [1] 现代编译原理C语言描述(修订版)
  • [2] 编译器设计(第二版)
  • 15
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值