Chris Tate
da27496ea9
Probe hashed number-key Map/Set lookups inline
...
Number-key reads of a map without the direct index called
scr_map_entry_f64 for every lookup. The internal sc_map_entry_f64 helper
now calls sc_map_entry_f64_hashed for such maps instead: it hashes the
key as scr_map_find_f64 does (SameValueZero key word, scr_key_mix, the
absent-key filter), scans the entries of a small map or probes a compact
bucket table, and calls the runtime lookup only for a table wider than
the compact limit. It stays out of line so the direct-index path stays
small at every call site.
The runtime fallback is called as a read-only call, so both helpers only
read memory and LLVM merges lookups of one key when nothing is stored in
between, such as a has() followed by get().
The runtime benchmark suite gains number-maps: a node table indexed by
dense ids, scope tables keyed by sparse ids, and get/has/set mixes.
2026-10-15 17:47:34 -05:00
..
2026-10-12 12:25:30 -05:00
2026-10-15 17:47:34 -05:00
2026-10-06 01:05:40 -05:00
2026-10-13 12:36:06 -05:00
2026-10-13 07:55:53 -05:00
2026-10-13 12:36:06 -05:00
2026-10-13 10:26:49 -05:00
2026-10-14 21:17:46 -05:00
2026-10-12 12:25:30 -05:00
2026-10-13 12:36:06 -05:00
2026-10-13 12:36:06 -05:00
2026-10-13 12:36:06 -05:00
2026-10-15 14:19:47 -05:00
2026-10-13 12:36:06 -05:00
2026-10-14 11:43:44 -05:00
2026-10-05 17:51:24 -05:00
2026-10-05 17:51:24 -05:00
2026-10-12 12:25:30 -05:00
2026-10-10 09:01:04 -07:00
2026-10-12 12:25:30 -05:00
2026-10-07 13:55:11 -05:00
2026-10-12 12:25:30 -05:00
2026-10-12 12:25:30 -05:00
2026-10-09 20:26:57 -05:00
2026-10-11 13:08:08 -07:00
2026-10-12 17:58:04 -05:00
2026-10-13 12:36:06 -05:00
2026-10-12 12:25:30 -05:00
2026-10-05 17:51:24 -05:00
2026-10-12 12:25:30 -05:00
2026-10-12 12:25:30 -05:00
2026-10-12 12:25:30 -05:00
2026-10-12 12:25:30 -05:00
2026-10-05 17:51:24 -05:00
2026-10-14 08:34:53 -05:00
2026-10-12 12:25:30 -05:00
2026-10-15 07:59:19 -05:00
2026-10-13 18:19:29 -05:00
2026-10-08 11:00:13 -05:00
2026-10-07 11:47:54 -05:00
2026-10-13 12:36:06 -05:00
2026-10-05 17:51:24 -05:00
2026-10-05 17:51:24 -05:00
2026-10-13 12:36:06 -05:00
2026-10-13 11:41:04 -05:00
2026-10-13 12:36:06 -05:00
2026-10-13 12:36:06 -05:00
2026-10-13 12:36:06 -05:00
2026-10-13 12:36:06 -05:00
2026-09-29 20:54:09 -05:00
2026-10-12 12:25:30 -05:00
2026-10-12 12:25:30 -05:00
2026-10-14 11:43:44 -05:00
2026-10-13 12:36:06 -05:00
2026-10-05 17:51:24 -05:00
2026-10-05 17:51:24 -05:00
2026-10-12 12:25:30 -05:00
2026-10-15 08:36:53 -05:00
2026-10-15 02:06:23 -05:00
2026-10-13 12:36:06 -05:00
2026-10-05 17:51:24 -05:00
2026-10-12 23:05:43 -05:00
2026-10-12 12:25:30 -05:00
2026-10-08 11:00:13 -05:00
2026-10-12 12:25:30 -05:00
2026-10-12 12:25:30 -05:00
2026-10-15 05:15:33 -05:00
2026-10-14 11:43:44 -05:00
2026-10-13 12:36:06 -05:00
2026-10-05 17:51:24 -05:00
2026-10-14 18:12:09 -05:00
2026-10-05 17:51:24 -05:00
2026-10-07 15:39:05 -05:00
2026-10-14 09:58:18 -05:00
2026-10-12 12:25:30 -05:00
2026-10-13 20:30:01 -05:00
2026-10-13 12:36:06 -05:00
2026-10-05 17:51:24 -05:00
2026-10-12 12:25:30 -05:00
2026-10-12 12:25:30 -05:00
2026-10-15 13:39:03 -05:00
2026-10-05 17:51:24 -05:00
2026-10-11 07:05:29 -07:00
2026-10-13 20:26:38 -05:00
2026-10-05 17:51:24 -05:00
2026-10-05 17:51:24 -05:00
2026-10-13 12:36:06 -05:00
2026-10-13 12:36:06 -05:00
2026-10-13 21:24:38 -05:00
2026-10-12 12:25:30 -05:00
2026-10-12 12:25:30 -05:00
2026-10-12 12:25:30 -05:00
2026-10-10 14:03:20 -07:00
2026-10-12 12:25:30 -05:00
2026-10-12 12:25:30 -05:00
2026-10-13 12:36:06 -05:00
2026-10-13 12:36:06 -05:00
2026-10-05 17:51:24 -05:00
2026-10-13 18:51:09 -05:00
2026-10-05 17:51:24 -05:00
2026-10-14 21:28:04 -05:00