编译原理(王晓斌)第十二章.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
op 源,目的 其中op是操作码;源和目的是两个操作对象, 可以是内存地址、寄存器或常数 (1)直接地址型 op Ri , M (Ri) op (M) = Ri (2)寄存器型 op Ri, Rj (Ri) op (Rj) = Ri 4.抽象机的指令形式 电子科技大学计算机科学与工程学院 (3)变址型 op Ri , C(Rj) (Ri) op ((Rj) + C) = Ri (4)间接型 op Ri , *Rj (Ri) op ((Rj)) = Ri op Ri , *M (Ri) op ((M)) = Ri op Ri , *C(Rj) (Ri) op (((Rj) + C)) = Ri 电子科技大学计算机科学与工程学院 (5)其它几种常用指令 MOV Ri , M (Ri) = M MOV M , Ri (M) = Ri J x goto x 电子科技大学计算机科学与工程学院 5.简单的代码生成方法 (1) p: x:= y op z 的翻译 MOV y , Ri op Ri , z 电子科技大学计算机科学与工程学院 结果(x 的值)在寄存器Ri中 (2)为 结果(x) 分配寄存器的方法 1.y 本身占有寄存器Ri,且y在p点后不再被引用 2.有空余的可用寄存器Ri 3.寄存器均被占用:保存副本,选择一个—— 最好选择占用Ri的变量在主存中已有副本的 或者在p点后该变量不再被引用的 或者在离p点最远处才被引用的 电子科技大学计算机科学与工程学院 例:基本块中有如下指令: t:=a-b u:=a+c v:=a-t w:=v+u MOV a , R0 SUB R0, b (t占用R0) MOV a , R1 ADD R1, c (u占用R1) MOV R1, u (释放R1) MOV a , R1 SUB R1 , R0 (v占用R1) MOV R1, v (释放R1) ADD R1, u (w占用R1) 假设可以两个寄存器 电子科技大学计算机科学与工程学院 6.循环中的寄存器的分配 (1)指令的执行代价 —— 该指令访问主存的次数 寄存器型 op Ri,Rj 执行代价为1 直接地址型 op Ri,M 执行代价为2 变址型 op Ri,C(Rj) 执行代价为2 间址型 op Ri, *Rj 执行代价为2 op Ri, *M 执行代价为3 op Ri, *C(Rj) 执行代价为3 电子科技大学计算机科学与工程学院 B?L (2)固定分配寄存器节省的代价计算 I.设USE ( x , B ) 为x在B 中被定值前的引用次数, 则循环L执行一次,可省的执行代价为 ? USE(x, B) II.对基本块中定值基本块后的活跃变量x,省去指令 MOV Ri , Mx, 可省执行代价 ?(2*LIVE(x,B)) B?L 省的执行代价 B?L ? USE(x, B) + ?(2*LIVE(x,B)) B?L 电子科技大学计算机科学与工程学院 a:=b+c d:=d-b e:=a+f f:=a-d b:=d+f e:=a-c b:=d+c acdef cdef bcdef bcdef B1 B2 B3 B4 电子科技大学计算机科学与工程学院 B1 B2 B3 B4 ? a b c d e f 1 1 2 2 2 2 1 1 1 1 1 1 1 2 2 2 1 2 1 4 6 3 6 4 4 若有三个可固定分配的寄存器, 则 b、d可固定分配寄存器, 另一个分配给a、e、f中的一个 电子科技大学计算机科学与工程学院 电子科技大学计算机科学与工程学院 作业 12.1,12.5,12.6,12.7, 12.8 电子科技大学计算机科学与工程学院 内容回顾 1.局部优化 2.全局优化 基本块的划分 出口语句 入口语句 入口语句 入口语句 循环优化 循环的定义 程序流图 G = ( N , E , n0 ) 循环的查找 必经节点 回边 合并已知量 公共子表达式 无用赋值 死代码 必经节点集 回边循环 第五节 参数传递 先看例子: procedure swap (a

文档评论(0)

seunk + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档