Commit Graph

  • 4e6d4ade6c Optimize emplace(k,v) for foa and cfoa containers Braden Ganetsky 2024-02-10 11:27:43 -06:00
  • 4fbe450a65 Generalize alloc_cted_insert_type into allocator_constructed and remove the factory function alloc_make_insert_type() Braden Ganetsky 2024-02-10 11:46:06 -06:00
  • bd5c9fc740 Add cfoa tests for emplace(k,v) Braden Ganetsky 2024-02-06 23:36:29 -06:00
  • f411968ffd Add tests for immovable key_type Braden Ganetsky 2024-02-10 17:39:23 -06:00
  • a444cfb1ae implemented latch-free element save joaquintides 2024-02-10 20:51:09 +01:00
  • be7c63e1bf Add foa and fca tests for emplace(k,v) Braden Ganetsky 2024-02-06 23:36:27 -06:00
  • db779b949e added missing synchronization joaquintides 2024-02-09 19:40:45 +01:00
  • 83ac0d59cc weakened many atomic ops joaquintides 2024-02-09 19:08:33 +01:00
  • a05b55270a reenabled info logging joaquintides 2024-02-09 12:43:04 +01:00
  • 77a0f6bb74 implemented latch-free element load joaquintides 2024-02-09 12:33:41 +01:00
  • 1df37051ae Add msvc-14.1, msvc-14.2 /permissive- to Drone Peter Dimov 2024-02-08 20:55:54 +02:00
  • c4dbda0f78 Add missing include Peter Dimov 2024-02-08 20:52:34 +02:00
  • fa895edac2 Add msvc-14.3 /permissive- to Drone Peter Dimov 2024-02-08 20:10:50 +02:00
  • 43186b04d1 Add msvc-14.3 /permissive- to GHA Peter Dimov 2024-02-08 19:59:47 +02:00
  • 687a446784 used parlay epoch framework joaquintides 2024-02-03 17:37:08 +01:00
  • 1c48ce8194 removed node recycling joaquintides 2024-02-02 19:09:39 +01:00
  • 1e9970d150 reverted joaquintides 2024-02-02 12:07:58 +01:00
  • f10a9ab76d supressed wasted nodes report, relaxed metadata ops joaquintides 2024-02-02 11:31:13 +01:00
  • 83a81d6b1d relaxed epoch bumping joaquintides 2024-02-01 20:04:00 +01:00
  • c1f8720dd2 Add GCC 5 on 18.04 to Drone and GHA feature/gcc-5-18.04 Peter Dimov 2024-01-31 18:17:05 +02:00
  • 9b5545e30c avoided unnecessary epoch bumps joaquintides 2024-01-29 13:12:47 +01:00
  • 9e8d69c08a made garbage vectors bigger joaquintides 2024-01-29 11:53:38 +01:00
  • 99cee83c57 monitored wasted nodes joaquintides 2024-01-27 11:53:48 +01:00
  • 363ef61cf0 monitor garbage vector full condition joaquintides 2024-01-26 11:15:28 +01:00
  • b67aaf3558 cacheline-aligned garbage vectors joaquintides 2024-01-22 09:50:23 +01:00
  • 1bae403d58 added node recycling joaquintides 2024-01-21 18:53:33 +01:00
  • 4021c276fe switched to node-based layout joaquintides 2024-01-20 11:52:19 +01:00
  • d7f7792ee3 reduced contention on rehash_if_full, reduced min_for_epoch_bump joaquintides 2024-01-13 13:12:07 +01:00
  • 1d7165f759 incremented min_for_epoch_bump joaquintides 2024-01-08 18:52:15 +01:00
  • 25fe5948a6 sped up gc frequency joaquintides 2024-01-08 17:52:52 +01:00
  • f55e6ac290 made gc thread local joaquintides 2024-01-08 11:31:39 +01:00
  • 78aaa8ea51 re-strengthened atomic ops, halved gc frequency again joaquintides 2024-01-03 20:50:17 +01:00
  • 07370c16e6 halved gc frequency joaquintides 2024-01-03 17:46:43 +01:00
  • 679faa51a9 re-enabled gc joaquintides 2024-01-03 13:24:14 +01:00
  • 628df0f500 disabled is_occupied joaquintides 2024-01-03 12:48:37 +01:00
  • 16eec4a9a7 relaxed atomic ops joaquintides 2024-01-03 11:55:00 +01:00
  • 3310fe061c temporarily disabled gc joaquintides 2024-01-02 19:43:43 +01:00
  • 8d3c924724 increased gc frequency joaquintides 2024-01-02 12:01:17 +01:00
  • d576363d09 streamlined update_size_ctrl, printed concurrent_table stats joaquintides 2024-01-02 10:42:01 +01:00
  • 67c5cdb3a6 Optimize emplace() for exactly a value_type or init_type argument (#227) Braden Ganetsky 2023-12-31 11:56:14 -06:00
  • 75a94781d5 Fix/b2 5.0.0 (#228) joaquintides 2023-12-30 22:11:11 +01:00
  • 76185abe80 extended workaround to GCC 4.9 joaquintides 2023-12-30 19:41:13 +01:00
  • 0aab436707 protected visitation against spurious insertion sentinels joaquintides 2023-12-27 13:34:34 +01:00
  • d689613172 protected visitation against spurious insertion sentinels feature/cfoa_alf_insert joaquintides 2023-12-27 12:32:31 +01:00
  • 71e9d35ab2 made latch-free unprotected_norehash_emplace_or_visit exception safe joaquintides 2023-12-26 19:08:51 +01:00
  • 8365ccb78a fixed is_reserved joaquintides 2023-12-26 18:11:22 +01:00
  • f3f01e33f4 fined-tuned gc dimensions joaquintides 2023-12-26 18:01:36 +01:00
  • c861b082b3 re-strengthened atomic_integral (insert-visit sync) joaquintides 2023-12-26 10:01:16 +01:00
  • 0a6da6979f protected for_all_elements(_while) against transient slot reserves joaquintides 2023-12-26 09:53:29 +01:00
  • 31c33faf57 added almost-latch-free insertion for regular-layout group_type joaquintides 2023-12-25 20:25:34 +01:00
  • 1418b96fb2 capped size_ctrl.ml in update_size_ctrl joaquintides 2023-12-25 13:02:57 +01:00
  • a68b92d1cd * relaxed atomic_integral * re-enabled gc * optimized mco calculation * added heuristic to *reduce* mco at insertion time * fixed signedness bug at update_size_ctrl joaquintides 2023-12-25 12:48:04 +01:00
  • 71fb7636c5 prevented gc overcall, temporarily disabled gc joaquintides 2023-12-20 19:02:49 +01:00
  • 0d2751c5e1 Extract at()'s throw_exception calls into noinline function (#223) Braden Ganetsky 2023-12-19 10:08:08 -06:00
  • 5808607c4f reverted joaquintides 2023-12-19 12:42:11 +01:00
  • e91f743530 temporarily restricted gc to one designated thread joaquintides 2023-12-19 12:22:11 +01:00
  • 13d6cc0a33 reduced insertion contention zone joaquintides 2023-12-19 11:34:35 +01:00
  • 4cd3cd5ac2 used pointers rather than positions in the garbage collector joaquintides 2023-12-18 13:38:57 +01:00
  • b55a13c6b6 simplified erasure joaquintides 2023-12-18 13:25:14 +01:00
  • 35138450c8 desynced size control joaquintides 2023-12-16 11:55:23 +01:00
  • ca7120d928 removed prior experiments and optimized insertion via two-step counter joaquintides 2023-12-14 12:36:04 +01:00
  • b866bba144 removed counter-based protection on insertion joaquintides 2023-12-13 13:51:05 +01:00
  • 6869f099a5 disabled insertion synchronization joaquintides 2023-12-13 13:43:09 +01:00
  • aaf553581f disabled size control joaquintides 2023-12-13 13:35:10 +01:00
  • 116d2807f4 temporarily disabled garbage collection joaquintides 2023-12-13 12:44:24 +01:00
  • 567cfe4988 reverted joaquintides 2023-12-12 16:47:59 +01:00
  • c346a513f0 temporarily removed size control joaquintides 2023-12-12 16:34:27 +01:00
  • 64614f1670 optimized non-visiting insertion joaquintides 2023-12-12 13:35:48 +01:00
  • 8ac326b39f synchronized construct_and_emplace joaquintides 2023-12-12 10:32:00 +01:00
  • 5c21fa6d81 implemented group_synchronized_shared mode for insertion joaquintides 2023-12-11 20:56:30 +01:00
  • b8d9605107 fine-tuned memory order for metadata manipulation joaquintides 2023-12-11 19:43:05 +01:00
  • b087f9fb53 strengthened memory order for metadata manipulation joaquintides 2023-12-11 18:54:10 +01:00
  • 901d652fd7 implemented garbage collection joaquintides 2023-12-11 17:37:35 +01:00
  • 0f2a2a0b0f added latch-free erasure joaquintides 2023-12-05 12:20:40 +01:00
  • 86856f7e6b made epoch mechanism oversubscription free joaquintides 2023-12-04 14:05:36 +01:00
  • 8bd1bcf5de gotten rid of wait_for_epochs in insertion joaquintides 2023-12-04 11:26:35 +01:00
  • d6a8a4462c reverted to epoch array of size 128 and to non-relaxed wait_for_epochs joaquintides 2023-12-03 19:51:26 +01:00
  • 7e495f4598 relaxed operation overlooked in prior commit joaquintides 2023-12-03 13:08:52 +01:00
  • 68b38901e7 relaxed wait_for_epochs joaquintides 2023-12-03 13:03:39 +01:00
  • 821a2bfb45 made epoch array smaller joaquintides 2023-12-03 09:45:09 +01:00
  • 5af735827f optimized epoch waiting joaquintides 2023-12-02 20:52:20 +01:00
  • 49ff2a63ea made insertion and constant visitation (but *not* erasure) optionally latch-free joaquintides 2023-12-02 19:50:36 +01:00
  • f493603f5c [skip ci] editorial boost-1.84.0 joaquintides 2023-12-01 12:22:48 +01:00
  • 74ca1b0e74 Update test/CMakeLists.txt Peter Dimov 2023-11-30 17:54:53 +02:00
  • 7b16324869 Regenerate CMakeLists.txt Peter Dimov 2023-11-30 17:40:41 +02:00
  • 6680e86b38 [skip ci] typo joaquintides 2023-11-25 09:49:24 +01:00
  • 3e76b1cf68 [skip ci] beautified some badges 1753868184172699044/tmp_refs/heads/master 1753868184172699044/master joaquintides 2023-11-19 18:45:21 +01:00
  • 22f29718e4 changed drone badges joaquintides 2023-11-19 09:48:38 +01:00
  • f7c7f8fdd2 [skip ci] added Drone badges joaquintides 2023-11-18 11:30:47 +01:00
  • 7fd94b9df7 Fix/bucket iterator indirection operator (#220 rewrite) (#221) joaquintides 2023-11-17 08:51:40 +01:00
  • 1c0e54ee3e updated boost::unordered_[multi]set and boost::unordered_(flat|node)_map benchmarks boost-1.84.0.beta1 joaquintides 2023-11-06 18:20:36 +01:00
  • 329022b23c removed unnecesary picture tags README.md joaquintides 2023-10-31 09:38:53 +01:00
  • 47f5be3a3f typo joaquintides 2023-10-31 08:59:21 +01:00
  • de2ac0ce33 revamped README.md joaquintides 2023-10-29 18:46:51 +01:00
  • 42df4f2749 removed lifting of swap and ==/!= operations joaquintides 2023-10-22 20:16:05 +02:00
  • dbe93c765c asserted allocator equality on unordered_node_(map|set)::merge and updated docs joaquintides 2023-10-21 12:35:59 +02:00
  • ea4fc5e66d fine-tuned element prefetching in unprotected_bulk_visit joaquintides 2023-10-18 18:20:22 +02:00
  • d67d58cb4b fine-tuned element prefetching in unprotected_bulk_visit poc/bulk_visit2 joaquintides 2023-10-18 09:23:24 +02:00
  • 0e19223e5b Replace uses of boost::enable_if_t in deduction guides with std::enable_if_t Peter Dimov 2023-10-12 13:13:56 +03:00
  • 8ee48fe909 Feature/bulk visit (#217) joaquintides 2023-10-11 12:50:28 +02:00