This is a work in progress, but I'd like some comments on where this is going.
Allow more than one stackdepot in a process.
Generalize the code to provide a compact storage for chained origins, which is a map (u32, u32) -> u32.
It is different from the normal stackdepot in that it does not keep a copy of the hash value in each table cell.
I also add a counter to stackdepot nodes that would be increased each time a stack participates in origin chaining. I use the lower 20 bits of the hash value for this counter.
I'm not sure I like the end result, it's pretty complex and tightly coupled. I don't see how to make it simpler short of duplicating the hash table implementation.
Isn't it all in __msan namespace?