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
08b2b7f41a
Move comment to above field it's commenting on
2024-03-13 12:38:16 -07:00
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
55eaef5b1d
Remove 16 bytes from Node0
2024-03-13 10:59:25 -07:00
797e6b4a3e
Use switch for type dispatch throughout
2024-03-13 10:59:19 -07:00
ee86b5289b
Rearrange induction inequalities
...
This looks nicer IMO
2024-03-13 07:31:24 -07:00
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
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
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
75c304bbe7
WIP my understanding of the memory bound induction was wrong
2024-03-12 15:56:34 -07:00
aefb83dbc6
Prepare for erase to invalidate children of parent
2024-03-12 15:54:21 -07:00
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
1496aa106b
Avoid an unnecessary node0 to node4 transition
2024-03-12 11:44:58 -07:00
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
471b276947
Downsize nodes in erase
2024-03-12 10:31:36 -07:00
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
5e4eab55fb
Avoid re-inserting begin if begin is not a prefix of end
2024-03-11 22:43:52 -07:00
1dcb380c73
Use getInTree in insert
2024-03-11 22:22:49 -07:00
87d650ff00
Change eraseChild to erase
2024-03-11 21:54:20 -07:00
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
01f1d5850f
Create a Node0 when splitting existing partial key
2024-03-11 18:20:14 -07:00
cd567383c3
Only keep the assume's that actually improve codegen
2024-03-10 14:34:55 -07:00
53a442abf9
Use the assume attribute for gcc
2024-03-10 14:22:47 -07:00
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
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
e32bea7b29
Enforce free list memory bound by tracking bytes directly
2024-03-08 22:30:38 -08:00
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
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
34430dbbe7
Remove longestCommonPrefixPartialKey
2024-03-08 17:14:45 -08:00
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
bd24a362e3
Remove dead code and fix whitespace issue
2024-03-08 16:44:42 -08:00
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
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
3fb8bf7c3b
Bring back custom allocator
2024-03-08 14:43:18 -08:00
0c8cb8faa5
Add specializations for partialKey()
2024-03-08 14:01:56 -08:00
93e487c8fb
Only track partialKeyCapacity in tests
2024-03-08 13:58:40 -08:00
d91538dcad
Variable length partial keys
2024-03-08 13:50:40 -08:00
43a768d152
Reorder some Node fields
2024-03-08 13:33:38 -08:00
2989866a6d
Move type field to end of Node
2024-03-08 13:29:02 -08:00
60df97847c
Fix missed memcpy update
...
Everything should be in terms of kNodeCopyBegin and kNodeCopySize now
2024-03-08 13:23:43 -08:00
0038382661
Prepare to bitpack node fields if desired
2024-03-08 13:11:46 -08:00
782abc70d6
Remove custom allocator
...
To prepare for variable size partial keys
2024-03-08 13:02:33 -08:00
8802d17acd
Remove Node::Invalid
2024-03-08 12:57:06 -08:00
02afd47d8f
Node1 -> Node0
2024-03-08 12:07:47 -08:00
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
a8042ab20d
Simplify firstGeq - make it not stepwise
Tests / Release [gcc] total: 704, passed: 704
GNU C Compiler (gcc) |Total|New|Outstanding|Fixed|Trend
|:-:|:-:|:-:|:-:|:-:
|0|0|0|0|:clap:
Reference build: <a href="https://jenkins.weaselab.dev/job/weaselab/job/conflict-set/job/main/66//gcc">weaselab » conflict-set » main #66</a>
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 16:05:38 -08:00
1519216d08
Replace is_pod_v with is_trivial_v
Tests / Release [gcc] total: 704, passed: 704
GNU C Compiler (gcc) |Total|New|Outstanding|Fixed|Trend
|:-:|:-:|:-:|:-:|:-:
|0|0|0|1|:clap:
Reference build: <a href="https://jenkins.weaselab.dev/job/weaselab/job/conflict-set/job/main/65//gcc">weaselab » conflict-set » main #65</a>
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 14:26:01 -08:00
f2cd05c29d
Move Node::type to beginning of Node
...
Tests / Release [gcc] total: 704, passed: 704
GNU C Compiler (gcc) |Total|New|Outstanding|Fixed|Trend
|:-:|:-:|:-:|:-:|:-:
|1|1|0|0|:-1:
Reference build: <a href="https://jenkins.weaselab.dev/job/weaselab/job/conflict-set/job/main/64//gcc">weaselab » conflict-set » main #64</a>
Tests / Release [gcc,aarch64] total: 703, passed: 703
Tests / Coverage total: 702, passed: 702
weaselab/conflict-set/pipeline/head This commit looks good
This prepares us to have a variable size leaf type
2024-03-07 14:17:14 -08:00
5e1fb1dac5
Use entry bytes in partial key if entry not present
...
Closes #8
2024-03-07 13:47:37 -08:00
d1a6b293e9
Revert "Add getChildNodeGeq, use in nextLogical"
...
Tests / Release [gcc] total: 704, passed: 704
GNU C Compiler (gcc) |Total|New|Outstanding|Fixed|Trend
|:-:|:-:|:-:|:-:|:-:
|0|0|0|0|:clap:
Reference build: <a href="https://jenkins.weaselab.dev/job/weaselab/job/conflict-set/job/main/63//gcc">weaselab » conflict-set » main #63</a>
Tests / Release [gcc,aarch64] total: 703, passed: 703
Tests / Coverage total: 702, passed: 702
weaselab/conflict-set/pipeline/head This commit looks good
This reverts commit 53bc36f628
.
Apparently this used more instructions. Not sure I understand.
2024-03-07 12:41:34 -08:00