Remove some unnecessary optimizations in popcount code.
Nathan Bossart <nathan@postgresql.org>
Remove some unnecessary optimizations in popcount code. Over the past few releases, we've added a huge amount of complexity to our popcount implementations. Commits fbe327e5b4, 79e232ca01, 8c6653516c, and 25dc485074 did some preliminary refactoring, but many opportunities remain. In particular, if we disclaim interest in micro-optimizing this code for 32-bit builds and in unnecessary alignment checks on x86-64, we can remove a decent chunk of code. I cannot find public discussion or benchmarks for the code this commit removes, but it seems unlikely that this change will noticeably impact performance on affected systems. Suggested-by: John Naylor <johncnaylorls@gmail.com> Reviewed-by: John Naylor <johncnaylorls@gmail.com> Discussion: https://postgr.es/m/CANWCAZY7R%2Biy%2Br9YM_sySNydHzNqUirx1xk0tB3ej5HO62GdgQ%40mail.gmail.com
Files
| Path | Change | +/− |
|---|---|---|
| src/include/port/pg_bitutils.h | modified | +2 −14 |
| src/port/pg_bitutils.c | modified | +0 −30 |
| src/port/pg_popcount_x86.c | modified | +12 −55 |
Discussion
- refactor architecture-specific popcount code 40 messages · 2026-01-14 → 2026-02-23