Inline pg_popcount{32,64} into pg_popcount().

Nathan Bossart <nathan@postgresql.org>

Commit: cc4826dd5e52c8af7069feb49ce3cd9358fa6a6e
Author: Nathan Bossart <nathan@postgresql.org>
Date: 2024-03-19T19:46:16Z
Releases: 17.0
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

Files

PathChange+/−
src/include/port/pg_bitutils.h modified +2 −3
src/port/pg_bitutils.c modified +119 −36

Discussion