2 ms·
I've been working with LLVM for a few years and I still find the code difficult to navigate and badly documented. And every single function's argument list is a
by tom_mellior 8y ago
I've been working with LLVM for a few years and I still find the code difficult to navigate and badly documented. And every single function's argument list is a random jumble of pointers and references (almost all arguments should be references, but many aren't).
- anarazel 8y agoIndeed. And it's not just medium to low-level stuff that's not well documented, it's the high-level stuff too. I personally don't mind that much if I have to spend a few minutes to understand something on a a very local scope, but if the bigger picture is unclear, that's quite bad. For LLVM one largely has to grep for a bunch of other users and try to figure it out from that. While I think it has some clear deficiencies, I found a lot of e.g. the optimization passes in GCC a lot easier to read. It's probably above par, but e.g. https://github.com/gcc-mirror/gcc/blob/master/gcc/gimple-ssa-store-merging.c https://github.com/gcc-mirror/gcc/blob/master/gcc/gimple-ssa... is really well explained imo.