|
bb3bb764
|
2022-11-22T11:53:35
|
|
[gvar] Optimize scalar = 1.0 case
|
|
2d098d5d
|
2022-11-22T11:51:04
|
|
[gvar] Use memset
|
|
e630a65e
|
2022-11-22T11:27:05
|
|
[gvar] Micro-optize vector extend
|
|
49d4f621
|
2022-11-22T11:14:56
|
|
[gvar] Micro-optimize
|
|
1758ee66
|
2022-11-22T10:45:49
|
|
[glyf] Minor write loop more idiomatically
|
|
16ec9dcc
|
2022-11-22T10:43:46
|
|
[gvar] Whitespace
|
|
b567ce51
|
2022-11-21T20:08:54
|
|
[subset] Don't trim glyf's again if preprocessed
Speeds up M1/10000 benchmark by 30%!
|
|
72059a47
|
2022-11-22T10:41:37
|
|
[gvar] Optimize IUP alg
|
|
ee9873b5
|
2022-11-22T10:23:17
|
|
[gvar] Disable initializing vectors when not necessary
|
|
b0d26411
|
2022-11-22T10:20:11
|
|
[vector] Add "initialize" argument to resize()
|
|
a2059f8f
|
2022-11-22T10:16:21
|
|
[gvar] Optimize unpack_points
|
|
6d7206b6
|
2022-11-22T10:13:14
|
|
[gvar] Optimize unpack_deltas
|
|
bca569ae
|
2022-11-21T23:19:42
|
|
[array] Speed up hash() for byte arrays
|
|
d7b492e3
|
2022-11-21T23:08:51
|
|
Revert "[array] Remove hash specializations for bytes"
This reverts commit 213117317cefeb4e75d21c5c21e383309f116bb0.
|
|
1572ba28
|
2022-11-21T22:26:44
|
|
[subset-cff] Return in subr closure if already seen subr
Not sure why this was not done before.
|
|
a29ca6ef
|
2022-11-21T22:02:17
|
|
[subset-cff] Comment
|
|
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.
|
|
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.
|
|
4f056b92
|
2022-11-21T21:37:38
|
|
[subset-cff] Optimize op_str_t layout
|
|
a750cb01
|
2022-11-21T21:03:32
|
|
Simplify rvalue creation
|
|
86a763c6
|
2022-11-21T20:53:44
|
|
[map] Make keys moveable
|
|
cf20d2ec
|
2022-11-21T20:46:01
|
|
[map] Take const key
|
|
3d1c76f7
|
2022-11-21T19:40:32
|
|
[serializer] Don't hash objects twice
|
|
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.
|
|
a2984a29
|
2022-11-21T18:40:01
|
|
[cff] Remove unnecessary namespacing
|
|
dc3bb5e0
|
2022-11-21T18:18:48
|
|
[subset-cff] Pre-allocate values array for subroutines as well
|
|
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.
|
|
bab8ec58
|
2022-11-21T17:46:32
|
|
[subset-cff] Disable sharing when packing charstring INDEXes
Saves another 8%ish.
|
|
2cadacad
|
2022-11-21T17:17:15
|
|
[cff] Simplify str_encoder_t error handling
|
|
f263e3fe
|
2022-11-21T17:04:55
|
|
[cff] Manually copy short strings instead of memcpy()
|
|
38efd186
|
2022-11-21T17:02:11
|
|
[cff] Add a likely()
|
|
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%).
|
|
4b2caafe
|
2022-11-21T16:46:20
|
|
[subset-cff] Optimize parsed_cs_op_t size
Shows 5% speedup on SourceHanSans-Regular/10000 benchmark.
|
|
e0b06bd1
|
2022-11-21T16:09:39
|
|
[subset] Cache has_seac in accelerator
Speeds up SourceHanSans-Regular/10000 benchmark by %25.
|
|
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.
|
|
59451502
|
2022-11-21T15:23:16
|
|
[cff] Optimize env error checking
|
|
b238578a
|
2022-11-21T14:36:57
|
|
[cff] Optimize INDEX operator[]
|
|
d9de515a
|
2022-11-21T14:23:07
|
|
[cff] Optimize byte_str_ref_t array access
|
|
a81ec9b2
|
2022-11-21T14:03:28
|
|
[cff] Optimize byte_str_ref_t inc()
Shows a couple percent speedup.
|
|
3ff75411
|
2022-11-21T13:08:55
|
|
[algs] Fix bot fail
|
|
b81e3989
|
2022-11-21T13:02:40
|
|
Try fixing arm-eabi build after a10cfe3f32861c13578dc21476b2fe4d2e0af43c
|
|
4c14043b
|
2022-11-21T12:56:33
|
|
[algs] Add output argument to hb_unsigned_mul_overflows()
|
|
25adbb38
|
2022-11-21T12:47:53
|
|
[algs] Use __builtin_mul_overflow
Compiles to smaller binary.
|
|
a10cfe3f
|
2022-11-21T12:37:59
|
|
[algs] Write hb_in_ranges() recursively
|
|
2e86700e
|
2022-11-21T12:28:10
|
|
[gvar] Add memory-barrier as in ArrayOf
|
|
b00a911f
|
2022-11-21T12:11:30
|
|
[sorted-array] Add faster iterator implementation here as well
|
|
7cc79a8a
|
2022-11-21T12:09:24
|
|
[vector] Adjust comment
|
|
e82a3c69
|
2022-11-21T12:00:10
|
|
[array/vector] Optimize range-based for-loop
Avoid bounds-checking.
|
|
0387182c
|
2022-11-21T11:05:47
|
|
[ot-map] Minor refactor features[i] access
|
|
5ee6d5d7
|
2022-11-21T11:00:29
|
|
[cff] Add memory-barrier to INDEX
Like we do for ArrayOf.
|
|
6905d36d
|
2022-11-21T10:51:33
|
|
[cff] Fix fetch_op() bounds-checking
|
|
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.
|
|
7a39464b
|
2022-11-21T09:48:54
|
|
[cff] Hide members of byte_str_ref_t
|
|
18141f00
|
2022-11-21T09:47:03
|
|
[cff] Move a sub_array call
No logic change.... I hope?!
|
|
f66415cd
|
2022-11-21T09:39:27
|
|
[cff] Move initialization of a type to constructor
|
|
70a5cd53
|
2022-11-21T08:52:33
|
|
[algs] Assert trivial copy assignable in stable_sort
|
|
9bb39423
|
2022-11-20T17:40:54
|
|
[algs] Simplify stable_sort signatures
|
|
d119568d
|
2022-11-20T14:11:51
|
|
[cbdt] Use vector tail()
|
|
87a88117
|
2022-11-20T14:10:39
|
|
[object] Use vector tail()
|
|
76ce390b
|
2022-11-20T13:54:56
|
|
[ucd] Document algorithms
|
|
ed43bc51
|
2022-11-20T13:10:19
|
|
[buffer] Move delete_glyphs_inplace() here
|
|
dd88dae8
|
2022-11-19T15:22:39
|
|
[unicode] Simplify set_funcs a bit more
|
|
2d8ff3bc
|
2022-11-19T15:23:44
|
|
[unicode] Destroy user_data in set_funcs fail paths
This is what the font_funcs / draw_funcs do.
|
|
527823cc
|
2022-11-19T15:19:08
|
|
[unicode] Destroy user_data in set_funcs fail paths
This is what the font_funcs / draw_funcs do.
|
|
56d6b699
|
2022-11-19T15:08:50
|
|
[font/draw] Remove unneeded branch
The preamble sets user_data/destroy to nullptr if func is nullptr.
|
|
976bb26c
|
2022-11-19T15:06:23
|
|
[draw] Optimize set_func functions
|
|
114167a9
|
2022-11-19T14:47:45
|
|
[font] Optimize set_func functions
|
|
f9d7b303
|
2022-11-19T14:20:36
|
|
[thai] Use smaller type for arrays
No logic change.
|
|
72c4e431
|
2022-11-19T13:40:33
|
|
[use-table] Add a OPTIMIZE_SIZE version
|
|
83c3a91d
|
2022-11-19T13:34:58
|
|
[gen-use-table] Report fullCost
|
|
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.
|
|
b68f9f3c
|
2022-11-18T21:35:35
|
|
[machinery] Adjust comment
|
|
a47ba1dc
|
2022-11-18T21:14:07
|
|
[lazy-pointer] Hide instance
|
|
281b4705
|
2022-11-18T20:25:05
|
|
[pool] Rewrite a loop as dagger
|
|
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.
|
|
039e476b
|
2022-11-18T19:26:02
|
|
[test-vector] Test sink-move'ing
|
|
a3a218ed
|
2022-11-18T19:24:41
|
|
[map] Add a couple more sink interfaces
|
|
90226eab
|
2022-11-18T19:21:58
|
|
[test-map] Test inserting shared_ptr key
|
|
f657ef7e
|
2022-11-18T19:17:03
|
|
[map] Allow std::move-ing keys into the map
|
|
a1768ad8
|
2022-11-18T19:08:34
|
|
[map] Fix use of !=
|
|
e74b372b
|
2022-11-18T18:41:39
|
|
[test-map] Test moving values
|
|
a9c6a20b
|
2022-11-18T18:29:12
|
|
[map] Support moving value in sink interface
|
|
1bf9afaa
|
2022-11-18T18:20:50
|
|
[test-vector] Test sink interface
|
|
fa0e4b04
|
2022-11-18T18:20:14
|
|
[test-map] Test sink interface
|
|
1c612a85
|
2022-11-18T18:18:42
|
|
[test-set] Test sinking range
|
|
356708e3
|
2022-11-18T18:17:34
|
|
[test-set] Test length of iterator
|
|
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.
|
|
921f45f4
|
2022-11-18T17:26:58
|
|
[array] Rewrite hash() as dagger
|
|
21311731
|
2022-11-18T17:24:23
|
|
[array] Remove hash specializations for bytes
Not needed.
|
|
bef5a1c8
|
2022-11-18T17:22:17
|
|
[vector] Comment
|
|
69b41f92
|
2022-11-18T17:04:34
|
|
[vector] Simplify shift_down_vector()
Compiler is smarter than I am.
|
|
1dd9396c
|
2022-11-18T17:01:14
|
|
[vector] Optimize grow_vector() for size
Again, compiler is smarter than I am.
|
|
d36f6881
|
2022-11-18T17:00:07
|
|
[vector] Optimize shrink_vector for size
Compiler is smarter than I am.
|
|
bc8eded2
|
2022-11-18T16:51:24
|
|
[vector] Remove a for loop
|
|
afd9a58b
|
2022-11-18T16:46:01
|
|
[vector] Save a couple hb_iter() invocations
|
|
3ead9863
|
2022-11-18T16:43:47
|
|
[map] Add size()
|
|
42db8be1
|
2022-11-18T16:41:50
|
|
[map] Minor remove if condition
|
|
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.
|
|
025a68cb
|
2022-11-18T16:33:04
|
|
[map] Optimize copy resizing logic
|
|
f1d71687
|
2022-11-18T16:31:27
|
|
[map] Change bucket_for_hash() to item_for_hash()
|