2012-04-13 47 views
5

我可以在文檔和Web上找到的所有信息僅用於-ffinite-math-「允許優化浮點運算,假定參數和結果不是NaN或+ -Infs。」這似乎並不適合我。有誰知道確切的這些優化是什麼? 感謝什麼是僅由 - 有限數學提供的優化?

+0

也許'x == x'會優化爲true。 – Mysticial 2012-04-13 17:26:27

+1

http://gcc.gnu.org/wiki/FloatingPointMath – janneb 2012-04-13 18:38:47

回答

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