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
> >

Attachment: 0001-expand-Add-debug-dump-on-the-cost-for-popcount-1-exp.patch
Description: Binary data

Reply via email to