91优化的主要种类 公共子表达式删除、复写传播、删除死代码 B6 x=ai;ai=an; an=x x a 4t 12 4*i 14=atul 13=4*n at2]=t14 t4=a[t, at=X atl 14 1s=4*n at5=X
9.1 优化的主要种类 公共子表达式删除、复写传播、删除死代码 B6 x = a[i]; a[i] = a[n]; a[n] = x; t 11 = 4 i x = a[t11] t 12 = 4 i t 13 = 4 n t 14 = a[t13] a[t12] = t 14 t 15 = 4 n a[t15] = x x = t 3 t 14 = a[t1 ] a[t2 ] = t 14 a[t1 ] = x
9优化的主要种类 m B 4 事n v=a t2=4*i if t <y goto B ts>v goto B 团ii>= j goto B|B B
9.1 优化的主要种类 i = m −1 j = n t1 = 4 n v = a[t1] i = i + 1 t2 = 4 i t3 = a[t2] if t 3 < v goto B 2 B 1 B 2 j = j − 1 t 4 = 4 j t 5 = a[t 4 ] if t 5 > v goto B 3 if i >= j goto B 6 B 4 B 3 B 5 B 6
91优化的主要种类 B6 x=a;ai=an;an=x a|t能否作为公共子表达式? 4*i atul 12 4*i 4=a|t1 13 4*n It2=t14 t4=a[t, at=X atl 14 15 4*n at5=X
9.1 优化的主要种类 B6 x = a[i]; a[i] = a[n]; a[n] = x; a[t1 ]能否作为公共子表达式? t 11 = 4 i x = a[t11] t 12 = 4 i t 13 = 4 n t 14 = a[t13] a[t12] = t 14 t 15 = 4 n a[t15] = x x = t 3 t 14 = a[t1 ] a[t2 ] = t 14 a[t1 ] = x
9优化的主要种类 m B 4 事n v=a B2把at1作为 t2=4*i 公共子表达式 ifts <v goto B, 是不稳妥的 因为B有对 下标变量a2 Htso和a的赋值 团ii>= j goto B|B B
9.1 优化的主要种类 i = m −1 j = n t1 = 4 n v = a[t1] i = i + 1 t2 = 4 i t3 = a[t2] if t 3 < v goto B 2 B 1 B 2 j = j − 1 t 4 = 4 j t 5 = a[t 4 ] if t 5 > v goto B 3 if i >= j goto B 6 B 4 B 3 B 5 B 6 把a[t 1 ]作为 公共子表达式 是不稳妥的 因为 B 5有对 下标变量a[t 2 ] 和a[t 4 ]的赋值
91优化的主要种类 91.4复写传播 复写语句:形式为f=g的赋值 优化过程中会大量引入复写 t=d+e t=d+e a=d+e b=d+e a b= t c=d+e 删除局部公共子表达式期间引进复写
9.1 优化的主要种类 9.1.4 复写传播 • 复写语句:形式为f = g的赋值 • 优化过程中会大量引入复写 t = d + e a = t 删除局部公共子表达式期间引进复写 t = d + e b = t c = t c = d + e a = d + e b = d + e