【发布时间】:2011-04-12 15:35:19
【问题描述】:
我们通常使用-O2 进行编译,因为-O3 会“触发细微的错误”。
对于我们的 GCC 版本,-O3 启用了更积极的内联,这实际上会揭示否则未被注意到的错误(例如,使用来自函数的未初始化值将它们作为引用参数或数组的越界访问)。在我看来,这种激进的内联还允许使用更小的函数以更具表现力的方式进行编码,-funswitch-loops 有助于使变量定义在循环中更加本地化。
鉴于我们代码中的错误比编译器错误高几个数量级,并且我们使用-Wall -Wextra 没有任何问题,我们应该寻找什么样的错误?
如果重要,我们使用gcc-4.3.2。编译时间对我们来说不是主要问题。
【问题讨论】:
标签: optimization g++