Swift Intermediate Language: LLVM conference slides [pdf]
llvm.org
llvm.org
AST -> HIR -> MIR -> LLVM IR -> binary
The higher-level IR and mid-level IR are being introduced for the same reasons as this presentation, basically. It looks like SIL is closer to MIR.HIR: https://github.com/rust-lang/rfcs/blob/master/text/1191-hir....
MIR: https://github.com/rust-lang/rfcs/blob/master/text/1211-mir....
This would be akin to asking why do we need a C++-specific AST and a Swift-specific AST.
RPython's technique also only works for JITs, and neither Swift nor Rust use a JIT in their normal compilation pipeline. Generation of compilers by partial evaluation of an interpreter is interesting, but as far as I know it has never been used in an industrial strength implementation of a language.
Thanks!
edit: I would have been very interested to see perf with SIL opts turned off - to see how well LLVM can do without SIL optimizing before it.