首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >-O3与-Ofast优化的gcc差异

-O3与-Ofast优化的gcc差异
EN

Stack Overflow用户
提问于 2020-04-15 15:23:14
回答 1查看 6.8K关注 0票数 14

我正在阅读gcc手册,以找出-O3-Ofast之间的区别。

对于-O3

-O3

优化更多。-O3启动由-O2指定的所有优化,并打开以下优化标志:fgcse-reload -fipa-cp-clone floop interchange floop unroll和jam-fpeel循环-f预测-共有-f拆分-路径-ftree-循环-分配模式-ftree-循环-ftree-循环-vectorize-ftree-pre slp-vectorize-fvect-成本-模型-fversion-循环

-Ofast的时间

-Ofast

无视严格的标准。-Ofast启用所有-O3优化。它还支持并非对所有符合标准的程序都有效的优化。它打开-ffast-数学、-休闲-存储-数据-种族和Fortran特定的-fstack-数组,除非-fmax-堆栈-var-size被指定,并且-fno-保护-parens。

因此,我想知道,也许-Ofast由于某些原因不如-O3安全,因此我应该在大多数时候坚持使用-O3

你能澄清在使用它们时的“实际差异”吗?如果-Ofast真的是安全的呢?

EN

回答 1

Stack Overflow用户

发布于 2020-05-17 09:05:06

Ofast支持违反C标准浮点语义要求的优化。特别是在-Ofast (又名-ffast-math)下,它可以自由地重新排序浮点计算(默认情况下是禁止的,因为在一般情况下,浮点数的a + (b + c) != (a + b) + c != a + (c + b)是禁止的)。

-Ofast在特定情况下是否安全取决于算法,但通常大多数非科学应用都能很好地工作。例如,大多数游戏引擎都是用-ffast-math构建的。

票数 23
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61232427

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档