Commit Graph

420 Commits

Author SHA1 Message Date
andrew a9caa0249e Use plain enum for type
Tests / Release [gcc] total: 932, passed: 932
GNU C Compiler (gcc) |Total|New|Outstanding|Fixed|Trend |:-:|:-:|:-:|:-:|:-: |5|0|5|0|:zzz:
Tests / Release [gcc,aarch64] total: 931, passed: 931
Tests / Coverage total: 930, passed: 930
weaselab/conflict-set/pipeline/head This commit looks good
My understanding is that this it's now UB for any value that's not
listed to inhabit Type, so the gcc warning about control reaching the
end of a function with an exhaustive switch where every case returns
should go away now.
2024-03-13 13:20:48 -07:00
andrew 08b2b7f41a Move comment to above field it's commenting on 2024-03-13 12:38:16 -07:00
andrew 26bd8b94cc Lower kBytesPerKey to 144 by changing Node4 to Node3
Tests / Release [gcc] total: 932, passed: 932
GNU C Compiler (gcc) |Total|New|Outstanding|Fixed|Trend |:-:|:-:|:-:|:-:|:-: |5|0|5|0|:zzz:
Tests / Release [gcc,aarch64] total: 931, passed: 931
Tests / Coverage total: 930, passed: 930
weaselab/conflict-set/pipeline/head This commit looks good
2024-03-13 12:29:01 -07:00
andrew 55eaef5b1d Remove 16 bytes from Node0 2024-03-13 10:59:25 -07:00
andrew 797e6b4a3e Use switch for type dispatch throughout 2024-03-13 10:59:19 -07:00
andrew ee86b5289b Rearrange induction inequalities
This looks nicer IMO
2024-03-13 07:31:24 -07:00
andrew b779c0f6f7 Fix induction (again). Now it's 176 bytes per key
Tests / Release [gcc] total: 932, passed: 932
GNU C Compiler (gcc) |Total|New|Outstanding|Fixed|Trend |:-:|:-:|:-:|:-:|:-: |0|0|0|0|:clap:
Tests / Release [gcc,aarch64] total: 931, passed: 931
Tests / Coverage total: 930, passed: 930
weaselab/conflict-set/pipeline/head This commit looks good
2024-03-13 07:26:49 -07:00
andrew ef802b8acd Only skip free list from maybeDecreaseCapacity
Tests / Release [gcc] total: 932, passed: 932
GNU C Compiler (gcc) |Total|New|Outstanding|Fixed|Trend |:-:|:-:|:-:|:-:|:-: |0|0|0|0|:clap:
Tests / Release [gcc,aarch64] total: 931, passed: 931
Tests / Coverage total: 930, passed: 930
weaselab/conflict-set/pipeline/head This commit looks good
2024-03-12 17:33:28 -07:00
andrew 5371c2bede Change kMinChildrenNode4 to 2, fixing the induction
Tests / Release [gcc] total: 932, passed: 932
GNU C Compiler (gcc) |Total|New|Outstanding|Fixed|Trend |:-:|:-:|:-:|:-:|:-: |0|0|0|0|:clap:
Tests / Release [gcc,aarch64] total: 931, passed: 931
Tests / Coverage total: 930, passed: 930
weaselab/conflict-set/pipeline/head This commit looks good
2024-03-12 16:34:20 -07:00
andrew 75c304bbe7 WIP my understanding of the memory bound induction was wrong 2024-03-12 15:56:34 -07:00
andrew aefb83dbc6 Prepare for erase to invalidate children of parent 2024-03-12 15:54:21 -07:00
andrew b0ac7e41b9 Update corpus 2024-03-12 14:52:43 -07:00
andrew 4b6b2747bf Relax capacity property so that it _eventually_ needs to hold
Tests / Release [gcc] total: 827, passed: 827
GNU C Compiler (gcc) |Total|New|Outstanding|Fixed|Trend |:-:|:-:|:-:|:-:|:-: |0|0|0|0|:clap:
Tests / Release [gcc,aarch64] total: 826, passed: 826
Tests / Coverage total: 825, passed: 825
weaselab/conflict-set/pipeline/head This commit looks good
Doing otherwise turned out to be prohibitively inconvenient

