参考我之前的问题here,我在GCC 4.4.3中发现了一个可能的错误,当它不支持优化源代码中的pragma时(虽然它说4.4.x以后它确实存在! )
#pragma GCC optimize ("O3")
__attribute__((optimize("O3")))
尝试了上述两个选项,但两者都在编译器本身中产生了编译时错误(请参阅上述链接中发布的错误消息快照)
现在我还有其他选择可以为我的C代码中的不同功能启用不同的优化级别吗?
答案 0 :(得分:3)
来自online docs:
假设数字是优化级别。假设以O开头的字符串是优化选项,而假定其他选项与-f前缀一起使用。
因此,如果您想要等同于命令行-O3
,您应该只使用数字3
而不是"O3"
。
我同意这是一个错误,不应该生成ICE,考虑reporting it以及一个小的测试用例给GCC人员。
答案 1 :(得分:0)
现在还有其他选项可以为不同的功能启用不同的优化级别 在我的C代码中?
您剩下的选择是将函数放在他们自己的.c文件中,并使用您想要的优化标志编译该.c文件。