第九章代码生成内容摘要:

c c := b + c d := a  d d := b  无用代码删除 定值 x := y + z以后不再引用 , 则称 x为无用变量 16 基本块和流图  语句交换 t1 := b + c t2 := x + y t2 := x + y t1 := b + c 当且仅当 x和 y都不是 t1, b和 c都不是 t2  代数变换 x := x + 0 可以删除 x := x * 1 可以删除 x := y **2 改成 x := y * y 17 基本块和流图 流图 把控制流信息加到基本块集合 , 形成一个有向图来表示程序 首结点 、 前驱 、 后继 18 基本块和流图  什么是循环 ?  所有结点是强连通的  唯一的循环入口  外循环和内循环  内循环不含其它循环 prod := 0 i := 1 t1 := 4* i t2:= a[t1] t3 := 4* I t4 := b[t3] t5 := t2 * t4 t6 := prod + t5 prod := t6 t7 := i +1 i := t7 if i = 20 goto B2 B1 B2 19 基本块和流图 下次引用信息 为每个三地址语句 x := y op z决定 x、 y和 z的下次引用信息 i: x := y op z . . . 没有对 x的赋值 j: … := x … . . . 没有对 x的赋值 k: … := … x 20 基本块和流图 下次引用信息 为每个三地址语句 x := y op z决定 x、 y和 z的下次引用信息 i: x := y op z . . . 没有对 x的赋值 j: … := x … . . . 没有对 x的赋值 k: … := … x 21 基本块和流图  对每个基本块从最后一个语句反向扫描到第一个语句,可以得到下次引用信息 i: x := y op z . . . 没有对 x的赋值 j: … := x … . . . 没有对 x的赋值 k: … := … x 22 基本块和流图  对每个基本块从最后一个语句反向扫描到第一个语句,可以得到下次引用信息 i: x := y op z . . . 没有对 x的赋值 j: … := x … . . . 没有对 x的赋值 k: … := … x  利用下次引用信息 , 可以。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。