如何在gcc中启用单个优化标志



使用gcc时,是否可以在不指定-O级别的情况下启用单个优化标志?

gcc -ffasst-math foo.c

gcc -O1 -ffast-math foo.c

哪一个有效?谢谢

是的,您可以启用单独的优化标志。

来自gcc手册页的信息:

-O

-O打开以下优化标志:

-fauto-inc-dec-fcprop-registers-fdce-fdefer-pp-fdelayed-branch-fdse-fguess-branch-propossibility-fif-confersion2-fif-consersion-finine-small-functions-fipa-pure-const-fipa-reference-fmerge-instants-fsplit-wide-types-ftree-biltin-call-dce-ftree-ccp-ftree-ch-ftree-copyrename-ftree-dce-ftree-dominator-opts-ftree-dse-ftree-fre-ftree-sra-ftree-ter-funit-at-a-time

-O还会在不干扰调试的机器上打开-fomit帧指针。

-ffast数学

设置-fno math errno、-funsafe math优化、-finite math only、-fno舍入math、-fno信号nans和-fcx限制范围。此选项会定义预处理器宏"FAST_MATH"。

任何-O选项都不会打开此选项,因为它可能会导致程序输出不正确,而这些程序依赖于数学函数的IEEE或ISO规则/规范的精确实现。然而,对于不需要这些规范保证的程序,它可能会产生更快的代码。

最新更新