closes #9
2024-03-12 12:48:52 -07:00
andrew 1496aa106b Avoid an unnecessary node0 to node4 transition 2024-03-12 11:44:58 -07:00
andrew 71e117965e Fix issue with getSearchPath on nullptr on setOldestVersion
Tests / Release [gcc] total: 827, passed: 827
GNU C Compiler (gcc) |Total|New|Outstanding|Fixed|Trend |:-:|:-:|:-:|:-:|:-: |0|0|0|0|:clap:
Tests / Release [gcc,aarch64] total: 826, passed: 826
Tests / Coverage total: 825, passed: 825
weaselab/conflict-set/pipeline/head This commit looks good
2024-03-12 11:02:51 -07:00
andrew 471b276947 Downsize nodes in erase 2024-03-12 10:31:36 -07:00
andrew b721bc80a9 Document that erase may invalidate search path
It doesn't yet, but it will when we downsize nodes.
2024-03-11 22:47:48 -07:00
andrew 5e4eab55fb Avoid re-inserting begin if begin is not a prefix of end 2024-03-11 22:43:52 -07:00
andrew 1dcb380c73 Use getInTree in insert 2024-03-11 22:22:49 -07:00
andrew 87d650ff00 Change eraseChild to erase 2024-03-11 21:54:20 -07:00
andrew b8f6a8edf2 sizeof(Node0) also needs to be < kBytesPerKey
Tests / Release [gcc] total: 827, passed: 827
GNU C Compiler (gcc) |Total|New|Outstanding|Fixed|Trend |:-:|:-:|:-:|:-:|:-: |0|0|0|0|:clap:
Tests / Release [gcc,aarch64] total: 826, passed: 826
Tests / Coverage total: 825, passed: 825
weaselab/conflict-set/pipeline/head This commit looks good
Also remove vestigial comment.

