I had a few questions to anyone who's ever dabbled with the Intermediate Representation languages for the GCC and LLVM cross compilers. I've been researching the two and found some major differences between them, and was wondering which ones people think are easier to work with concerning language parsers translating to them for compilation.
First off: why is it that GNU makes it such a PITA to find a decent tutorial (or at least in-depth documentation) for GCC IR? LLVM IR *certainly* wins in this perspective, since all I have to do is search LLVM IR, and I get like 5 really good resources on the very first google page.
Secondly: which ones is supported by more *modern* and *most advanced* architectures and platforms? I'm talking more about x86, x64, possibly ARM and others, and platforms like Windows, OSX, Linux, etc. (from what I can tell, LLVM IR is really good with x86 architectures, considering there's tons of extra feature just for them)
Lastly: which one of the two are the easiest to translate into? LLVM IR is closer to abstract assembly, while from what I managed to find GCC IR seems to be more Lisp-like. Which requires less translation to represent a certain assembly function/chunk, and which one has more control over lower-level aspects of an assembly translation?
TIA