Inline pg_popcount{32,64} into pg_popcount().
authorNathan Bossart <[email protected]>
Tue, 19 Mar 2024 19:46:16 +0000 (14:46 -0500)
committerNathan Bossart <[email protected]>
Tue, 19 Mar 2024 19:46:16 +0000 (14:46 -0500)
commitcc4826dd5e52c8af7069feb49ce3cd9358fa6a6e
tree5ed611dd4a0a61ed48590159040dd571c30c82df
parentb7e2121ab7d6166b835a46ceaab1b6a6dc589703
Inline pg_popcount{32,64} into pg_popcount().

On some systems, calls to pg_popcount{32,64} are indirected through
a function pointer.  This commit converts pg_popcount() to a
function pointer on those systems so that we can inline the
appropriate pg_popcount{32,64} implementations into each of the
pg_popcount() implementations.  Since pg_popcount() may call
pg_popcount{32,64} several times, this can significantly improve
its performance.

Suggested-by: David Rowley
Reviewed-by: David Rowley
Discussion: https://postgr.es/m/CAApHDvrb7MJRB6JuKLDEY2x_LKdFHwVbogpjZBCX547i5%2BrXOQ%40mail.gmail.com
src/include/port/pg_bitutils.h
src/port/pg_bitutils.c