php-src/ext/hash
Niels Dossche afb1c57470
Fix GH-14551: PGO build fails with xxhash
Turns out that the instrumentation added for gcov can change inlining
decisions of the compiler, which results in a mismatch between the
profile data CFG and the actual generated CFG between compiles.

There are two functions that suffer from this issue:
1. _PHP_XXH3_Init: Removing the inline hint fixes this one. In fact,
   always inlining this makes no sense as there's no real opportunity
   for specialising. It just bloats the binary and increases I$ pressure.
   So besides fixing this issue it's beneficial on its own to drop the
   attribute.
2. PHP_XXH3_128_Final: Sometimes XXH128_canonicalFromHash gets inlined
   and sometimes not. Make sure it gets always inlined.

Closes GH-18814.
2025-06-12 19:26:28 +02:00
..
murmur ext/hash: Swap the checking order of __has_builtin and __GNUC__ (#14185) 2024-05-10 09:37:13 +09:00
sha3 Merge branch 'PHP-7.4' into PHP-8.0 2022-10-21 00:04:43 -06:00
tests ext/hash: Fix GH-16711: Segfault in mhash() 2024-11-10 20:15:44 +00:00
xxhash Fix GH-14551: PGO build fails with xxhash 2025-06-12 19:26:28 +02:00
bench.php hash: Use hrtime() in the bench script [ci skip] 2021-01-09 21:41:45 +01:00
config.m4 Merge branch 'PHP-8.2' into PHP-8.3 2024-07-22 06:58:01 +02:00
config.w32 hash: Implement xxHash 2021-01-09 19:35:32 +01:00
CREDITS
hash.c Merge branch 'PHP-8.2' into PHP-8.3 2024-11-10 20:16:33 +00:00
hash.stub.php Merge branch 'PHP-8.2' 2023-07-18 19:24:03 +02:00
hash_adler32.c Fix GH-12936: hash() function hangs endlessly if using sha512 on strings >= 4GiB 2023-12-12 19:57:06 +01:00
hash_arginfo.h Merge branch 'PHP-8.2' 2023-07-18 19:24:03 +02:00
hash_crc32.c Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
hash_fnv.c [skip ci] Fix various typos and grammar issues (#11143) 2023-04-28 11:05:32 +02:00
hash_gost.c Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
hash_haval.c Fix GH-12936: hash() function hangs endlessly if using sha512 on strings >= 4GiB 2023-12-12 19:57:06 +01:00
hash_joaat.c Fixed some spaces used instead of tabs 2021-06-29 11:30:26 +02:00
hash_md.c Merge branch 'PHP-8.2' into PHP-8.3 2023-12-12 19:57:47 +01:00
hash_murmur.c Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
hash_ripemd.c Fix GH-12936: hash() function hangs endlessly if using sha512 on strings >= 4GiB 2023-12-12 19:57:06 +01:00
hash_sha.c Fix 32-bit ext/hash build 2023-12-13 19:33:09 +01:00
hash_sha3.c Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
hash_snefru.c Mark constant static arrays in function bodies actually as const (#10325) 2023-01-15 14:51:31 +00:00
hash_tiger.c Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
hash_whirlpool.c Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
hash_xxhash.c Fix GH-14551: PGO build fails with xxhash 2025-06-12 19:26:28 +02:00
php_hash.h Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
php_hash_adler32.h Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
php_hash_crc32.h Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
php_hash_crc32_tables.h Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
php_hash_fnv.h Remove unused macro PHP_FNV1_32A_INIT and PHP_FNV1A_64_INIT (#11114) 2023-05-03 18:46:31 +02:00
php_hash_gost.h Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
php_hash_gost_tables.h
php_hash_haval.h Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
php_hash_joaat.h Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
php_hash_md.h Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
php_hash_murmur.h Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
php_hash_ripemd.h Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
php_hash_sha.h Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
php_hash_sha3.h Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
php_hash_snefru.h Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
php_hash_snefru_tables.h Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
php_hash_tiger.h Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
php_hash_tiger_tables.h Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
php_hash_whirlpool.h Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
php_hash_whirlpool_tables.h Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
php_hash_xxhash.h Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00