CC #9
2024-03-11 18:21:00 -07:00
andrew 01f1d5850f Create a Node0 when splitting existing partial key 2024-03-11 18:20:14 -07:00
andrew cd567383c3 Only keep the assume's that actually improve codegen 2024-03-10 14:34:55 -07:00
andrew 53a442abf9 Use the assume attribute for gcc 2024-03-10 14:22:47 -07:00
andrew 6e212847ac Add assume macro
Tests / Release [gcc] total: 827, passed: 827
GNU C Compiler (gcc) |Total|New|Outstanding|Fixed|Trend |:-:|:-:|:-:|:-:|:-: |0|0|0|0|:clap:
Tests / Release [gcc,aarch64] total: 826, passed: 826
Tests / Coverage total: 825, passed: 825
weaselab/conflict-set/pipeline/head This commit looks good
Validated with cachegrind that this reduces instructions executed
2024-03-09 19:45:54 -08:00
andrew 44a023c2f4 Bound individual size of allocation to put in free list
Tests / Release [gcc] total: 827, passed: 827
GNU C Compiler (gcc) |Total|New|Outstanding|Fixed|Trend |:-:|:-:|:-:|:-:|:-: |0|0|0|0|:clap:
Tests / Release [gcc,aarch64] total: 826, passed: 826
Tests / Coverage total: 825, passed: 825
weaselab/conflict-set/pipeline/head This commit looks good
2024-03-08 22:41:18 -08:00
andrew e32bea7b29 Enforce free list memory bound by tracking bytes directly 2024-03-08 22:30:38 -08:00
andrew 504a93bb10 Track partialKeyCapacity
If we use partialKeyLen, then the difference between partialKeyCapacity
and partialKeyLen will slowly grow. We have 3 padding bytes in Node now.
2024-03-08 21:42:26 -08:00
andrew b79d8f71d3 Replace destructor call with static assert
Tests / Release [gcc] total: 827, passed: 827
GNU C Compiler (gcc) |Total|New|Outstanding|Fixed|Trend |:-:|:-:|:-:|:-:|:-: |0|0|0|0|:clap:
Tests / Release [gcc,aarch64] total: 826, passed: 826
Tests / Coverage total: 825, passed: 825
weaselab/conflict-set/pipeline/head This commit looks good
2024-03-08 17:17:12 -08:00
andrew 34430dbbe7 Remove longestCommonPrefixPartialKey 2024-03-08 17:14:45 -08:00
andrew 06fcb2531e Add an analysis on memory usage in static asserts
Tests / Release [gcc] total: 827, passed: 827
GNU C Compiler (gcc) |Total|New|Outstanding|Fixed|Trend |:-:|:-:|:-:|:-:|:-: |0|0|0|0|:clap:
Tests / Release [gcc,aarch64] total: 826, passed: 826
Tests / Coverage total: 825, passed: 825
weaselab/conflict-set/pipeline/head This commit looks good
CC #9
2024-03-08 17:04:22 -08:00
andrew bd24a362e3 Remove dead code and fix whitespace issue 2024-03-08 16:44:42 -08:00
andrew 1437280ec7 Attempt valgrind fix
Tests / Release [gcc] total: 827, passed: 827
GNU C Compiler (gcc) |Total|New|Outstanding|Fixed|Trend |:-:|:-:|:-:|:-:|:-: |0|0|0|0|:clap:
Tests / Release [gcc,aarch64] total: 826, passed: 826
Tests / Coverage total: 825, passed: 825
weaselab/conflict-set/pipeline/head This commit looks good
2024-03-08 15:00:40 -08:00
andrew e5051bac9e Clean up some vestiges of fixed-size partial keys
Tests / Release [gcc] total: 827, passed: 827
GNU C Compiler (gcc) |Total|New|Outstanding|Fixed|Trend |:-:|:-:|:-:|:-:|:-: |0|0|0|0|:clap:
Tests / Release [gcc,aarch64] total: 826, passed: 826
Tests / Coverage total: 825, failed: 1, passed: 824
weaselab/conflict-set/pipeline/head There was a failure building this commit
2024-03-08 14:56:16 -08:00
andrew 733f32b22e Bring back precommit check for SHOW_MEMORY
Tests / Release [gcc] total: 827, passed: 827
GNU C Compiler (gcc) |Total|New|Outstanding|Fixed|Trend |:-:|:-:|:-:|:-:|:-: |1|0|1|0|:zzz:
Tests / Release [gcc,aarch64] total: 826, passed: 826
Tests / Coverage total: 825, failed: 1, passed: 824
weaselab/conflict-set/pipeline/head There was a failure building this commit
2024-03-08 14:44:35 -08:00
andrew 3fb8bf7c3b Bring back custom allocator 2024-03-08 14:43:18 -08:00
andrew 0c8cb8faa5 Add specializations for partialKey() 2024-03-08 14:01:56 -08:00
andrew 93e487c8fb Only track partialKeyCapacity in tests 2024-03-08 13:58:40 -08:00
andrew d91538dcad Variable length partial keys 2024-03-08 13:50:40 -08:00
andrew 43a768d152 Reorder some Node fields 2024-03-08 13:33:38 -08:00
andrew 2989866a6d Move type field to end of Node 2024-03-08 13:29:02 -08:00
andrew 60df97847c Fix missed memcpy update
Everything should be in terms of kNodeCopyBegin and kNodeCopySize now
2024-03-08 13:23:43 -08:00
andrew 0038382661 Prepare to bitpack node fields if desired 2024-03-08 13:11:46 -08:00
andrew 782abc70d6 Remove custom allocator
To prepare for variable size partial keys
2024-03-08 13:02:33 -08:00
andrew 8802d17acd Remove Node::Invalid 2024-03-08 12:57:06 -08:00
andrew 02afd47d8f Node1 -> Node0 2024-03-08 12:07:47 -08:00
andrew 987e93b190 Update corpus
Tests / Release [gcc] total: 827, passed: 827
GNU C Compiler (gcc) |Total|New|Outstanding|Fixed|Trend |:-:|:-:|:-:|:-:|:-: |0|0|0|0|:clap:
Tests / Release [gcc,aarch64] total: 826, passed: 826
Tests / Coverage total: 825, passed: 825
weaselab/conflict-set/pipeline/head This commit looks good
2024-03-07 18:31:04 -08:00
andrew 81263f5abf Remove -Wpedantic for gcc
Tests / Release [gcc] total: 704, passed: 704
GNU C Compiler (gcc) |Total|New|Outstanding|Fixed|Trend |:-:|:-:|:-:|:-:|:-: |0|0|0|0|:clap:
Tests / Release [gcc,aarch64] total: 703, passed: 703
Tests / Coverage total: 702, passed: 702
weaselab/conflict-set/pipeline/head This commit looks good
2024-03-07 17:53:23 -08:00
andrew 2689901637 Suppress gcc warning about anon structs
Tests / Release [gcc] total: 704, passed: 704
GNU C Compiler (gcc) |Total|New|Outstanding|Fixed|Trend |:-:|:-:|:-:|:-:|:-: |1|0|1|0|:zzz:
Tests / Release [gcc,aarch64] total: 703, passed: 703
Tests / Coverage total: 702, passed: 702
weaselab/conflict-set/pipeline/head This commit looks good
2024-03-07 17:48:44 -08:00
andrew 87dd70c4b6 Fix bug introduced in 5e1fb1dac5
Tests / Release [gcc] total: 704, passed: 704
GNU C Compiler (gcc) |Total|New|Outstanding|Fixed|Trend |:-:|:-:|:-:|:-:|:-: |1|0|1|0|:zzz:
Tests / Release [gcc,aarch64] total: 703, passed: 703
Tests / Coverage total: 702, passed: 702
weaselab/conflict-set/pipeline/head This commit looks good
2024-03-07 17:43:34 -08:00