]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Use ranger for table based CTZ detection
authorRichard Biener <rguenther@suse.de>
Wed, 28 May 2025 13:26:48 +0000 (15:26 +0200)
committerRichard Biener <rguenther@suse.de>
Fri, 6 Jun 2025 07:16:01 +0000 (09:16 +0200)
The following uses context sensitive ranger for determining whether
the input to the table based CTZ is ever zero.

* tree-ssa-forwprop.cc (simplify_count_trailing_zeroes):
Use ranger instead of tree_expr_nonzero_p.

gcc/tree-ssa-forwprop.cc

index 4ef75ba98bd145ef0f639bd2569500f472f080f5..a60862a4b1a9789fbb537672797de7b0d21a3265 100644 (file)
@@ -2667,7 +2667,12 @@ simplify_count_trailing_zeroes (gimple_stmt_iterator *gsi)
   int nargs = 2;
 
   /* If the input value can't be zero, don't special case ctz (0).  */
-  if (tree_expr_nonzero_p (res_ops[0]))
+  range_query *q = get_range_query (cfun);
+  if (q == get_global_range_query ())
+    q = enable_ranger (cfun);
+  int_range_max vr;
+  if (q->range_of_expr (vr, res_ops[0], stmt)
+      && !range_includes_zero_p (vr))
     {
       zero_ok = true;
       zero_val = 0;