第八章+代码优化(完).pptVIP

  • 2
  • 0
  • 约3.71千字
  • 约 40页
  • 2019-08-10 发布于广东
  • 举报
由基本块构造DAG算法: 首先, DAG为空,对基本块的每一个四元式,依次执行: (1)若Node(B)无定义,则构造一个标记为B的叶结点,并定义Node(B)为这个结点;判断当前四元式: 若为0型,则记为Node(B)的值为n,转(4) 若为1型,则转(2)中的① 。 若为2型,且Node(C)无定义,则构造一个标记为C的叶结点,并定义为Node(C)为这个结点,转(2)中② 。 (2) 如果Node(B) 是标记为常数的叶结点,则转(2)中③ ,否则转(3). 和Node(C)都是标记为常数的叶结点,则转(2)中③ ,否则转(3). 合并已知量。 执行op B(或 B op C),令新常数为p。如果Node(B)(或Node(C))是处理当前四元式时新构造出来的新结点,则删除它。若Node(p)无定义,则构造一用p做标记的叶结点n。置Node(p)=n,转(4)。 (3)寻找公共子表达式。 检查DAG中是否有满足下列条件的一个结点: 其唯一后继结点为Node(B),且标记为op。 其唯一左后继为Node(B),右后继Node(C),且标记为op。 满足上述条件之一,则构造结点n,否则把已有的结点作为它的结点,并设该结点为n,转(4)。 (4) 如果Node(A)无定义,则把A附加在结点n上,并令Node(A) = n,否则,A为非叶结点时,先把A从Node(A

文档评论(0)

1亿VIP精品文档

相关文档