如何列出GCC指定优化级别(如-O2)启用的所有优化选项?
查看GCC指定优化级别启用的所有选项的方法
当然有办法快速查看GCC 4.7.4中-O2级别下启用的具体优化选项,这里给你两个实用的方法:
方法1:直接用GCC的内置查询命令
这是最直接准确的方式,执行以下命令:
gcc -O2 -Q --help=optimizers
执行后,你会看到所有优化选项的列表,每个选项后面会标注[enabled]或者[disabled],而且会按优化类别(比如优化控制、循环优化、代码生成等)分组展示,一目了然哪些是-O2默认开启的。
方法2:通过汇编注释查看关联优化
如果你想结合代码生成的细节看优化,可以用-fverbose-asm参数生成带注释的汇编文件:
gcc -O2 -S -fverbose-asm your_test_program.c
生成的.s汇编文件里,会在对应代码旁添加注释,说明该部分用到了哪些优化手段,适合你调试优化效果时配合查看。
另外要提一句,GCC不同版本的优化选项可能有细微差异,针对你用的4.7.4版本,直接用上述命令查询是最可靠的,比查通用文档更贴合实际情况。
内容的提问来源于stack exchange,提问作者maths-help-seeker




