I used LLVM IR for several compiler loops and worked with compilers that use C as the back end. One thing I discovered gave LLVM IR the advantage of being printed. It is difficult to draw completely poorly formed output without getting errors from the LLVM libraries.
In my opinion, it is also easier to maintain a close correlation between source code and IR for debugging.
In addition, you get all the cool LLVM command line tools for analyzing and processing IR, which emits your front end.
Richard Pennington
source share