Commit Graph

  • db03c6f901 Fix invalid package name for debian andrew 2024-03-19 17:43:58 -07:00
  • c1698b040b Disable tsan for debug builds andrew 2024-03-19 16:54:29 -07:00
  • 2e08b54785 Update README.md with 1.0 benchmarks andrew 2024-03-19 16:41:38 -07:00
  • aa6f237d50 Document and test thread safety properties andrew 2024-03-19 16:27:24 -07:00
  • becfd25139 De-templatize kUseFreeList andrew 2024-03-19 15:12:31 -07:00
  • d78b36821b Remove more redundant nullptr checks andrew 2024-03-19 15:05:34 -07:00
  • ce79b47fbe Revert 303b368fc5 andrew 2024-03-19 15:01:13 -07:00
  • 727b7e642a Save more redundant nullptr checks andrew 2024-03-19 14:34:59 -07:00
  • cb4c2b7e1e Avoid redundant null check in some cases andrew 2024-03-19 14:29:13 -07:00
  • ef9b789745 Remove unused code andrew 2024-03-19 11:12:03 -07:00
  • edd7bcaa1e Check ConflictSet preconditions in script_test andrew 2024-03-19 10:31:04 -07:00
  • be8ac879c5 Update README benchmarks andrew 2024-03-18 17:24:26 -07:00
  • 83c7f66d67 Remove some redundant nullptr checks andrew 2024-03-18 16:22:24 -07:00
  • a5710b8282 Remove performance-only code from debug build for increased coverage andrew 2024-03-18 16:21:55 -07:00
  • c31eebd5de No caller of CheckRangeRightSide::downLeftSpine has null n andrew 2024-03-18 16:03:41 -07:00
  • ddeb059968 Remove more dead code andrew 2024-03-18 16:01:56 -07:00
  • 5a0bcf9a5a Strengthen precondition to checkRangeStartsWith andrew 2024-03-18 15:44:44 -07:00
  • 97717cec86 Remove suspected dead code andrew 2024-03-18 15:30:15 -07:00
  • 6a13c43a78 Remove mistakenly checked in printfs andrew 2024-03-18 14:03:09 -07:00
  • c6c438bae2 Address more missing coverage andrew 2024-03-18 14:01:30 -07:00
  • 7d4f832b43 Address some missing coverage andrew 2024-03-18 13:36:35 -07:00
  • 5b0c3c2428 Exclude more from coverage andrew 2024-03-18 12:05:52 -07:00
  • f2b5e9b0bf Change max key len to 8, update corpus andrew 2024-03-18 11:55:43 -07:00
  • 8e0e65dac6 Count implicit key byte for maybeDecreaseCapacity andrew 2024-03-18 11:42:53 -07:00
  • 5aab76847a Add inner-full-word test andrew 2024-03-17 14:42:11 -07:00
  • 1a51aa00e5 Run scripted tests andrew 2024-03-16 22:04:30 -07:00
  • 3975bada0c Add a simple language for scripting tests andrew 2024-03-16 22:02:00 -07:00
  • a5330b6e23 Minor paper tweaks andrew 2024-03-16 12:45:36 -07:00
  • 2e246ec6a4 Cachegrind says this is fewer instructions andrew 2024-03-16 08:46:41 -07:00
  • 6d7e3c9849 Fix invalid offsetof warnings andrew 2024-03-15 21:37:21 -07:00
  • 671da5d096 Collect gcc warnings again in Jenkins andrew 2024-03-15 19:00:01 -07:00
  • 303b368fc5 Add Type template parameter to maybeDownsize to avoid branch andrew 2024-03-15 18:01:47 -07:00
  • 9f5a68e2c0 Use plain loop for Node3 andrew 2024-03-15 17:35:14 -07:00
  • dfbb3ce5f1 Use assume andrew 2024-03-15 17:23:02 -07:00
  • e7719b6e0b Disable sanitizers when cross-compiling andrew 2024-03-15 17:04:49 -07:00
  • 83fedf1f9e Remove dead code andrew 2024-03-15 17:00:20 -07:00
  • 8556caf360 Cachegrind says memset uses fewer instructions here andrew 2024-03-15 16:57:16 -07:00
  • 9d13ca84f5 Fix bug spotted by hand. No test coverage there yet andrew 2024-03-15 16:55:34 -07:00
  • a79436ee9b Use statically-known numChildren in Node3 -> Node16 andrew 2024-03-15 16:49:45 -07:00
  • e9c8537cf2 Copy Node members and set children pointers in copyChildrenAndKeyFrom andrew 2024-03-15 16:28:58 -07:00
  • 5b988efe6f Consolidate copyChildrenAndKeyFrom implementations andrew 2024-03-15 16:12:44 -07:00
  • e35d698b21 Improve copyChildrenAndKeyFrom-related codegen andrew 2024-03-15 08:10:25 -07:00
  • 30496d14e7 Don't print out filename in TestDriver.cpp andrew 2024-03-15 07:44:11 -07:00
  • eb93157ddf Improve codegen in freeAndMakeCapacityAtLeast andrew 2024-03-14 18:49:49 -07:00
  • 9cafef8bbb Update benchmarks after fixing skip list bug in a9b3d3d andrew 2024-03-14 15:50:55 -07:00
  • 6f81580953 Guard SHOW_MEMORY-only code andrew 2024-03-14 15:40:09 -07:00
  • 429fe5baed Fix some uses of uninitialized memory andrew 2024-03-14 15:39:37 -07:00
  • a0451e4423 Give radix tree setOldestVersion an extra 10 work per call andrew 2024-03-14 15:32:39 -07:00
  • a9b3d3d1c9 Show peak memory in skip list, and fix setOldestVersion bug andrew 2024-03-14 15:31:29 -07:00
  • b817e3c749 Track malloc size with a header for SHOW_MEMORY andrew 2024-03-14 15:30:46 -07:00
  • ee36bda8f8 Track initializedness of Node memory more precisely andrew 2024-03-14 14:47:11 -07:00
  • a8f4bd91c8 Use asan and ubsan for whitebox/fuzz tests andrew 2024-03-14 13:47:21 -07:00
  • 35086ee66a Add GCOVR_EXCL_LINE to default labels too andrew 2024-03-13 20:54:05 -07:00
  • 0f795cf163 Set -DNVALGRIND for release artifacts andrew 2024-03-13 20:45:59 -07:00
  • a07c93ffff New switch idiom andrew 2024-03-13 20:07:27 -07:00
  • c68f563017 "partial capacity bytes" -> "partial key capacity bytes" andrew 2024-03-13 18:51:48 -07:00
  • 6b6a9bace9 Fix SHOW_MEMORY for gcc and glibc on linux andrew 2024-03-13 16:57:38 -07:00
  • 3cb0765fdd Rework SHOW_MEMORY andrew 2024-03-13 16:48:28 -07:00
  • 351ff3df3b Cave in and just add the unreachable's gcc wants andrew 2024-03-13 14:58:34 -07:00
  • e818648cdc makeCapacityAtLeast -> freeAndMakeCapacityAtLeast andrew 2024-03-13 14:01:47 -07:00
  • 12540b8713 maybeDecreaseCapacity policy was too strong andrew 2024-03-13 14:00:01 -07:00
  • c2606cd26a Add clang build in jenkins and record issues for clang andrew 2024-03-13 13:39:39 -07:00
  • 4b72fc0b7b Try -fstrict-enums andrew 2024-03-13 13:28:09 -07:00
  • a9caa0249e Use plain enum for type andrew 2024-03-13 13:20:48 -07:00
  • 08b2b7f41a Move comment to above field it's commenting on andrew 2024-03-13 12:38:16 -07:00
  • 26bd8b94cc Lower kBytesPerKey to 144 by changing Node4 to Node3 andrew 2024-03-13 12:29:01 -07:00
  • 55eaef5b1d Remove 16 bytes from Node0 andrew 2024-03-13 10:59:25 -07:00
  • 797e6b4a3e Use switch for type dispatch throughout andrew 2024-03-13 10:52:18 -07:00
  • ee86b5289b Rearrange induction inequalities andrew 2024-03-13 07:31:24 -07:00
  • b779c0f6f7 Fix induction (again). Now it's 176 bytes per key andrew 2024-03-13 07:26:49 -07:00
  • ef802b8acd Only skip free list from maybeDecreaseCapacity andrew 2024-03-12 17:33:28 -07:00
  • 5371c2bede Change kMinChildrenNode4 to 2, fixing the induction andrew 2024-03-12 16:34:20 -07:00
  • 75c304bbe7 WIP my understanding of the memory bound induction was wrong andrew 2024-03-12 15:44:25 -07:00
  • aefb83dbc6 Prepare for erase to invalidate children of parent andrew 2024-03-12 15:54:21 -07:00
  • b0ac7e41b9 Update corpus andrew 2024-03-12 14:48:58 -07:00
  • 4b6b2747bf Relax capacity property so that it _eventually_ needs to hold andrew 2024-03-12 12:47:24 -07:00
  • 1496aa106b Avoid an unnecessary node0 to node4 transition andrew 2024-03-12 11:44:58 -07:00
  • 71e117965e Fix issue with getSearchPath on nullptr on setOldestVersion andrew 2024-03-12 11:02:51 -07:00
  • 471b276947 Downsize nodes in erase andrew 2024-03-12 10:30:14 -07:00
  • b721bc80a9 Document that erase may invalidate search path andrew 2024-03-11 22:47:48 -07:00
  • 5e4eab55fb Avoid re-inserting begin if begin is not a prefix of end andrew 2024-03-11 22:43:52 -07:00
  • 1dcb380c73 Use getInTree in insert andrew 2024-03-11 22:22:49 -07:00
  • 87d650ff00 Change eraseChild to erase andrew 2024-03-11 21:54:20 -07:00
  • b8f6a8edf2 sizeof(Node0) also needs to be < kBytesPerKey andrew 2024-03-11 16:14:26 -07:00
  • 01f1d5850f Create a Node0 when splitting existing partial key andrew 2024-03-11 16:22:14 -07:00
  • cd567383c3 Only keep the assume's that actually improve codegen andrew 2024-03-10 14:34:55 -07:00
  • 53a442abf9 Use the assume attribute for gcc andrew 2024-03-10 14:22:47 -07:00
  • 6e212847ac Add assume macro andrew 2024-03-09 19:45:54 -08:00
  • 44a023c2f4 Bound individual size of allocation to put in free list andrew 2024-03-08 22:41:18 -08:00
  • e32bea7b29 Enforce free list memory bound by tracking bytes directly andrew 2024-03-08 21:46:35 -08:00
  • 504a93bb10 Track partialKeyCapacity andrew 2024-03-08 21:10:47 -08:00
  • b79d8f71d3 Replace destructor call with static assert andrew 2024-03-08 17:17:12 -08:00
  • 34430dbbe7 Remove longestCommonPrefixPartialKey andrew 2024-03-08 17:14:45 -08:00
  • 06fcb2531e Add an analysis on memory usage in static asserts andrew 2024-03-08 17:04:22 -08:00
  • bd24a362e3 Remove dead code and fix whitespace issue andrew 2024-03-08 16:44:42 -08:00
  • 1437280ec7 Attempt valgrind fix andrew 2024-03-08 15:00:40 -08:00
  • e5051bac9e Clean up some vestiges of fixed-size partial keys andrew 2024-03-08 14:56:16 -08:00
  • 733f32b22e Bring back precommit check for SHOW_MEMORY andrew 2024-03-08 14:44:35 -08:00
  • 3fb8bf7c3b Bring back custom allocator andrew 2024-03-08 14:43:18 -08:00
  • 0c8cb8faa5 Add specializations for partialKey() andrew 2024-03-08 14:01:56 -08:00