Centralize detection of x86 CPU features

John Naylor <john.naylor@postgresql.org>

Commit: 16743db061e431d40522547c6436af6616026caa
Author: John Naylor <john.naylor@postgresql.org>
Date: 2026-02-27T13:30:41Z
Centralize detection of x86 CPU features

We now maintain an array of booleans that indicate which features were
detected at runtime. When code wants to check for a given feature,
the array is automatically checked if it has been initialized and if
not, a single function checks all features at once.

Move all x86 feature detection to pg_cpu_x86.c, and move the CRC
function choosing logic to the file where the hardware-specific
functions are defined, consistent with more recent hardware-specific
files in src/port.

Reviewed-by: Zsolt Parragi <zsolt.parragi@percona.com>
Discussion: https://postgr.es/m/CANWCAZbgEUFw7LuYSVeJ=Tj98R5HoOB1Ffeqk3aLvbw5rU5NTw@mail.gmail.com

Files

PathChange+/−
src/include/port/pg_cpu.h added +50 −0
src/port/pg_cpu_x86.c modified +25 −40
src/port/pg_crc32c_sse42.c modified +32 −0
src/port/pg_popcount_x86.c modified +4 −87
src/tools/pgindent/typedefs.list modified +1 −0

Discussion