c51优化等级 keil_keil优化等级设置

本文详细介绍了C51编译器的9个优化级别,从0级到4级,涵盖常数折叠、死码消除、数据覆盖、寄存器变量优化等,旨在提升代码效率和执行速度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

优化级别说明(仅供参考)

则其中的

Code

Optimization

栏就是用来设置

C51

的优化级别。

共有

9

个优化

级别(书上这么写的)

,高优化级别中包含了前面所有的优化级别。现将各个级

别说明如下:

0

级优化:

1

常数折叠:只要有可能,编译器就执行将表达式化为常数数字的计算,其中

包括运行地址的计算。

2

简单访问优化:对

8051

系统的内部数据和位地址进行访问优化。

3

跳转优化:

编译器总是将跳转延至最终目标上,

因此跳转到跳转之间的命令

被删除。

1

级优化:

1

死码消除:无用的代码段被消除。

2

跳转否决:根据一个测试回溯,条件跳转被仔细检查,以决定是否能够简化

或删除。

2

级优化:

1

数据覆盖:

适于静态覆盖的数据和位段被鉴别并标记出来。

连接定位器

BL51

通过对全局数据流的分析,选择可静态覆盖的段。

3

级优化:

1

窥孔

优化:将冗余的

MOV

命令去掉,包括不必要的从存储器装入对象及

装入常数的操作。

另外如果能节省存储空间或者程序执行时间,

复杂操作将由简

单操作所代替。

4

级优化:

1

寄存器变量:

使自动变量和函数参数尽可能位于工作寄存器中,

只要有可能,

将不为这些变量保留数据存储器空间。

2

、扩展访问优化:来自

IDATA

XDATA

PDATA

CODE

区域的变量直接包

含在操作之中,因此大多数时候没有必要将其装入中间寄存器。

3

、局部公共子式消除:如果表达式中有一个重复执行的计算,第一次计算的结

果被保存,

只要有可能,

将被用作后续的计算,

因此可从代码中消除繁杂的计算。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值