5

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

4

1 回答 1

8

在这个假设下可以优化很多小东西,比如:

  • 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
于 2012-04-13T17:45:47.120 回答