zoukankan      html  css  js  c++  java
  • 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下的优化已经到了极限。

  • 相关阅读:
    转:.net面试题及答案(一)
    高兴!
    游标中LOCAL的意思
    九度 1333
    在进程槽中为进程分配一个空闲位置并分配一个进程号
    USACO Section 1.2 Milking Cows
    九度 1334
    USACO Section 1.3 Mixing Milk
    USACO Section 1.3 Calf Flac
    USACO Section 1.3 Prime Cryptarithm
  • 原文地址:https://www.cnblogs.com/mfc1207/p/3759771.html
Copyright © 2011-2022 走看看