People may also find interesting the Open Dylan project's alternative implementation of an LLVM bitcode writer, https://github.com/dylan-lang/opendylan/blob/master/sources/... and https://github.com/dylan-lang/opendylan/blob/master/sources/...
I believe Swift also does their own serialization in LLVM's bitstream format[2]. I also saw an implementation of the writer in Swift, but now I've lost it.
[1]: https://github.com/GaloisInc/llvm-pretty-bc-parser
[2]: https://github.com/apple/swift/blob/main/docs/Serialization....