鉴于gcc文档(https://gcc.gnu.org/onlinedocs/gcc-5.2.0/gcc.pdf)指定-O1是-O0加上一个特定的选项列表,为什么当我用-O1编译代码时,编译所需的时间比使用时长2倍-O0 +当-O1打开时列出的所有选项都被启用?是否有其他未启用的选项未在文档中指定(我的怀疑),或者是否还有其他更阴险的选项在后台发生?
如果文档刚刚过时,那就是我有兴趣了解的内容,如果只是为了更好地理解GCC和我的代码可用的优化选项。
答案 0 :(得分:0)
如果文档刚刚过时......
公平的假设是文档不准确。这样的事情发生了。
另一种可能性是您误读了文档。我对您链接到的文档(第111页)的阅读是-O
和-O1
应该是相同的意思。如果这是正确的,那么你显然想做的事情没有多大意义。
我建议您查看GCC源代码,以确切了解-O1
的实现方式。这应该告诉您,您所看到的行为是否可以通过不准确的文档 1 来解释,或者这里是否还有其他内容。
1 - 如果问题是不准确的文档,您可以通过提交更正的错误报告来帮助GCC人员和最终其他GCC用户。