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

commit r17-1918-gd6cecdd745c0d3319bdecf98ba897284627c08af
Author: Andrew MacLeod <[email protected]>
Date:   Thu Jun 25 16:09:39 2026 -0400

    Add debug counter to ranger
    
            PR tree-optimization/125979
            * dbgcnt.def: Add ranger_cnt.
            * gimple-range.cc (gimple_ranger::range_of_expr): Add debug_cnt.
            (gimple_ranger::range_on_entry): Likewise.
            (gimple_ranger::range_on_exit): Likewise.
            (gimple_ranger::range_on_edge); Likewise.
            (gimple_ranger::range_of_stmt): Likewise
            (dom_ranger::range_of_expr): Likewise.
            (dom_ranger::range_on_edge): Likewise.
            (dom_ranger::range_of_stmt): Likewise.

Diff:
---
 gcc/dbgcnt.def      |  1 +
 gcc/gimple-range.cc | 25 +++++++++++++++++++++++++
 2 files changed, 26 insertions(+)

diff --git a/gcc/dbgcnt.def b/gcc/dbgcnt.def
index 40305d3d685a..ac6a8b771194 100644
--- a/gcc/dbgcnt.def
+++ b/gcc/dbgcnt.def
@@ -198,6 +198,7 @@ DEBUG_COUNTER (postreload_cse)
 DEBUG_COUNTER (pre)
 DEBUG_COUNTER (pre_insn)
 DEBUG_COUNTER (prefetch)
+DEBUG_COUNTER (ranger_cnt)
 DEBUG_COUNTER (registered_jump_thread)
 DEBUG_COUNTER (sched2_func)
 DEBUG_COUNTER (sched_breakdep)
diff --git a/gcc/gimple-range.cc b/gcc/gimple-range.cc
index b8b98dc8131f..71e9038467d5 100644
--- a/gcc/gimple-range.cc
+++ b/gcc/gimple-range.cc
@@ -36,6 +36,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "gimple-range.h"
 #include "gimple-fold.h"
 #include "gimple-walk.h"
+#include "dbgcnt.h"
 
 gimple_ranger::gimple_ranger (bool use_imm_uses) :
        non_executable_edge_flag (cfun),
@@ -84,6 +85,9 @@ gimple_ranger::const_query ()
 bool
 gimple_ranger::range_of_expr (vrange &r, tree expr, gimple *stmt)
 {
+  if (!dbg_cnt (ranger_cnt))
+    return get_global_range_query ()->range_of_expr (r, expr, stmt);
+
   unsigned idx;
   if (!gimple_range_ssa_p (expr))
     return get_tree_range (r, expr, stmt);
@@ -159,6 +163,9 @@ gimple_ranger::range_of_expr (vrange &r, tree expr, gimple 
*stmt)
 bool
 gimple_ranger::range_on_entry (vrange &r, basic_block bb, tree name)
 {
+  if (!dbg_cnt (ranger_cnt))
+    return get_global_range_query ()->range_on_entry (r, bb, name);
+
   if (!gimple_range_ssa_p (name))
     return get_tree_range (r, name, NULL, bb, NULL);
 
@@ -189,6 +196,9 @@ gimple_ranger::range_on_entry (vrange &r, basic_block bb, 
tree name)
 bool
 gimple_ranger::range_on_exit (vrange &r, basic_block bb, tree name)
 {
+  if (!dbg_cnt (ranger_cnt))
+    return get_global_range_query ()->range_on_exit (r, bb, name);
+
   if (!gimple_range_ssa_p (name))
     return get_tree_range (r, name, NULL, NULL, bb);
 
@@ -228,6 +238,9 @@ gimple_ranger::range_on_exit (vrange &r, basic_block bb, 
tree name)
 bool
 gimple_ranger::range_on_edge (vrange &r, edge e, tree name)
 {
+  if (!dbg_cnt (ranger_cnt))
+    return get_global_range_query ()->range_on_edge (r, e, name);
+
   value_range edge_range (TREE_TYPE (name));
 
   if (!r.supports_type_p (TREE_TYPE (name)))
@@ -295,6 +308,9 @@ gimple_ranger::fold_range_internal (vrange &r, gimple *s, 
tree name)
 bool
 gimple_ranger::range_of_stmt (vrange &r, gimple *s, tree name)
 {
+  if (!dbg_cnt (ranger_cnt))
+    return get_global_range_query ()->range_of_stmt (r, s, name);
+
   bool res;
   r.set_undefined ();
 
@@ -778,6 +794,9 @@ dom_ranger::~dom_ranger ()
 bool
 dom_ranger::range_of_expr (vrange &r, tree expr, gimple *s)
 {
+  if (!dbg_cnt (ranger_cnt))
+    return get_global_range_query ()->range_of_expr (r, expr, s);
+
   unsigned idx;
   if (!gimple_range_ssa_p (expr))
     return get_tree_range (r, expr, s);
@@ -811,6 +830,9 @@ dom_ranger::range_of_expr (vrange &r, tree expr, gimple *s)
 bool
 dom_ranger::range_on_edge (vrange &r, edge e, tree expr)
 {
+  if (!dbg_cnt (ranger_cnt))
+    return get_global_range_query ()->range_on_edge (r, e, expr);
+
   if (!gimple_range_ssa_p (expr))
     return get_tree_range (r, expr, NULL, NULL, NULL, e);
 
@@ -859,6 +881,9 @@ dom_ranger::range_in_bb (vrange &r, basic_block bb, tree 
name)
 bool
 dom_ranger::range_of_stmt (vrange &r, gimple *s, tree name)
 {
+  if (!dbg_cnt (ranger_cnt))
+    return get_global_range_query ()->range_of_stmt (r, s, name);
+
   unsigned idx;
   bool ret;
   if (!name)

Reply via email to