一些渴望获得尽可能好的性能的人有时会使用“-Ofast”优化级别构建软件,该级别比“-O3”高一步,但存在潜在的不安全数学风险。LLVM开发人员现在正在权衡是弃用-Oast以删除它,还是将其作为-O3优化的别名。
GCC和LLVM/Clang上的-Ofast选项采用-O3,但还附加了-fast数学。快速数学选项打破了IEEE标准的合规性,以提高性能。这就存在着围绕浮点运算进行潜在的不安全数学运算的风险。
由于可能会出现不一致的数学问题,并且对于一些用户来说,“-Ofast”选项可能没有意识到这些风险,LLVM开发人员正在考虑是否应该弃用这种激进的优化级别和/或仅将其别名为-O3。
James Knight with Google raised the proposal on the LLVM Discourse. So far those responding are in favor of the idea for effectively deprecating LLVM/Clang's -Ofast optimization.