AOT Vs. JIT: Impact of Profile Data on Code Quality


Student Name: TYLER WADE
Defense Date:
Location: 246 Nichols Hall
Chair: Prasad Kulkarni

Perry Alexander

Heechul Yun

Abstract:

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. 
JIT compilers typically collect profile information at run-time to 
enable profile-guided optimizations (PGO) to customize the gener- 
ated native code to different program inputs/behaviors. AOT com- 
pilation 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 af- 
fects the quality of generated code. Third, we develop a mechanism 
to determine the accuracy or similarity of 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.