To facilitate maintenance efforts over time, a BNF grammar for LLVM IR assembly has been written, from which the lexer and parser are generated [1,2,3]. The intention is for this BNF grammar to eventually become the basis or starting ground for an official BNF grammar of the LLVM IR assembly language (but that's a different project altogether, and a huge effort in itself).
[1]: https://github.com/llir/llvm/blob/master/asm/internal/ll.bnf
Merged modules were a major change to LLVM. And this part is still evolving. Like, the last breaking change was 16 days ago: https://github.com/llvm-mirror/llvm/commit/e74c64e05ab257c37...