Re: call popcount32/64 directly on non-x86 platforms
От | David Rowley |
---|---|
Тема | Re: call popcount32/64 directly on non-x86 platforms |
Дата | |
Msg-id | CAApHDvr-+Ucf9JVTUGi6AyPz3v6vMkkdH7WXPWBPJaNAXTJH+w@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: call popcount32/64 directly on non-x86 platforms (John Naylor <john.naylor@enterprisedb.com>) |
Ответы |
Re: call popcount32/64 directly on non-x86 platforms
Re: call popcount32/64 directly on non-x86 platforms |
Список | pgsql-hackers |
On Thu, 12 Aug 2021 at 14:02, John Naylor <john.naylor@enterprisedb.com> wrote: > > > On Wed, Aug 11, 2021 at 8:13 PM David Rowley <dgrowleyml@gmail.com> wrote: > > > > On Thu, 12 Aug 2021 at 05:11, John Naylor <john.naylor@enterprisedb.com> wrote: > > > 0001 moves some declarations around so that "slow" popcount functions are called directly on non-x86 platforms. > > > > I was wondering if there was a reason that you didn't implement this > > by just changing pg_popcount32 and pg_popcount64 to be actual > > functions rather than function pointers when TRY_POPCNT_FAST is not > > defined? These functions would then just return > > pg_popcountNN_slow(word); > > > > This would save from having to change all the current callers of the > > functions to use the macro instead. That might be nice for any > > extensions which are using these functions. > > Hmm, it wasn't obvious to me that would work, but I tried it and came up with v2. Is this what you had in mind? Closer, but I don't see why there's any need to make the fast and slow functions external. It should be perfectly fine to keep them static. I didn't test the performance, but the attached works for me. Going by https://godbolt.org/z/ocv1Kj5K4 f2 seems to inline f1 David
Вложения
В списке pgsql-hackers по дате отправления: