匠人手札

 

CCS3.3下执行优化

      最近想研究一下CCS下的程序优化,之前也了解一些,现在查阅一下资料,整理一下。

      当然优化有很多种,我本次先说的是执行优化方式。

  1. 首先打开我们自己的工程。工程文件若显示为黄色的,则表示此文件默认优化选项被修改。(默认的是O0)

 

2.右击文件选择File Specific Options选项,在弹出的对话框中选择Compiler,继续选择Basic,点开Opt Level的下拉菜单,这里我们就可以看到优化 五个选项。(None,O0,O1,O2,O3)。如下图:

 

 

3.参阅资料后,把Opt Level下的优化选项说明如下。

None:这个没啥说的吧。

O0:简化控制流图。

分配变量到寄存器。

进行循环换转。

删除未使用的代码。

简化表达式和语句。

内联声明为inline的函数。

O1:

执行O0的优化功能。

施行局部复制/常量传递。

删除未使用的赋值语句。

删除局部共有的表达式。

O2:

执行O1的优化功能。

进行软件流水。

进行循环优化。

删除全局共有子表达式。

删除全局未使用的赋值语句。

把循环中的数组的引用转变为递增的指针形式。

进行循环展开。

O3:

执行O2的优化功能。

删除未使用的所有函数。

当函数的返回值没有用到时,简化函数返回形式。

内联小的函数。

重新对函数声明进行排序。这样优化代码时,被调用函数的属性是已知的。

当所有调用都传递一个相同的参数时,把这个参数直接放到函数体中去,不再通过寄存器的方式传递这个参数。

识别文件级变量的特征。

4.总结

不要问我这句话是什么意思,你理解成什么样子,我就理解成什么样子,(o(∩_∩)o )你至少不是全都不懂吧。最好的方法就是每个选项一次一次试一下,当发现本次优化状态代码运行不对,那么就返回上个优化状态,这样Opt Level下的优化已经到了极限。

posted on 2014-05-29 18:04  当往事已成往事  阅读(2607)  评论(0编辑  收藏  举报

导航