LLVM is a great project. I'm writing a programming language based on it.<p>It is so much easier because: (1) it's easier than writing machine code translation and (2) it's also easier than translating your code to C which would be purely textual.<p>Nevertheless, it's difficult to learn for people coming from high-level languages, even for me, who knows C to some degree.<p>The documentation around IR is scarce.<p>Then, I've stumbled upon a trick where I can just write C code and compile to LLVM IR with Clang. With this trick, I can answer many questions on my own (e.g. how to implement if-else, how to call printf, how to make a dynamic-sized array.)