OK, thanks :)

On Thu, Apr 20, 2023 at 12:35 PM Jeff Law <j...@ventanamicro.com> wrote:
>
> This is primarily Raphael's work.  All I did was adjust it to apply to
> the trunk and add the new types to generic.md's scheduling model.
>
>
> The basic idea here is to make sure we have the ability to schedule the
> bitmanip instructions with a finer degree of control.  Some of the
> bitmanip instructions are likely to have differing scheduler
> characteristics across different implementations.
>
> So rather than assign these instructions a generic "bitmanip" type, this
> patch assigns them a type based on their RTL code by using the
> <bitmanip_insn> iterator for the type.  Naturally we have to add a few
> new types.  It affects clz, ctz, cpop, min, max.
>
> We didn't do this for things like shNadd, single bit manipulation, etc.
> We certainly could if the needs presents itself.
>
> I threw all the new types into the generic_alu bucket in the generic
> scheduling model.  Seems as good a place as any. Someone who knows the
> sifive uarch should probably add these types (and bitmanip) to the
> sifive scheduling model.
>
> We also noticed that the recently added orc.b didn't have a type at all.
>   So we added it as a generic bitmanip type.
>
> This has been bootstrapped in a gcc-12 base and I've built and run the
> testsuite without regressions on the trunk.
>
> Given it was primarily Raphael's work I could probably approve & commit
> it.  But I'd like to give the other RISC-V folks a chance to chime in.
>
>
> OK for the trunk?
>
> Jeff

Reply via email to