Simon Marchi
8f942ca8a5
gdbsupport: add unordered_dense.h 4.4.0
...
Add a copy of unordered_dense.h from [1]. This file implements an
efficient hash map and hash set with a nice C++ interface (a near
drop-in for std::unordered_map and std::unordered_set). This is
expected to be used to replace uses of `htab_t`, for improved code
readability and type safety. Performance-wise, it is preferred to the
std types (std::unordered_map and std::unordered_set) due to it using
open addressing vs closed addressing for the std types.
I chose this particular implementation because it is simple to use, it's
a standalone header and it typically performs well in benchmarks I have
seen (e.g. [2]). The license being MIT, my understanding is that it's
not a problem to use it and re-distribute it.
Add two additional files, gdbsupport/unordered_map.h and
gdbsupport/unordered_set.h, which make the map and set offered by
gdbsupport/unordered_dense.h available as gdb::unordered_map and
gdb::unordered_set.
[1] https://github.com/martinus/unordered_dense
[2] https://jacksonallan.github.io/c_cpp_hash_tables_benchmark/#conclusion-which-hash-table-to-choose
Change-Id: I0c7469ccf9a14540465479e58b2a5140a2440a7d
Approved-By: Tom Tromey <tom@tromey.com>
2024-11-25 22:07:03 -05:00
..
2024-01-12 15:49:57 +00:00
2020-03-05 15:59:22 +01:00
2024-01-10 19:52:52 -05:00
2024-11-23 12:40:36 +01:00
2024-03-26 21:13:22 -04:00
2024-01-12 15:49:57 +00:00
2024-01-12 15:49:57 +00:00
2024-10-19 08:10:38 +02:00
2024-01-12 15:49:57 +00:00
2024-01-12 15:49:57 +00:00
2024-01-12 15:49:57 +00:00
2024-11-18 09:46:31 +01:00
2024-09-24 14:22:28 +02:00
2024-01-12 15:49:57 +00:00
2024-01-12 15:49:57 +00:00
2021-07-26 12:20:33 +01:00
2024-02-21 13:30:19 -05:00
2024-03-26 21:13:22 -04:00
2024-02-27 10:30:29 -07:00
2024-03-26 21:13:22 -04:00
2024-01-12 15:49:57 +00:00
2024-10-18 00:18:24 +02:00
2024-07-16 18:30:45 -04:00
2024-07-16 18:30:45 -04:00
2024-01-12 15:49:57 +00:00
2024-03-26 21:13:22 -04:00
2024-06-07 23:09:03 -04:00
2024-03-26 21:13:22 -04:00
2024-11-12 11:37:50 +01:00
2024-01-12 15:49:57 +00:00
2024-03-26 21:13:22 -04:00
2024-09-07 21:48:34 +01:00
2024-08-14 11:20:57 +02:00
2024-01-12 15:49:57 +00:00
2024-08-14 11:20:57 +02:00
2024-11-23 12:40:36 +01:00
2024-06-10 08:25:56 +09:30
2024-01-12 15:49:57 +00:00
2024-01-12 15:49:57 +00:00
2024-01-12 15:49:57 +00:00
2024-11-22 17:44:29 +01:00
2024-08-12 10:58:49 -04:00
2024-03-26 21:13:22 -04:00
2024-01-12 15:49:57 +00:00
2024-03-26 21:13:22 -04:00
2024-07-16 18:30:45 -04:00
2024-04-21 19:54:27 -06:00
2024-01-12 15:49:57 +00:00
2024-11-22 17:44:29 +01:00
2024-01-12 15:49:57 +00:00
2024-03-26 21:13:22 -04:00
2024-01-12 15:49:57 +00:00
2024-03-26 21:13:22 -04:00
2024-02-27 09:46:31 -07:00
2024-01-12 15:49:57 +00:00
2024-03-26 21:13:22 -04:00
2024-01-12 15:49:57 +00:00
2024-01-12 15:49:57 +00:00
2024-01-12 15:49:57 +00:00
2024-01-12 15:49:57 +00:00
2024-01-12 15:49:57 +00:00
2024-01-12 15:49:57 +00:00
2024-01-12 15:49:57 +00:00
2024-03-26 21:13:22 -04:00
2024-03-21 12:21:24 -06:00
2024-01-12 15:49:57 +00:00
2024-01-12 15:49:57 +00:00
2024-03-26 21:13:22 -04:00
2024-01-12 15:49:57 +00:00
2024-01-12 15:49:57 +00:00
2024-01-12 15:49:57 +00:00
2024-10-06 07:59:48 +02:00
2024-01-12 15:49:57 +00:00
2024-01-12 15:49:57 +00:00
2024-03-26 21:13:22 -04:00
2024-06-27 15:15:26 +01:00
2024-01-12 15:49:57 +00:00
2024-01-12 15:49:57 +00:00
2024-03-26 21:13:22 -04:00
2024-01-12 15:49:57 +00:00
2024-03-26 21:13:22 -04:00
2024-03-14 21:28:44 +01:00
2024-03-19 14:41:51 +00:00
2024-03-26 21:13:22 -04:00
2024-01-12 15:49:57 +00:00
2024-06-24 09:11:30 -06:00
2024-01-12 15:49:57 +00:00
2024-01-12 15:49:57 +00:00
2024-01-12 15:49:57 +00:00
2024-01-12 15:49:57 +00:00
2024-09-13 07:38:56 -04:00
2024-01-12 15:49:57 +00:00
2024-03-26 21:13:22 -04:00
2024-01-12 15:49:57 +00:00
2024-01-12 15:49:57 +00:00
2024-10-10 17:36:21 +01:00
2024-10-10 17:36:21 +01:00
2024-03-26 21:13:22 -04:00
2024-01-12 15:49:57 +00:00
2024-03-26 21:13:22 -04:00
2024-01-12 15:49:57 +00:00
2024-01-12 15:49:57 +00:00
2024-10-06 07:59:48 +02:00
2024-10-10 17:36:21 +01:00
2024-10-10 17:36:21 +01:00
2024-10-10 17:36:21 +01:00
2024-09-13 07:38:56 -04:00
2024-02-21 13:30:19 -05:00
2024-11-23 12:20:34 +01:00
2024-10-19 13:18:00 -06:00
2024-10-19 13:18:00 -06:00
2024-02-21 13:30:19 -05:00
2024-01-12 15:49:57 +00:00
2024-04-18 10:31:54 -04:00
2024-04-18 10:31:54 -04:00
2024-03-26 21:13:22 -04:00
2024-01-12 15:49:57 +00:00
2024-01-12 15:49:57 +00:00
2024-01-12 15:49:57 +00:00
2024-01-12 15:49:57 +00:00
2024-01-12 15:49:57 +00:00
2024-03-26 21:13:22 -04:00
2024-01-12 15:49:57 +00:00
2024-03-26 21:13:22 -04:00
2024-01-12 15:49:57 +00:00
2024-01-12 15:49:57 +00:00
2024-03-26 21:13:22 -04:00
2024-09-24 13:47:56 +02:00
2024-01-12 15:49:57 +00:00
2024-01-12 15:49:57 +00:00
2024-01-12 15:49:57 +00:00
2024-03-26 21:13:22 -04:00
2024-01-12 15:49:57 +00:00
2024-01-12 15:49:57 +00:00
2024-11-22 17:38:31 -03:00
2024-03-26 21:13:22 -04:00
2024-01-12 15:49:57 +00:00
2024-03-26 21:13:22 -04:00
2024-01-12 15:49:57 +00:00
2024-01-12 15:49:57 +00:00
2024-03-26 21:13:22 -04:00
2024-01-12 15:49:57 +00:00
2024-08-12 10:21:15 -04:00
2024-01-12 15:49:57 +00:00
2024-03-26 21:13:22 -04:00
2024-01-12 15:49:57 +00:00
2024-03-26 21:13:22 -04:00
2024-10-10 17:36:21 +01:00
2024-03-26 21:13:22 -04:00
2024-01-12 15:49:57 +00:00
2024-04-22 21:34:19 -04:00
2024-01-12 15:49:57 +00:00
2024-11-25 22:07:03 -05:00
2024-11-25 22:07:03 -05:00
2024-11-25 22:07:03 -05:00
2024-01-12 15:49:57 +00:00
2024-01-12 15:49:57 +00:00
2024-08-02 16:54:52 -04:00
2024-09-25 11:06:57 +00:00
2024-03-26 21:13:22 -04:00
2024-01-12 15:49:57 +00:00