I wasn't trying to be critical, it's just significantly more than most languages (With good reason!). This is a good thing, I dream of when we will have
libraries/frameworks for doing these kind of high level program transformations in a modular way a la LLVM.
No. But that is probably two more than most other languages with a similar compilation model. (I think Rust has two IRs?)
Just for some more data, Swift is (Possibly still in the process of, but I don't follow swift so they could have finished years ago) moving to a higher level IR, for similar reasons to Rust and Haskell.
I thought Swift had multiple levels of SIL inside the compiler.