Practical: Are Abstract-Interpreter Baseline JITs Worth It? An Empirical Evaluation through Metacompilation
Baseline JIT compilers need to compile early and as fast as possible, while still performing optimizations. One powerful technique to write fast baseline JIT compilers is abstract interpretation. Several implementations of this technique exist in practice, implementing in a single pass optimizations such as register allocation, constant propagation, and instruction scheduling. However, although they share the same technique, all these implementations vary in the exact optimizations performed, their internal design and further implementation details (e.g., the implementation language and framework). Thus, it is challenging to understand and isolate the benefits of the technique by simply studing these existing implementations. Understanding the real impact of compile-time abstract in- terpreters requires isolating performance differences and exper- imenting with different variations of the same implementation, which demands extensive engineering work. In this paper, we propose to analyse the impact of abstract interpreters through metacompilation. We use metacompilation as a means to (a) reduce the experimentation effort and (b) to produce compiler variants that are comparable, reducing implementation noise. We implemented our solution to generate several JIT compiler variants for the Pharo VM. We describe the adaptations required in the metacompilation framework to target both abstract inter- preters and direct translators, in combination with Static Type Prediction optimizations. Our benchmarks show that compile-time abstract interpreters, on average, reduce the emitted machine code size by 12% and increase execution speed by 10%, up to 30%, without increasing JIT compilation overhead, compared to direct translators.
Tue 3 FebDisplayed time zone: Hobart change
09:50 - 11:10 | |||
09:50 20mTalk | Binary Diffing via Library Signatures Main Conference Andrei Rimsa CEFET-MG, Anderson Faustino da Silva State University of Maringá, Camilo Santana Melgaço Federal University of Minas Gerais, Fernando Magno Quintão Pereira Federal University of Minas Gerais Pre-print Media Attached | ||
10:10 20mTalk | BIT: Empowering Binary Analysis through the LLVM Toolchain Main Conference Puzhuo Liu Ant Group & Tsinghua University, Peng Di Ant Group & UNSW, Jingling Xue UNSW Sydney, Yu Jiang Tsinghua University Pre-print | ||
10:30 20mTalk | Dr.avx: A Dynamic Compilation System for Seamlessly Executing Hardware-Unsupported Vectorization Instructions Main Conference Yue Tang East China Normal University, Mianzhi Wu East China Normal University, Yufeng Li East China Normal University, Haoyu Liao East China Normal University, Jianmei Guo East China Normal University, Bo Huang East China Normal University Pre-print Media Attached | ||
10:50 20mTalk | Practical: Are Abstract-Interpreter Baseline JITs Worth It? An Empirical Evaluation through Metacompilation Main Conference Nahuel Palumbo Université Lille, CNRS, Centrale Lille, Inria, UMR 9189 - CRIStAL, Guillermo Polito Univ. Lille, Inria, CNRS, Centrale Lille, UMR 9189 CRIStAL, Stéphane Ducasse Inria; University of Lille; CNRS; Centrale Lille; CRIStAL, Pablo Tesone Univ. Lille, Inria, CNRS, Centrale Lille, UMR 9189 CRIStAL, Pharo Consortium Pre-print | ||