网站大量收购独家精品文档,联系QQ:2885784924

编译方法、技术与实践课件:目标代码生成.pptx

编译方法、技术与实践课件:目标代码生成.pptx

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、本文档共63页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

;

?代码生成概要

?指令集架构

?基本块与流图

?指令选择算法

?寄存器分配算法

?窥孔优化

?代码生成器构建;

?根据中间表示生成代码

?代码生成器之前可能有一个优化组件

?代码生成器的三个主要任务

–指令选择:选择适当的指令实现IR语句

–寄存器分配和指派:把哪个值放在哪个寄存器中

–指令排序:按照什么顺序安排指令执行;

?正确性、易于实现、测试和维护

?输入IR的选择

O四元式、三元式、字节代码、堆栈机代码、后缀表示、抽象语法树、DAG、…

?目标程序

ORISC、CISC、可重定向代码、汇编语言、堆栈机

?指令选择

O影响因素:IR层次、指令集特性、目标代码质量

?寄存器分配和指派

?求值顺序;

?代码生成概要

?指令集架构

?基本块与流图

?指令选择算法

?寄存器分配算法

?窥孔优化

?代码生成器构建;

?三地址机器的模型;

?三地址机器的模型

?指令集

O加载:LDdst,addr

?把地址addr中的内容加载到dst所指寄存器

O保存:STx,r

?把寄存器r中的内容保存到x中;

?三地址机器的模型

?指令集

O加载:LDdst,addr

?把地址addr中的内容加载到dst所指寄存器

O保存:STx,r

?把寄存器r中的内容保存到x中

O计算:OPdst,src1,src2

?把src1和scr2中的值运算后将结果存放到dst中

O无条件跳转:BRL

?控制流转向标号L的指令

O条件跳转:Bcondr,L

?对r中的值进行测试,如果为真则转向L;

?代码生成概要

?指令集架构

?基本块与流图

?指令选择算法

?寄存器分配算法

?窥孔优化

?代码生成器构建;

?中间代码的流图表示法

O中间代码划分成为基本块(basicblock)

?控制流只能从第一个指令进入

?除基本块的最后一个指令外,控制流不会跳转/停机

O结点:基本块

O边:指明了基本块的执行顺序;

?输入:三地址指令序列

?输出:基本块的列表

?方法:

O确定基本块的首指令

?第一个三地址指令

?任意一个条件或无条件转移指令的目标指令

?紧跟在一个条件/无条件转移指令之后的指令

O确定基本块

?每个首指令对应于一个基本块:从首指令开始到下一个首指令;;

(1)b=1

(2)n=10

(3)d=l+n

(4)c=2

(5)t1=4*a

(6)t2=l+n

(7)c=c+b

(8)ifcngoto(6)

(9)a=a+b

(10)ifangoto(4)

(11)c=a–b;

?可用于优化

O寄存器指派

如果当前某个变量存放于一个寄存器中,且之后不会再被使用,那么这个寄存器可被分派给别的变量;

?变量值的使用(use)与活跃(live)

O假设三地址语句i给x赋了一个值,如果在后续的另一语句j的一个运算分量为x,且从i开始有一条没有对x进行赋值的路径能够到达j,那么j就使用了i处计算得到的x的值

O我们可以说称x在语句i后的程序点上活跃(live)

?即在程序执行完语句i的时刻,x中存放的值将被后面的语句使用

?不活跃是指变量中存放的值不会被使用,而不是变量不会被使用;

?输入:基本块B,开始时B的所有非临时变量都是活跃的

?输出:各语句i上的变量的活跃性、后续使用信息

?方法:

O从B的最后一个语句开始反向扫描

O对于每个语句i:x=y+z

1.令语句i和x、y、z的当前活跃性信息/使用信息关联

2.设置x为不活跃、无后续使用

3.设置y和z为活跃,并指明它们的下一

文档评论(0)

ning2021 + 关注
实名认证
内容提供者

中医资格证持证人

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

领域认证该用户于2023年05月10日上传了中医资格证

1亿VIP精品文档

相关文档