postgres/src
Nathan Bossart ec8719ccbf Optimize hex_encode() and hex_decode() using SIMD.
The hex_encode() and hex_decode() functions serve as the workhorses
for hexadecimal data for bytea's text format conversion functions,
and some workloads are sensitive to their performance.  This commit
adds new implementations that use routines from port/simd.h, which
testing indicates are much faster for larger inputs.  For small or
invalid inputs, we fall back on the existing scalar versions.
Since we are using port/simd.h, these optimizations apply to both
x86-64 and AArch64.

Author: Nathan Bossart <nathandbossart@gmail.com>
Co-authored-by: Chiranmoy Bhattacharya <chiranmoy.bhattacharya@fujitsu.com>
Co-authored-by: Susmitha Devanga <devanga.susmitha@fujitsu.com>
Reviewed-by: John Naylor <johncnaylorls@gmail.com>
Discussion: https://postgr.es/m/aLhVWTRy0QPbW2tl%40nathan
2025-10-06 12:28:50 -05:00
..
backend Optimize hex_encode() and hex_decode() using SIMD. 2025-10-06 12:28:50 -05:00
bin pgbench: Fail cleanly when finding a COPY result state 2025-10-03 14:03:55 +09:00
common Fix compiler warnings around _CRT_glob 2025-10-01 17:13:52 +02:00
fe_utils meson: add and use stamp files for generated headers 2025-08-11 15:18:23 -04:00
include Optimize hex_encode() and hex_decode() using SIMD. 2025-10-06 12:28:50 -05:00
interfaces Use SOCK_ERRNO[_SET] in fe-secure-gssapi.c. 2025-10-05 16:27:47 -04:00
makefiles Remove traces of support for Sun Studio compiler 2025-09-12 07:39:05 +02:00
pl Make some use of anonymous unions [plpython] 2025-09-30 12:35:50 +02:00
port Use strchr instead of strstr for single-char lookups 2025-07-23 12:02:55 +12:00
template Remove traces of support for Sun Studio compiler 2025-09-12 07:39:05 +02:00
test Optimize hex_encode() and hex_decode() using SIMD. 2025-10-06 12:28:50 -05:00
timezone Generate GUC tables from .dat file 2025-09-03 09:45:17 +02:00
tools Refactor to avoid code duplication in transformPLAssignStmt. 2025-09-27 17:17:51 -04:00
tutorial Doc: simplify the tutorial's window-function examples. 2025-01-21 14:43:21 -05:00
.gitignore
DEVELOPERS
Makefile
Makefile.global.in Remove traces of support for Sun Studio compiler 2025-09-12 07:39:05 +02:00
Makefile.shlib Use exported symbols list on macOS for loadable modules as well 2025-06-10 07:04:43 +02:00
meson.build Update copyright for 2025 2025-01-01 11:21:55 -05:00
nls-global.mk