optimization - -ffinite-math-only 促进了哪些优化?

标签 optimization gcc compiler-construction floating-point

我可以在文档和网络中找到的所有关于 -ffinite-math-only 的信息是“允许对浮点算术进行优化,假设参数和结果不是 NaN 或 +-Infs。”这对我来说似乎不是即将到来的。有谁知道这些优化到底是什么?
谢谢

最佳答案

在这个假设下可以优化很多小事情,例如:

  • x == x --> 1
  • x * 1 --> x
  • x >= y --> !(x < y)和类似的。
  • x/x --> 1如果编译器能证明x != 0 .
  • 它可能允许编译器对像 x > y ? x : y 这样的表达式使用硬件最大/最小指令。 .
  • ... 更多

  • 您经常会看到此假设以及诸如“零符号无关紧要”之类的假设,然后允许以下内容:
  • x - x --> 0
  • 0 / x --> 0
  • x * 0 --> 0
  • 关于optimization - -ffinite-math-only 促进了哪些优化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10145401/

    相关文章:

    oop - 编译器如何编译虚拟/重写方法

    c - 第一个 C 编译器是如何编写的?

    c - 如何在 C 中编写自己的 vector 结构

    javascript - 高效计算 3 点之间的 Angular (和方向)

    python - 无法在马尔可夫政权切换模型中的属性类中设置属性

    python - Python 中成对相关的优化计算

    c++ - 如何在 Mac 上使用 clang 构建我的 C++ 代码?

    ubuntu - 我的 nvidia 驱动程序的正确 CUDA 版本是什么?

    c++ - g++如何在忽略函数返回值时获得警告

    javascript - 为什么这个 V8/Javascript 代码表现如此糟糕?