当前位置:高等教育资讯网  >  中国高校课件下载中心  >  大学文库  >  浏览文档

《编译原理与技术》课程教学资源(PPT课件讲稿)代码优化

资源类别:文库,文档格式:PPT,文档页数:51,文件大小:276.5KB,团购合买
点击下载完整版文档(PPT)

C代码优化

代码优化

代码优化的目标 ■提高最终目标代码的运行效率(性能) 时间:运行的更快 空间:降低内存需求 保持源程序的语义

•代码优化的目标  提高最终目标代码的运行效率(性能) - 时间:运行的更快 - 空间:降低内存需求 • 保持源程序的语义

代码优化的种类 窥孔优化 局部优化一基本块内优化 n全局优化一基本块间优化(过程内) 过程间优化一程序全局优化

•代码优化的种类  窥孔优化  局部优化-基本块内优化  全局优化-基本块间优化(过程内)  过程间优化-程序全局优化

代码优化的种类一窥孔优化 “孔”一未优化的目标代码片段( windows) ■窥孔优化种类: 删除冗余的存、取操作 e.g.movr0,a∥0->a mova,r0∥a->r0,可删除 删除不可达代码

•代码优化的种类-窥孔优化  “孔”-未优化的目标代码片段(windows)  窥孔优化种类: - 删除冗余的存、取操作 e.g. mov r0, a // r0 -> a mov a, r0 // a -> r0, 可删除 - 删除不可达代码

代码优化的种类一窥孔优化 e.g goto L1 goto Li2∥语句前无标号,死代码 L1: L2 控制流优化

•代码优化的种类-窥孔优化 e.g. goto L1 goto L2 // 语句前无标号,死代码 L1: … L2: … - 控制流优化

代码优化的种类一窥孔优化 goto L1 goto L2 L1: goto L2 L1: goto L2 if a<b goto L1 if a<b goto L2 L1: goto L2 L1: goto L2 goto L1/唯一跳转L1 if a b goto L2 跳羚1前是无条件 goto L3 L1: if a <b goto L2 L3: L3:

•代码优化的种类-窥孔优化 goto L1 … L1: goto L2 goto L2 … L1: goto L2 if a<b goto L1 … L1: goto L2 if a<b goto L2 … L1: goto L2 goto L1 //唯一跳转L1 … //L1前是无条件 跳转 L1: if a <b goto L2 L3: if a < b goto L2 goto L3 … L3:

代码优化的种类一窥孔优化 强度消弱、删除无用指令 e.g. MUL $8, RO -> ShiftLeft $3, RO ADD$0,R1∥删除,未改变R1 MUL$1,R2∥删除 利用目标机指令特点 eg.inc、 enter(建立栈帧) leave(清除栈帧) CSC系统的“复杂”寻址模式 其它优化措施,如常量合并、复写传播等

•代码优化的种类-窥孔优化 - 强度消弱、删除无用指令 e.g. MUL $8, R0 -> ShiftLeft $3, R0 ADD $0, R1 // 删除,未改变R1 MUL $1, R2 // 删除 - 利用目标机指令特点 e.g. inc、enter(建立栈帧)leave(清除栈帧) CISC 系统的“复杂”寻址模式 - 其它优化措施,如常量合并、复写传播等

代码优化的种类一局部优化 基本块和流图 基本块:能顺序执行的程序代码序列。其入口为 程序的第一代码 条件或无条件转移代码所转到的目标代码 跟在条件或无条件转移代码后的代码 基本块划分 相邻入口中间的代码序列(仅含前一入口) 某入口到程序的停止语句代码之间的代码序列 流图:由基本块按控制流方向形成的有向图 n基本块内优化,主要有: 常量传播、合并和公共子表达式删除 复写传播与死代码(无用代码)删除

代码优化的种类-局部优化  基本块和流图 - 基本块:能顺序执行的程序代码序列。其入口为: - 程序的第一代码 - 条件或无条件转移代码所转到的目标代码 - 跟在条件或无条件转移代码后的代码 - 基本块划分 - 相邻入口中间的代码序列(仅含前一入口) - 某入口到程序的停止语句代码之间的代码序列 - 流图:由基本块按控制流方向形成的有向图  基本块内优化,主要有: - 常量传播、合并和公共子表达式删除 - 复写传播与死代码(无用代码)删除

代码优化的种类一全局优化 ■基本块间优化一基本块间控制流与数据流 分析技术 ■优化措施主要有: 循环优化:80/20规则 不变式外提、归纳变量删除、强度消弱等 公共子表达式删除 常量传播、合并常量、复写传播 死代码(无用赋值)删除

代码优化的种类-全局优化  基本块间优化-基本块间控制流与数据流 分析技术  优化措施主要有: - 循环优化 :80/20 规则 - 不变式外提、归纳变量删除、强度消弱等 - 公共子表达式删除 - 常量传播、合并常量、复写传播 - 死代码(无用赋值)删除

°典型的优化编译器的组织 前端间起代码下、「代码1 优化器 生成器 控制流 数据流 变换 分析 分析

•典型的优化编译器的组织 前 端 代 码 生成器 代 码 优化器 数据流 变 换 分 析 控制流 分 析 中间表示 中间表示

点击下载完整版文档(PPT)VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
共51页,可试读17页,点击继续阅读 ↓↓
相关文档

关于我们|帮助中心|下载说明|相关软件|意见反馈|联系我们

Copyright © 2008-现在 cucdc.com 高等教育资讯网 版权所有