编译原理Principles ofpiler第九章 中间代码生成91 中间语言常用的中间语言抽象语法树(AST)三地址码底层中间语言91 中间语言抽象语法树结点为运算符或运算对象;叶子结点必须为运算对象;声明、赋值、循环等也用运算的形式表示;AST描述了源程序的自然层次结构。91 中间语言三地址码三地址码是以下一般形式的语句序列:x := y op zx, y, z可以是标识符、常量或编译
#
单击此处编辑母版标题样式单击此处编辑母版文本样式第二级第三级第四级第五级第九章 代码生成第九章 代 码 生 成 本章内容一个简单的代码生成算法涉及存储管理指令选择寄存器分配和计算次序选择等基本问题目标有效利用目标机器的资源代码生成器本身运行效率高前端代 码 优 化 器中间代码源程序代码生成器中间代码目标程序9.1 代码生成器设计中的问题9.1.1 目标程序可执行目标模块可重定位目标模块允许
piler北京航空航天大学计算机学院代码生成及优化北京航空航天大学计算机学院史晓华 博士 副教授计算机体系结构代码生成方法代码优化技术 参考书puter Architecture: A Quantitative Approach 3rd version By John L. Hennessy and David A. Patterson中文版:计算机体系结构量化研究方法清华郑维民等
单击此处编辑母版标题样式单击此处编辑母版文本样式第二级第三级第四级第五级中南大学软件学院 陈志刚第八章 优化第八章 代码优化8.1 什么是代码优化8.2 局部优化8.3 循环优化8.4 数据流分析42220221中南大学软件学院 陈志刚8.1 什么是代码优化1优化: 对程序进行各种等价变换使变换后的程序能生成更有效的目标代码 优化可在编译的任何阶段进行但最主要的一类优化是对中间
I will greet this lecture with love in my heart.局部优化A:=T1T2B:=T1T2? B:=A从程序设计语言分类if (B rop C) goto pT1:=ABT2:=:=T1-T2X:=T3C:=2T4:=ABT5:=20T6:=T4T5Y:=T6T1:=ABT2:=:=T1-T2X:=T3T6:=T120Y:=T6(1) 基本块入口:(3)
Installing Windows XP Professional Using Attended Installation Slide of 26Ver. 1.0 - NJUPT Ver.2.0Code Optimization and Performance Tuning Using Intel VTuneClick to edit Master text stylesSecond
#
单击此处编辑母版标题样式单击此处编辑母版文本样式第二级第三级第四级第五级第八章 代码生成南京大学计算机系赵建华代码生成器的位置根据中间表示生成代码代码生成器之前可能有一个优化组件代码生成器的三个任务指令选择:选择适当的指令实现IR语句寄存器分配和指派:把哪个值放在哪个寄存器中指令排序:按照什么顺序安排指令执行主要内容要解决的问题机器模型静态栈式数据区分配基本块相关的代码生成简单的代码生成算法窥孔优
2357若a不再使用第三条也多余运算对象处于寄存器中的指令通常比运算对象处于内存的指令要短一些执行也快一些充分利用寄存器对生成好的代码尤为重要寄存器分配选择驻留在寄存器中的一组变量寄存器指派 register assignment挑选变量要驻留的具体寄存器NPplete problem目标机器的指令系统字节寻址四字节组成一个字有n个通用寄存器R0 R1 … Rn-1寻址方式直接地址方式寄存
违法有害信息,请在下方选择原因提交举报