编译原理第8章代码优化预览.ppt

例题与习题解答 [例1]试对以下基本块B1应用DAG进行优化。 B1: A:=B*C D:=B/C E:=A+D F:=E*2 G:=B*C H:=G*G F:=H*G L:=F M:=L 并就以下两种情况分别写出优化后的四元式序列: (1)假设G、L、M在基本块后面被引用; (2)假设只有L在基本块后被引用。 解:对于B1其DAG图: ** L中所有A的引用 点只有S中A的定值 才能到达; i=1 if uv goto B4 j= i B1 B2 B3 i=2 u=u+1 B4 k= i; v=v-1; if v=20 goto B5 B5 Ch8 代码优化 8.5 循环优化实施 二 . 强度削弱与删除归纳变量 强度削弱是将程序中强度高的运算使用强 度低的运算替代,以便使程序运行时间缩短。 一般情况 循环L中存在 I=I±C 且L中存在 T =K* I ±C 呈线性函数 求出递增(减)量K1,用±替代* T = T ± K1 (T是归纳变量 I是基本归纳变量) Ch8 代码优化 8.5 循环优化实施 定义8.8 (基本归纳变量/归纳变量) 如果循环中

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档