On Mon, Oct 14, 2024 at 1:40 PM Yangyu Chen <chenyan...@isrc.iscas.ac.cn> wrote:
>
>
>
> > On Oct 14, 2024, at 12:32, Kito Cheng <kito.ch...@gmail.com> wrote:
> >
> > I prefer not to handle the extension implication rules, as it's easy
> > for them to get out of sync, and this should be the linux kernel's
> > responsibility rather than libgcc's.
> >
>
> I still prefer to handle the extension here since users may use old
> versions / LTS versions of the Linux kernel, which have no some
> implied extensions.
>
> I have another patch to let GCC set the minimal required bits to
> provide the best compatibility. However, in some cases, such as
> some targets requiring Zve32x but not full V and users who have
> kernel version < v6.11, the resolver will not probe the Zve32x
> extension. Thus, we will not use the corresponding version. If we
> check V in zve32x ifunc resolver, building it in gimple will make
> it harder to maintain. Thus, I think both handling minimal extension
> in libgcc and having the minimal feature bits to generate the IFUNC
> resolver will be a better way to handle this.
>
> Meanwhile, handling it in this way does not increase the maintenance
> overhead since we don’t need to handle the extensions and implied
> extensions appear in the same version of the Linux kernel. So implied
> extensions like Zbc->Zbkc does not need to be handled here. Till now,
> we only need the handle C->Zca, Zcd, Zcf and V->Zve32x, Zve32f,
> Zve64x, Zve64f, Zve64d.

I am OK with minimal extension implication rules, like what you implement now,
but I am still concerned about implementing full rules.

Reply via email to