设置-fno-math-errno、-funsafe-math-optimizations、 -fno-trapping-math、-ffinite-math-only、-fno-rounding-math 和 -fno-signaling-nans。 此选项导致定义预处理器宏 __FAST_MATH__。 任何-O 选项都不应打开此选项,因为它可能会导致依赖于数学函数的 IEEE 或 ISO 规则/规范的精确实现的程序输出不正确。
-ftime-report:输出编译期间每个步骤所花费的时间。 -ffast-math:允许编译器对数学函数进行一些不符合IEEE或ISO标准的优化,可以提高性能,但可能会导致数值不稳定。 -fopenmp:启用OpenMP并行编程支持。这允许您使用OpenMP指令来并行化程序。 GCC相关信息查看 GCC警告选项设置 列举gcc 常见和有用的编译警告选项 GCC优化等...
复制代码 使用-ffast-math选项:这个选项允许编译器对数学函数进行不精确但更快的计算。请注意,这可能会导致数值不稳定和精度损失。 示例: g++ -O3 -ffast-math -o output_file source_file.cpp 复制代码 使用-funroll-loops选项:这个选项告诉编译器尝试展开循环,以减少循环控制开销。 示例: g++ -O3 -funroll-l...
6. -Ofast: 对-O3等级的更进一步的优化,fast名称就可以察觉到,它忽略严格的数据标准,以至于可以开启-ffast-math优化,使得程序更快。
优化等级有-O0,-O1,-O2,-O3这几级,其中-O0是默认选项,相当于什么都不加。数字越大优化程度越高。除此之外,还有-Os保持输出文件最小,-Og优化的同时不损失调试信息,-Ofast在-O3基础上加上-ffast-math选项。 所谓优化,就是将c/c++语句编译成机器码的时候,有时候并不是逐句翻译,而是采取一些等效替代的方法...
该选项将不会严格遵循语言标准,除了启用所有的-O3优化选项之外,也会针对某些语言启用部分优化。如:-ffast-math,对于Fortran语言,还会启用下列选项: -fno-protect-parens-fstack-arrays 6.-Og: 该标识会精心挑选部分与-g选项不冲突的优化选项,当然就能提供合理的优化水平,同时产生较好的可调试信息和对语言标准的遵循...
6. -Ofast: 对-O3等级的更进一步的优化,fast名称就可以察觉到,它忽略严格的数据标准,以至于可以开启-ffast-math优化,使得程序更快。 知乎参考:https://www.zhihu.com/question/27090458
-ffast-math:允许一些数学运算的快速但可能不精确的模式。 -march=<ARCHITECTURE>:指定目标架构,以便编译器为特定硬件生成优化的代码。 -mtune=<CPU_TYPE>:指定目标CPU类型,以便编译器为特定CPU生成优化的代码。 编译器优化技巧 前置声明:减少头文件依赖,降低编译时间。 include guards:防止头文件被重复包含,提高编译...
-ffast-math -ffinite-math-only -ffloat-store -fexcess-precision=style -fforward-propagate -ffp-contract=style -ffunction-sections -fgcse -fgcse-after-reload -fgcse-las -fgcse-lm -fgraphite-identity -fgcse-sm -fhoist-adjacent-loads -fif-conversion ...
-Ofast:3级,在-O3基础上增加了一些不安全的优化。例如,-Ofast开启的一个选项“-ffast-math”,包含了很多违反IEEE/ISO标准的优化,虽然能加速但会降低精度,也可能会产生一些错误的结果(主要影响高精度的浮点数运算)。 -Og:1级,用于调试的基础优化选项。在-O0基础上增加了一些不影响调试的优化,同时也会收集一些...