public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
* [gcc r13-2761] [PR106967] Set known NANs to undefined for flag_finite_math_only.
@ 2022-09-21 11:33 Aldy Hernandez
  0 siblings, 0 replies; only message in thread
From: Aldy Hernandez @ 2022-09-21 11:33 UTC (permalink / raw)
  To: gcc-cvs

https://gcc.gnu.org/g:dc829c7613ddf562d1aecaf22eda965e87108ac8

commit r13-2761-gdc829c7613ddf562d1aecaf22eda965e87108ac8
Author: Aldy Hernandez <aldyh@redhat.com>
Date:   Wed Sep 21 11:18:48 2022 +0200

    [PR106967] Set known NANs to undefined for flag_finite_math_only.
    
    Explicit NANs in the IL can be treated as undefined for
    flag_finite_math_only.  This causes all the right things to happen wrt
    threading, folding, etc.  It also saves us special casing throughout.
    
            PR tree-optimization/106967
    
    gcc/ChangeLog:
    
            * value-range.cc (frange::set): Set known NANs to undefined for
            flag_finite_math_only.

Diff:
---
 gcc/value-range.cc | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/gcc/value-range.cc b/gcc/value-range.cc
index 505eb9211a7..7e8028eced2 100644
--- a/gcc/value-range.cc
+++ b/gcc/value-range.cc
@@ -313,8 +313,13 @@ frange::set (tree min, tree max, value_range_kind kind)
       gcc_checking_assert (real_identical (TREE_REAL_CST_PTR (min),
 					   TREE_REAL_CST_PTR (max)));
       tree type = TREE_TYPE (min);
-      bool sign = real_isneg (TREE_REAL_CST_PTR (min));
-      set_nan (type, sign);
+      if (HONOR_NANS (type))
+	{
+	  bool sign = real_isneg (TREE_REAL_CST_PTR (min));
+	  set_nan (type, sign);
+	}
+      else
+	set_undefined ();
       return;
     }

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2022-09-21 11:33 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-09-21 11:33 [gcc r13-2761] [PR106967] Set known NANs to undefined for flag_finite_math_only Aldy Hernandez

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).