使用选项进行查看
gcc -Q [优化等级]--help=optimizers
以gcc830为例
O2部分选项开关情况与选项参数如下:
O0部分选项开关情况与选项参数如下:
可以看到O2与O0在多个选项上的差异。控制选项开关的源码如下:
在文件gcc/opts.c下
部分O1默认打开
部分O2默认打开
部分O3默认打开
修改此处选项的分组,可以将不同优化等级默认选项互换,默认开关选项的优先级低于命令行开关。
在gcc源码中opts-global.cc文件decode_options函数中:
1、default_options_optimization函数用于初始化默认打开关闭的选项
2、read_cmdline_options函数finish_options函数用于处理编译时添加的选项得到最终各选项flag