]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Improve range_on_edge for GENERIC expressions
authorRichard Biener <rguenther@suse.de>
Fri, 7 Nov 2025 12:50:02 +0000 (13:50 +0100)
committerRichard Biener <rguenth@gcc.gnu.org>
Tue, 11 Nov 2025 08:55:32 +0000 (09:55 +0100)
When feeding non-SSA names to range_on_edge we degrade to a
non-contextual query.  The following uses the argument added in
the previous patch to indicate the edge as the location of the
range query.

* gimple-range.cc (gimple_ranger::range_on_edge): Pass
the edge as 'edge' to get_tree_range.
(dom_ranger::range_on_edge): Likewise.

gcc/gimple-range.cc

index e91eeb455f1b826c2f7f7ee4396db3002aa5f674..ced574d72f3ca10a44dd011e6086502117082adc 100644 (file)
@@ -252,7 +252,7 @@ gimple_ranger::range_on_edge (vrange &r, edge e, tree name)
 
   bool res = true;
   if (!gimple_range_ssa_p (name))
-    res = get_tree_range (r, name, NULL);
+    res = get_tree_range (r, name, NULL, NULL, NULL, e);
   else
     {
       range_on_exit (r, e->src, name);
@@ -783,7 +783,7 @@ bool
 dom_ranger::range_on_edge (vrange &r, edge e, tree expr)
 {
   if (!gimple_range_ssa_p (expr))
-    return get_tree_range (r, expr, NULL);
+    return get_tree_range (r, expr, NULL, NULL, NULL, e);
 
   basic_block bb = e->src;
   unsigned idx;