LLVM is an extremely complex software, and for me, it’s a complete black box, since I have never used it for anything except using clang as a compiler for C programs.
Compilers, in general, are complex, and I’m always curious to understand more in-depth the details of a compiler. The following is a great quote from the article.
Developing a compiler is an enormous task. Luckily, the advent of compiler libraries such as LLVM make this a whole lot easier, making it possible for a single person to develop a new language that is close to C in terms of performance.
LLVM allows anyone to create its own compiler for a new language, but the problem is that the learning curve is quite steep :-). This article gives a high-level overview of how the LLVM IR works compared with the Go SSA. It’s a start if you want to learn a bit more about LLVM.