A recently released nice talk about data structures used in LLVM:
The talk first shows three general data structures, a small vec (similar to https://github.com/servo/rust-smallvec ) a small set, and a small associative array, Chandler Carruth says that they are used all over the place in LLVM. Later he shows several kinds of tagged pointers, and few more data structures that are a little more complex.
The recurring theme in the talk is to use the stack as much as possible, and to pack data and bits as much as possible. In future Rust will need to encourage/help programmers more strongly to do both things. I think that if you rewrite some major piece of LLVM using Rust without data structures like those, you risk producing slower code that eats more RAM.
As the Rust community matures I think the average Rust programmers should use more data structures like those. To encourage the usage of those data structures is it worth having them in the standard library? Perhaps having them just in crates.io, plus having them used in the standard library and their usage explained in the standard documentation and common Rust books is enough
Edit: perhaps it’s also worth having a simple compiler option (or a tool) that instruments the binary so after a run of the program it prints how much large the small data structures need to have their stack-allocated part. This helps tune the code.