On Wed, Aug 28, 2024 at 12:26 AM Richard Biener <richard.guent...@gmail.com> wrote: > > On Wed, Aug 28, 2024 at 6:34 AM Andrew Pinski <quic_apin...@quicinc.com> > wrote: > > > > 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. > > > > 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 | 8 ++++++++ > > 1 file changed, 8 insertions(+) > > > > diff --git a/gcc/internal-fn.cc b/gcc/internal-fn.cc > > index 89da13b38ce..91210976a0a 100644 > > --- a/gcc/internal-fn.cc > > +++ b/gcc/internal-fn.cc > > @@ -5351,6 +5351,14 @@ 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, cost\n"); > > + fprintf(dump_file, "popcount: %u\n", popcount_cost); > > + fprintf(dump_file, "cmp: %u\n\n", cmp_cost); > > Can you make this more brief in a single line, like > > choice for popcount == 1: popcount cost: %u; cmp cost: %u\n > > ? > > OK with that change.
Yes that makes better sense really; I was originally thinking about putting it on one line but then decided against it just for easier to program at the time. Attached is what I pushed in the end. Thanks, Andrew > > > + } > > + > > if (popcount_cost <= cmp_cost) > > emit_insn (popcount_insns); > > else > > -- > > 2.43.0 > >
0001-expand-Add-debug-dump-on-the-cost-for-popcount-1-exp.patch
Description: Binary data