gcc 优化细节

GCC优化概述

GCC有很多优化选项,一般包括O1,O2, O3,Os,Og等。

一般很容易通过在线手册找到对应gcc版本的上述优化选项的细节。除了开启一些选项之外,GCC的优化也设置一些parmas。


例如gcc-4.6.1的优化选项细节可以从下面的网站获得:

http://gcc.gnu.org/onlinedocs/gcc-4.6.1/gcc/Optimize-Options.html#Optimize-Options



获得本机安装的gcc的优化细节
  由于编译的具体细节除了因不同版本有区别外,还与gcc release的时候的编译参数,目标平台(例如AIX,Linux, Solaris等)版本等有关。那么有什么办法获得本机当前

安装的gcc的优化细节呢?可以通过以下命令:

gcc -Q --help=optimizers

查看开启和关闭了哪些选项。通过以下命令:

gcc -Q --help=params 

可以查看有哪些params,遗憾的是我仍然不知道每个O优化到底如何设置了这些params。

哪位童鞋知道的话别忘告诉我一声!

例如,下面的命令序列可以帮助我们获得O3比O2多开启了哪些选项。

gcc -c -Q -O3 --help=optimizers > /tmp/O3-opts
gcc -c -Q -O2 --help=optimizers > /tmp/O2-opts
diff /tmp/O2-opts /tmp/O3-opts | grep enabled



局部优化/禁止优化

有时候,我们希望对  某个函数  或者  某块代码  添加自己的优化选项这个可以通过下面的宏实现:

对代码块的优化/禁止优化:

#pragma GCC push_options
#pragma GCC optimize ("O0") 

your code

#pragma GCC pop_options 

to disable optimizations since GCC 4.4.


对函数的优化/禁止优化

__attribute__((optimize("O0"))) 




参考文章:

http://leander.blog.51cto.com/2911819/1158605





  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值