Log

Author Commit Date CI Message
Behdad Esfahbod bb3bb764 2022-11-22T11:53:35 [gvar] Optimize scalar = 1.0 case
Behdad Esfahbod 2d098d5d 2022-11-22T11:51:04 [gvar] Use memset
Behdad Esfahbod e630a65e 2022-11-22T11:27:05 [gvar] Micro-optize vector extend
Behdad Esfahbod 49d4f621 2022-11-22T11:14:56 [gvar] Micro-optimize
Behdad Esfahbod 1758ee66 2022-11-22T10:45:49 [glyf] Minor write loop more idiomatically
Behdad Esfahbod 16ec9dcc 2022-11-22T10:43:46 [gvar] Whitespace
Behdad Esfahbod b567ce51 2022-11-21T20:08:54 [subset] Don't trim glyf's again if preprocessed Speeds up M1/10000 benchmark by 30%!
Behdad Esfahbod 72059a47 2022-11-22T10:41:37 [gvar] Optimize IUP alg
Behdad Esfahbod ee9873b5 2022-11-22T10:23:17 [gvar] Disable initializing vectors when not necessary
Behdad Esfahbod b0d26411 2022-11-22T10:20:11 [vector] Add "initialize" argument to resize()
Behdad Esfahbod a2059f8f 2022-11-22T10:16:21 [gvar] Optimize unpack_points
Behdad Esfahbod 6d7206b6 2022-11-22T10:13:14 [gvar] Optimize unpack_deltas
Behdad Esfahbod bca569ae 2022-11-21T23:19:42 [array] Speed up hash() for byte arrays
Behdad Esfahbod d7b492e3 2022-11-21T23:08:51 Revert "[array] Remove hash specializations for bytes" This reverts commit 213117317cefeb4e75d21c5c21e383309f116bb0.
Behdad Esfahbod 1572ba28 2022-11-21T22:26:44 [subset-cff] Return in subr closure if already seen subr Not sure why this was not done before.
Behdad Esfahbod a29ca6ef 2022-11-21T22:02:17 [subset-cff] Comment
Behdad Esfahbod 28e767dd 2022-11-21T21:59:51 [subset-cff] Really optimize op_str_t / parsed_cs_op_t layout Now parsed_cs_op_t and op_str_t are both 16 bytes. Saves another 7% in SourceHanSans/10000 benchmark.
Behdad Esfahbod 2d5ee237 2022-11-21T21:37:38 [subset-cff] Readjust parsed_cs_op_t Now it doesn't matter anymore since op_str_t is adjusted and is 16 bytes with 8byte alignment.
Behdad Esfahbod 4f056b92 2022-11-21T21:37:38 [subset-cff] Optimize op_str_t layout
Behdad Esfahbod a750cb01 2022-11-21T21:03:32 Simplify rvalue creation
Behdad Esfahbod 86a763c6 2022-11-21T20:53:44 [map] Make keys moveable
Behdad Esfahbod cf20d2ec 2022-11-21T20:46:01 [map] Take const key
Behdad Esfahbod 3d1c76f7 2022-11-21T19:40:32 [serializer] Don't hash objects twice
Behdad Esfahbod 35878df2 2022-11-21T19:14:03 [algs] Implement swap() for pair_t Helps priority_queue::pop_minimum and friends, which help subsetter repacker. Shows a few percentage improvement on NotoNastaliq benchmark.
Behdad Esfahbod a2984a29 2022-11-21T18:40:01 [cff] Remove unnecessary namespacing
Behdad Esfahbod dc3bb5e0 2022-11-21T18:18:48 [subset-cff] Pre-allocate values array for subroutines as well
Behdad Esfahbod c6279224 2022-11-21T18:01:50 [cff] Adjust pre-allocation This better matches actual usage, given that ops are one or two bytes, and vector also allocates 50% extra.
Behdad Esfahbod bab8ec58 2022-11-21T17:46:32 [subset-cff] Disable sharing when packing charstring INDEXes Saves another 8%ish.
Behdad Esfahbod 2cadacad 2022-11-21T17:17:15 [cff] Simplify str_encoder_t error handling
Behdad Esfahbod f263e3fe 2022-11-21T17:04:55 [cff] Manually copy short strings instead of memcpy()
Behdad Esfahbod 38efd186 2022-11-21T17:02:11 [cff] Add a likely()
Behdad Esfahbod 191025cc 2022-11-21T16:58:19 [cff] Adjust buffer pre-allocation Most ops take one or two bytes, so allocate count*2, not count*3. Shows minor speedup in subsetting benchmark (around 2%).
Behdad Esfahbod 4b2caafe 2022-11-21T16:46:20 [subset-cff] Optimize parsed_cs_op_t size Shows 5% speedup on SourceHanSans-Regular/10000 benchmark.
Behdad Esfahbod e0b06bd1 2022-11-21T16:09:39 [subset] Cache has_seac in accelerator Speeds up SourceHanSans-Regular/10000 benchmark by %25.
Garret Rieger dd1ba328 2022-11-21T23:20:59 [repacker] fix fuzzer timeout. For https://oss-fuzz.com/testcase-detail/5845846876356608. Only process the set of unique overflows.
Behdad Esfahbod 59451502 2022-11-21T15:23:16 [cff] Optimize env error checking
Behdad Esfahbod b238578a 2022-11-21T14:36:57 [cff] Optimize INDEX operator[]
Behdad Esfahbod d9de515a 2022-11-21T14:23:07 [cff] Optimize byte_str_ref_t array access
Behdad Esfahbod a81ec9b2 2022-11-21T14:03:28 [cff] Optimize byte_str_ref_t inc() Shows a couple percent speedup.
Behdad Esfahbod 3ff75411 2022-11-21T13:08:55 [algs] Fix bot fail
Behdad Esfahbod b81e3989 2022-11-21T13:02:40 Try fixing arm-eabi build after a10cfe3f32861c13578dc21476b2fe4d2e0af43c
Behdad Esfahbod 4c14043b 2022-11-21T12:56:33 [algs] Add output argument to hb_unsigned_mul_overflows()
Behdad Esfahbod 25adbb38 2022-11-21T12:47:53 [algs] Use __builtin_mul_overflow Compiles to smaller binary.
Behdad Esfahbod a10cfe3f 2022-11-21T12:37:59 [algs] Write hb_in_ranges() recursively
Behdad Esfahbod 2e86700e 2022-11-21T12:28:10 [gvar] Add memory-barrier as in ArrayOf
Behdad Esfahbod b00a911f 2022-11-21T12:11:30 [sorted-array] Add faster iterator implementation here as well
Behdad Esfahbod 7cc79a8a 2022-11-21T12:09:24 [vector] Adjust comment
Behdad Esfahbod e82a3c69 2022-11-21T12:00:10 [array/vector] Optimize range-based for-loop Avoid bounds-checking.
Behdad Esfahbod 0387182c 2022-11-21T11:05:47 [ot-map] Minor refactor features[i] access
Behdad Esfahbod 5ee6d5d7 2022-11-21T11:00:29 [cff] Add memory-barrier to INDEX Like we do for ArrayOf.
Behdad Esfahbod 6905d36d 2022-11-21T10:51:33 [cff] Fix fetch_op() bounds-checking
Behdad Esfahbod b51ab1a9 2022-11-21T10:27:07 [cff] Optimize byte_str_ref_t Make it 16 bytes instead of 24. This struct is used in the subroutine call stack heavily. This change makes the HB AdobeVFPrototype benchmark to become faster than FT one, with about 6% speedup as a result of this change.
Behdad Esfahbod 7a39464b 2022-11-21T09:48:54 [cff] Hide members of byte_str_ref_t
Behdad Esfahbod 18141f00 2022-11-21T09:47:03 [cff] Move a sub_array call No logic change.... I hope?!
Behdad Esfahbod f66415cd 2022-11-21T09:39:27 [cff] Move initialization of a type to constructor
Behdad Esfahbod 70a5cd53 2022-11-21T08:52:33 [algs] Assert trivial copy assignable in stable_sort
Behdad Esfahbod 9bb39423 2022-11-20T17:40:54 [algs] Simplify stable_sort signatures
Behdad Esfahbod d119568d 2022-11-20T14:11:51 [cbdt] Use vector tail()
Behdad Esfahbod 87a88117 2022-11-20T14:10:39 [object] Use vector tail()
Behdad Esfahbod 76ce390b 2022-11-20T13:54:56 [ucd] Document algorithms
Behdad Esfahbod ed43bc51 2022-11-20T13:10:19 [buffer] Move delete_glyphs_inplace() here
Behdad Esfahbod dd88dae8 2022-11-19T15:22:39 [unicode] Simplify set_funcs a bit more
Behdad Esfahbod 2d8ff3bc 2022-11-19T15:23:44 [unicode] Destroy user_data in set_funcs fail paths This is what the font_funcs / draw_funcs do.
Behdad Esfahbod 527823cc 2022-11-19T15:19:08 [unicode] Destroy user_data in set_funcs fail paths This is what the font_funcs / draw_funcs do.
Behdad Esfahbod 56d6b699 2022-11-19T15:08:50 [font/draw] Remove unneeded branch The preamble sets user_data/destroy to nullptr if func is nullptr.
Behdad Esfahbod 976bb26c 2022-11-19T15:06:23 [draw] Optimize set_func functions
Behdad Esfahbod 114167a9 2022-11-19T14:47:45 [font] Optimize set_func functions
Behdad Esfahbod f9d7b303 2022-11-19T14:20:36 [thai] Use smaller type for arrays No logic change.
Behdad Esfahbod 72c4e431 2022-11-19T13:40:33 [use-table] Add a OPTIMIZE_SIZE version
Behdad Esfahbod 83c3a91d 2022-11-19T13:34:58 [gen-use-table] Report fullCost
Behdad Esfahbod ba08de62 2022-11-19T13:14:18 [ucd] Change OPTIMIZE_SIZE to compression level 9 Also changes default compression level from 3 to 5, but that shows no change in the generated table size.
Behdad Esfahbod b68f9f3c 2022-11-18T21:35:35 [machinery] Adjust comment
Behdad Esfahbod a47ba1dc 2022-11-18T21:14:07 [lazy-pointer] Hide instance
Behdad Esfahbod 281b4705 2022-11-18T20:25:05 [pool] Rewrite a loop as dagger
Behdad Esfahbod 3ff8abf2 2022-11-18T19:35:49 Revert "[map] Allow std::move-ing keys into the map" This reverts commit f657ef7e57c889309c2d9d37934368ca255f9d5b. This breaks many compilers with messages like this: hb-subset-plan.hh:226: undefined reference to `OT::head::tableTag' I'm out of my depth re how to fix it.
Behdad Esfahbod 039e476b 2022-11-18T19:26:02 [test-vector] Test sink-move'ing
Behdad Esfahbod a3a218ed 2022-11-18T19:24:41 [map] Add a couple more sink interfaces
Behdad Esfahbod 90226eab 2022-11-18T19:21:58 [test-map] Test inserting shared_ptr key
Behdad Esfahbod f657ef7e 2022-11-18T19:17:03 [map] Allow std::move-ing keys into the map
Behdad Esfahbod a1768ad8 2022-11-18T19:08:34 [map] Fix use of !=
Behdad Esfahbod e74b372b 2022-11-18T18:41:39 [test-map] Test moving values
Behdad Esfahbod a9c6a20b 2022-11-18T18:29:12 [map] Support moving value in sink interface
Behdad Esfahbod 1bf9afaa 2022-11-18T18:20:50 [test-vector] Test sink interface
Behdad Esfahbod fa0e4b04 2022-11-18T18:20:14 [test-map] Test sink interface
Behdad Esfahbod 1c612a85 2022-11-18T18:18:42 [test-set] Test sinking range
Behdad Esfahbod 356708e3 2022-11-18T18:17:34 [test-set] Test length of iterator
Behdad Esfahbod 2892fc71 2022-11-18T18:03:59 [vector] Add std::move to pop() This was removed in 76fc27713f52cc338f0325650c2c7798f5cfa2ce, but I believe that was faultly. It was because of a bad move implementation in the set.
Behdad Esfahbod 921f45f4 2022-11-18T17:26:58 [array] Rewrite hash() as dagger
Behdad Esfahbod 21311731 2022-11-18T17:24:23 [array] Remove hash specializations for bytes Not needed.
Behdad Esfahbod bef5a1c8 2022-11-18T17:22:17 [vector] Comment
Behdad Esfahbod 69b41f92 2022-11-18T17:04:34 [vector] Simplify shift_down_vector() Compiler is smarter than I am.
Behdad Esfahbod 1dd9396c 2022-11-18T17:01:14 [vector] Optimize grow_vector() for size Again, compiler is smarter than I am.
Behdad Esfahbod d36f6881 2022-11-18T17:00:07 [vector] Optimize shrink_vector for size Compiler is smarter than I am.
Behdad Esfahbod bc8eded2 2022-11-18T16:51:24 [vector] Remove a for loop
Behdad Esfahbod afd9a58b 2022-11-18T16:46:01 [vector] Save a couple hb_iter() invocations
Behdad Esfahbod 3ead9863 2022-11-18T16:43:47 [map] Add size()
Behdad Esfahbod 42db8be1 2022-11-18T16:41:50 [map] Minor remove if condition
Behdad Esfahbod 4ec70698 2022-11-18T16:39:30 [map] Rewrite hash() as dagger Somehow our daggers instead of for loop save size. I cannot pinpoint why, other than maybe not inlining.
Behdad Esfahbod 025a68cb 2022-11-18T16:33:04 [map] Optimize copy resizing logic
Behdad Esfahbod f1d71687 2022-11-18T16:31:27 [map] Change bucket_for_hash() to item_for_hash()