They are not so different - both are pretty standard CFG + three-address code (at least if we are talking about the middle end and not touching the part of codegen). But LLVM IR is perhaps better structured, better defined, less tightly coupled to compiler implementation, and has a better C ++ API compared to GCC Gimple. This allows us to simplify processing, transformation and analysis, which makes it preferable today for both the compiler and other related tools.
source
share