gcc源码小记1:查看各优化等级默认选项已经修改源码设置各选项默认开关

使用选项进行查看
gcc -Q [优化等级]--help=optimizers
以gcc830为例

3c30ac62560e4b048f85cafe0c35db03.png
O2部分选项开关情况与选项参数如下:

 31227601066b4ecaba79ca79744e6392.png

 

O0部分选项开关情况与选项参数如下:

6f4afd59ccfc4e1eb58243f9d78fbae5.png

 

可以看到O2与O0在多个选项上的差异。控制选项开关的源码如下:
在文件gcc/opts.c下
部分O1默认打开

a523036abf5449efbb2093cce9ef050c.png

 

部分O2默认打开

f250bc48d9134390b03cf302d594dc39.png

 

部分O3默认打开

7b26274a5745416faf6faf4cdc6b9f75.png

 

修改此处选项的分组,可以将不同优化等级默认选项互换,默认开关选项的优先级低于命令行开关。
在gcc源码中opts-global.cc文件decode_options函数中:
1、default_options_optimization函数用于初始化默认打开关闭的选项
2、read_cmdline_options函数finish_options函数用于处理编译时添加的选项得到最终各选项flag

89049c1258cb42a08ed12953e4a0170a.png

 


 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值