https://gcc.gnu.org/g:3c89c41991d8e84d28d3aba22bb06b2712a29523

commit r15-3272-g3c89c41991d8e84d28d3aba22bb06b2712a29523
Author: Andrew Pinski <quic_apin...@quicinc.com>
Date:   Mon Aug 26 15:14:24 2024 -0700

    expand: Add debug dump on the cost for `popcount==1` expand
    
    While working on PR 114224, I found it would be useful to dump the
    different costs of the expansion to make easier to understand why one
    was chosen over the other.
    
    Changes since v1:
    * v2: make the dump a single line
    
    Bootstrapped and tested on x86_64-linux-gnu.
    Build and tested for aarch64-linux-gnu.
    
    gcc/ChangeLog:
    
            * internal-fn.cc (expand_POPCOUNT): Dump the costs for
            the two choices.

Diff:
---
 gcc/internal-fn.cc | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/gcc/internal-fn.cc b/gcc/internal-fn.cc
index 89da13b38ce1..78997ef056ad 100644
--- a/gcc/internal-fn.cc
+++ b/gcc/internal-fn.cc
@@ -5351,6 +5351,11 @@ expand_POPCOUNT (internal_fn fn, gcall *stmt)
   unsigned popcount_cost = (seq_cost (popcount_insns, speed_p)
                            + seq_cost (popcount_cmp_insns, speed_p));
   unsigned cmp_cost = seq_cost (cmp_insns, speed_p);
+
+  if (dump_file && (dump_flags & TDF_DETAILS))
+    fprintf(dump_file, "popcount == 1: popcount cost: %u; cmp cost: %u\n",
+           popcount_cost, cmp_cost);
+
   if (popcount_cost <= cmp_cost)
     emit_insn (popcount_insns);
   else

Reply via email to