Most modern compilers use some form of SSA for internal representation, which needs some notation for variables whose values can come from more than one source.
Most modern compilers use some form of SSA for internal representation, which needs some notation for variables whose values can come from more than one source.
I'm enabling IPO (inter-procedural optimization) for a C compilation of mine, using CMake: set_property(TARGET foo PROPERTY INTERPROCEDURAL_OPTIMIZATION TRUE)
One trend in the compilation is to use typed intermediate languages. Haskell's ghc with its core intermediate language, a variant of System F-omega, is an examp