AOT Vs. JIT: Impact of Profile Data on Code Quality
Just-in-time (JIT) compilation during program execution and ahead-of-time (AOT) compilation during software installation are alternate techniques used by managed language virtual machines (VM) to generate optimized native code while simultaneously achieving binary code portability and high execution performance. Profile data collected by JIT compilers at run-time can enable profile-guided optimizations (PGO) to customize the generated native code to different program inputs. AOT compilation removes the speed and energy overhead of online profile collection and dynamic compilation, but may not be able to achieve the quality and performance of customized native code. The goal of this work is to investigate and quantify the implications of the AOT compilation model on the quality of the generated native code for current VMs.
First, we quantify the quality of native code generated by the two compilation models for a state-of-the-art (HotSpot) Java VM. Second, we determine how the amount of profile data collected affects the quality of generated code. Third, we develop a mechanism to determine the accuracy or similarity for different profile data for a given program run, and investigate how the accuracy of profile data affects its ability to effectively guide PGOs. Finally, we categorize the profile data types in our VM and explore the contribution of each such category to performance.
Wed 21 Jun
|10:50 - 11:15|
|11:15 - 11:40|
|11:40 - 12:05|
|12:05 - 12:30|
Dynamic Translation of Structured Loads/Stores and Register Mapping for Architectures with SIMD Extensions
Sheng-Yu Fu, Ding-Yong HongInstitute of Information Science, Academia Sinica, Ping YuDepartment of Computer Science and Information Engineering, National Taiwan University, Jan-Jan WuInstitute of Information Science, Academia Sinica, Wei-Chung HsuDept. Computer Science & Information Engineering, National Taiwan University