From 3c89c41991d8e84d28d3aba22bb06b2712a29523 Mon Sep 17 00:00:00 2001 From: Andrew Pinski Date: Mon, 26 Aug 2024 15:14:24 -0700 Subject: [PATCH] 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. --- gcc/internal-fn.cc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/gcc/internal-fn.cc b/gcc/internal-fn.cc index 89da13b38ce..78997ef056a 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