keilC51代码优化等级介绍

更新时间:2023-06-15 02:22:08 阅读: 评论:0

肾是干什么用的
keilC51代码优化等级介绍
keil优化等级图⽰:
0级 Constan folding
帝国时代三
常数合并:编译器预先计算结果,尽可能⽤常数代替表达式。包括运⾏地址计算;
优化简单访问:编译器优化访问8051系统的内部数据和位地址;
跳转优化:编译器总是扩展跳转到最终⽬标,多级跳转指令被删除;
1级 Dead code elimination
红嘴鸟死代码删除:没⽤的代码段被删除;不锈钢钝化
拒绝跳转:严密的检查条件跳转,以确定是否可以倒置测试逻辑来改进或删除;
2级 Data overlaying
数据覆盖:适合静态覆盖的数据和位段被确定,并内部标识。BL51连接/定位器可以通过全局数据流分析,选择可被覆盖的段;
3级 Peephole optimization
窥孔优化:清除多余的MOV指令。这包括不必要的从存储区加载和常数加载操作。当存储空间或执⾏时间可节省时,⽤简单操作代替复杂操作;
4级 Register variables
寄存器变量:如有可能,⾃动变量和函数参数分配到寄存器上。为这些变量保留的存储区就省略了;
优化扩展访问:IDATA、XDATA、PDATA和CODE的变量直接包含在操作中。在多数时间没必要使⽤中间寄存器;
局部公共⼦表达式删除:如果⽤⼀个表达式重复进⾏相同的计算,则保存第⼀次计算结果,后⾯有可能就⽤这结果。多余的计算就被删除;Ca/Switch优化:包含SWITCH和CASE的为跳转表或跳转队列;
5级 Common subexpression elimination
全局公共⼦表达式删除:⼀个函数内相同的⼦表达式有可能就只计算⼀次。中间结果保存在寄存器中,在⼀个新的计算中使⽤;何天武
简单循环优化:⽤⼀个常数填充存储区的循环程序被修改和优化;
学校工会活动方案6级 Loop rotation
循环优化:如果结果程序代码更快和有效则程序对循环进⾏优化;
7级 Extended Index Access Optimizing
扩展索引访问优化:适当时对寄存器变量⽤DPTR。对指针和数组访问进⾏执⾏速度和代码⼤⼩优化;
8级 Reu Common Entry Code附件怎么添加
封神演义简介
公共尾部合并:当⼀个函数有多个调⽤,⼀些设置代码可以复⽤,因此减少程序⼤⼩;
9级 Common Block Subroutines
公共块⼦程序:检测循环指令序列,并转换成⼦程序。Cx51甚⾄重排代码以得到更⼤的循环序列;优化级别不是越⾼越好,需要根据具体要求进⾏选择

本文发布于:2023-06-15 02:22:08,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/956918.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:优化   跳转   循环   删除   访问   编译器
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图