php-src/ext/mbstring
Alex Dowad c8ec2ed730 Add AVX2-accelerated UTF-16 decoding/encoding routines
As with other SIMD-accelerated functions in php-src, the new UTF-16
encoding and decoding routines can be compiled either with AVX2
acceleration "always on", "always off", or else with runtime detection
of AVX2 support.

With the new UTF-16 decoder/encoder, conversion of extremely short
strings (as in several bytes) has the same performance as before,
and conversion of medium-length (~100 character) strings is about 65%
faster, but conversion of long (~10,000 character) strings is around
6 times faster.

Many other mbstring functions will also be faster now when handling
UTF-16; for example, mb_strlen is almost 3 times faster on medium
strings, and almost 9 times faster on long strings. (Why does mb_strlen
benefit more from AVX2 acceleration than mb_convert_encoding? It's
because mb_strlen only needs to decode, but not re-encode, the input
string, and the UTF-16 decoder benefits much more from SIMD
acceleration than the UTF-16 encoder.)
2023-02-05 20:06:42 +02:00
..
libmbfl Add AVX2-accelerated UTF-16 decoding/encoding routines 2023-02-05 20:06:42 +02:00
tests Add AVX2-accelerated UTF-16 decoding/encoding routines 2023-02-05 20:06:42 +02:00
ucgendat Optimize mb_str{,im}width for performance 2021-09-29 18:19:01 +02:00
common_codepoints.txt Improve mb_detect_encoding's recognition of Turkish text 2022-12-30 14:22:46 +02:00
config.m4 Move mobile variants of SJIS into mbfilter_sjis.c 2022-12-12 16:28:49 +02:00
config.w32 Move mobile variants of SJIS into mbfilter_sjis.c 2022-12-12 16:28:49 +02:00
CREDITS
gen_rare_cp_bitvec.php Mark globals as const (#10303) 2023-01-23 13:46:58 +00:00
mb_gpc.c Remove unused 'to_language' and 'from_language' struct fields 2022-08-16 16:43:26 +02:00
mb_gpc.h Remove unused 'to_language' and 'from_language' struct fields 2022-08-16 16:43:26 +02:00
mbstring.c Add AVX2-accelerated UTF-16 decoding/encoding routines 2023-02-05 20:06:42 +02:00
mbstring.h Implement mb_output_handler using fast text conversion filters 2023-01-03 09:02:21 +02:00
mbstring.stub.php Fix mb_strimwidth RC info 2022-08-05 17:06:23 +02:00
mbstring_arginfo.h Do not generate CONST_CS when registering constants (#9439) 2022-08-28 08:27:19 +02:00
php_mbregex.c Reduce memory allocated by var_export, json_encode, serialize, and other (#8902) 2022-07-08 14:47:46 +02:00
php_mbregex.h Declare ext/mbstring constants in stubs (#8798) 2022-06-23 17:34:08 +02:00
php_onig_compat.h
php_unicode.c Implement conditional casing for Greek letter sigma when title-casing text 2023-01-12 17:41:11 +02:00
php_unicode.h Speed boost for mb_stripos (when not using UTF-8) 2022-12-18 15:31:20 +02:00
rare_cp_bitvec.h Mark globals as const (#10303) 2023-01-23 13:46:58 +00:00
unicode_data.h Update Unicode tables to 14.0.0 2021-09-20 09:58:20 +02:00