- 1、本文档共63页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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为活跃,并指明它们的下一
您可能关注的文档
- 安全生产智能化保障技术(第2版)课件:现代智能技术.pptx
- 安全生产智能化保障技术(第2版)课件:智能专家系统.pptx
- 安全生产智能化保障技术(第2版)绪论.pptx
- 爆破工程(第3版)课件:爆破安全要求.pptx
- 爆破工程(第3版)课件:爆炸及其爆破的基本知识.pptx
- 爆破工程(第3版)课件:爆炸器材与爆破方法.pptx
- 爆破工程(第3版)课件:地下工程掘进爆破.pptx
- 爆破工程(第3版)课件:构 (建) 筑物拆除爆破与特种爆破.pptx
- 爆破工程(第3版)课件:露天爆破技术 .pptx
- 爆破工程(第3版)课件:露天爆破技术.pptx
- 五位一体教案教学教案设计.docx
- 思修与法基-教学教案分享.pptx
- 大学军事之《中国国防》题库分享.docx
- 2023版毛泽东思想和中国特色社会主义理论体系概论第五章-中国特色社会主义理论体系的形成发展.pdf
- 思修与法基 教学全案分享.docx
- 大学军事之《军事思想》题库分享.docx
- 《经济思想史》全套课件-国家级精品课程教案课件讲义分享.pdf
- 厦门大学国际金融全套资料(国家级精品课程)--全套课件.pdf
- 2023版毛泽东思想和中国特色社会主义理论体系概论第五章-中国特色社会主义理论体系的形成发展.docx
- 2023版毛泽东思想和中国特色社会主义理论体系概论第五章中国特色社会主义理论体系的形成发展分享.pdf
最近下载
- 机械设计基础(第七版)杨可桢课后习题答案详解.pdf
- 2025云南省高等职业技术教育招生考试计算机信息类(技能考核)试题(C1).doc VIP
- NBT 32045-2018 国家行业标准.pdf
- 小学生《书法》课三年级下册全册教学设计教案.pdf VIP
- 2025云南省高等职业技术教育招生考试计算机信息类(技能考核)试题(C5).doc VIP
- 2025年长沙电力职业技术学院单招职业倾向性测试题库(夺冠系列).docx VIP
- 2025年湖南环境生物职业技术学院单招职业适应性测试题库最新.docx VIP
- 多轮问答数据生成方法、装置、设备与存储介质.pdf VIP
- PPAP手册第四版.doc VIP
- 2025年长沙电力职业技术学院单招职业适应性测试题库完整版.docx VIP
文档评论(0)