Interflow: interprocedural flow-sensitive type inference and method duplication
Autor: | Martin Odersky, Denys Shabalin |
---|---|
Předmět: |
Computer science
Programming language Scala interprocedural optimization Type inference Optimizing compiler Ahead-of-time compilation 020207 software engineering 02 engineering and technology computer.software_genre Toolchain ahead-of-time compilation profile-guided optimization 020204 information systems 0202 electrical engineering electronic engineering information engineering Interprocedural optimization Profile-guided optimization Compiler Software_PROGRAMMINGLANGUAGES computer computer.programming_language |
Zdroj: | SCALA@ICFP |
Popis: | Scala heavily relies on a number of object-oriented abstractions to support its feature-rich collections library. There are known techniques that optimize those abstractions away in just-in-time (JIT) compilers, but applying them in the ahead-of-time (AOT) setting is problematic. Profile-guided optimization (PGO) lets AOT compilers apply some of the same optimizations that JIT compilers employ, but it comes at a high complexity cost. In this paper, we introduce Interflow, an alternative approach towards ahead-of-time optimization of Scala programs which relies on interprocedural flow-sensitive type inference and method duplication. Our evaluation shows that an Interflow-based optimizing compiler built on top of the Scala Native toolchain outperforms existing PGO-based optimizing compilers for Scala. Moreover, we demonstrate that Interflow and PGO can be combined to achieve further improvements. On our benchmarks, with both Interflow and PGO enabled, the Scala Native toolchain approaches the performance of the HotSpot JVM. |
Databáze: | OpenAIRE |
Externí odkaz: |