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

时间:2012-03-30 12:38:43

标签: optimization gcc compilation compiler-flags

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

gcc -ffasst-math foo.c

OR

gcc -O1 -ffast-math foo.c

哪一个有效? 谢谢!

1 个答案:

答案 0 :(得分:0)

是的,您可以启用单个优化标记。

来自gcc手册页的信息:

-O

-O打开以下优化标志:

-fauto-inc-dec -fcprop-registers -fdce -fdefer-pop -fdelayed-branch -fdse -fguess-branch-probability -fif-conversion2 -fif-conversion -finline-small-functions -fipa-pure- const -fipa-reference -fmerge-constants -fsplit-wide-types -ftree-builtin-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-frame-pointer,这样做不会干扰调试。

-ffast-数学

设置-fno-math-errno,-funsafe-math-optimizations,-ffinite-math-only,-fno-rounding-math,-fno-signaling-nans和-fcx-limited-range。 此选项会导致预处理器宏“ FAST_MATH ”被定义。

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