使用DAG图进行优化的例子 (四元式序列) 四元式序列片断: t10 =o a tIo tIl X t12 [=At12t13 4jt14 中At14tl5 =t15t13t13 *4 t16 =a t16 tI7 ·&=xt17t17 j B2
使用DAG图进行优化的例子 (四元式序列) • 四元式序列片断: • * 4 i t10 =[] A t10 t11 • = t11 x * 4 i t12 • []= A t12 t13 * 4 j t14 • =[] A t14 t15 &= t15 t13 t13 • * 4 j t16 []= A t16 t17 • &= x t17 t17 < i j B2
使用DAG图进行优化的例子 (DAG图) 在第10个节点生成后, node(11)变成无定义 B2 12:&= 10:8= 5:=tllx6:[=t13 9:=门t15 1:[]=t17 3.*t1t2 8:*t14t16 4:A 1:4 2:i 7:
使用DAG图进行优化的例子 (DAG图) • 在第10个节点生成后, node(t11)变成无定义. 1: 4 2: i 3: * t10 4: A t12 5:=[] t11 6:[]= t13 8:* 7: j t14 9: =[] t15 10:&= t16 11:[]= t17 12: &= 13: < B2 x
从DAG图到四元式序列 4 t10 At0t11(5) (5) At10t13(6 4 t14(8) A t14t15(9) &=t15tl3tl3(10 t14t17(1l &= t17t17(12) jB2(13)
从DAG图到四元式序列 – *4 i t10 (3) – =[] A t10 t11 (5) – := t11 x (5) – []= A t10 t13 (6) – * 4 j t14 (8) – =[] A t14 t15 (9) – &= t15 t13 t13 (10) – []= A t14 t17 (11) – &= x t17 t17 (12) – < i j B2 (13)
DAG的其他应用 ·合并常量计算 pl 无用代码的删除: 对于=t10t12,如果t12不需要 使用,那么,这个四元式不需要 生成
DAG的其他应用 • 合并常量计算: – * 2 pi t1 – * t1 r t2 – = t2 l • 无用代码的删除: – 对于= t10 t12,如果t12不需要 使用,那么,这个四元式不需要 生成。 * * 2 pi r0
与循环有关的优化 循环不变表达式外提 归纳变量删除。 计算强度削减
与循环有关的优化 • 循环不变表达式外提。 • 归纳变量删除。 • 计算强度削减