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

Optimization 如何在gcc中启用单个优化标志?,optimization,gcc,compilation,compiler-flags,Optimization,Gcc,Compilation,Compiler Flags,使用gcc时,是否可以在未指定-O级别的情况下启用单个优化标志 gcc -ffasst-math foo.c 或 哪一个有效? 谢谢 是的,您可以启用单个优化标志 gcc手册页中的信息: -O -O打开以下优化标志: -fauto inc dec-fcprop寄存器-fdce-fdefer pop-FDREE延迟分支-fdse-fguess分支概率-fif转换2-fif转换-finline小函数-fipa纯常量-fipa参考-fmerge常量-fsplit宽类型-ftree内置调用dce-ft

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

gcc -ffasst-math foo.c

哪一个有效?
谢谢

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

gcc手册页中的信息:

-O -O打开以下优化标志:

-fauto inc dec-fcprop寄存器-fdce-fdefer pop-FDREE延迟分支-fdse-fguess分支概率-fif转换2-fif转换-finline小函数-fipa纯常量-fipa参考-fmerge常量-fsplit宽类型-ftree内置调用dce-ftree ccp-ftree ch-ftree copyrename-ftree dce-ftree支配者选项-ftree dse-ftree fre-ftree sra-ftree ter-funit-at-a-time

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

-法斯特数学 设置-fno math errno、-funsafe math optimizations、-ffinite math only、-fno舍入数学、-fno信令nans和-fcx限制范围。 此选项导致定义预处理器宏FAST_MATH


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

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

gcc手册页中的信息:

-O -O打开以下优化标志:

-fauto inc dec-fcprop寄存器-fdce-fdefer pop-FDREE延迟分支-fdse-fguess分支概率-fif转换2-fif转换-finline小函数-fipa纯常量-fipa参考-fmerge常量-fsplit宽类型-ftree内置调用dce-ftree ccp-ftree ch-ftree copyrename-ftree dce-ftree支配者选项-ftree dse-ftree fre-ftree sra-ftree ter-funit-at-a-time

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

-法斯特数学 设置-fno math errno、-funsafe math optimizations、-ffinite math only、-fno舍入数学、-fno信令nans和-fcx限制范围。 此选项导致定义预处理器宏FAST_MATH

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

gcc -O1 -ffast-math foo.c