Commit 9baccb986087319ae56e77624082036063d67d90

Behdad Esfahbod 2022-05-17T13:34:34

[ot-tags] Speed up hb_ot_tags_from_complex_language() Part of https://github.com/harfbuzz/harfbuzz/issues/3591 2. All the subtag_matches outside the switch match long strings (>= 6 or so). As such, check the tag for such length before going into any of them. benchmark-ot, before: ---------------------------------------------------------------------------------------------- Benchmark Time CPU Iterations ---------------------------------------------------------------------------------------------- BM_hb_ot_tags_from_script_and_language/COMMON zh_CN 172 ns 171 ns 4083155 BM_hb_ot_tags_from_script_and_language/COMMON en_US 120 ns 119 ns 5849947 BM_hb_ot_tags_from_script_and_language/LATIN en_US 113 ns 112 ns 5840326 BM_hb_ot_tags_from_script_and_language/COMMON none 4.66 ns 4.64 ns 151396224 BM_hb_ot_tags_from_script_and_language/LATIN none 4.66 ns 4.64 ns 149019593 After: ---------------------------------------------------------------------------------------------- Benchmark Time CPU Iterations ---------------------------------------------------------------------------------------------- BM_hb_ot_tags_from_script_and_language/COMMON zh_CN 112 ns 112 ns 6357763 BM_hb_ot_tags_from_script_and_language/COMMON en_US 60.5 ns 60.3 ns 11475091 BM_hb_ot_tags_from_script_and_language/LATIN en_US 54.9 ns 54.8 ns 12575690 BM_hb_ot_tags_from_script_and_language/COMMON none 4.61 ns 4.59 ns 152388450 BM_hb_ot_tags_from_script_and_language/LATIN none 4.66 ns 4.64 ns 151497600