Profile-guided optimization (PGO) [1] is a compiler optimization technique that uses profiling data to improve program runtime performance. It relies on the intuition that runtime profiling data from previous executions can be used to drive optimization decisions. Unfortunately, collecting such profile data is expensive, cumbersome, and requires regular updating to remain fresh.
In this project we want to explore novel statistical approaches to inferring runtime profiling data using ML/AI techniques. As an example, a possible project outcome would be replicating and possibly extending the model presented in [2] in the context of GraalVM [3].
This project requires familiarity with ML/AI techniques, but no direct knowledge of language Virtual Machines, JIT compilation or GraalVM internals.
[1] https://en.wikipedia.org/wiki/Profile-guided_optimization
[2] https://arxiv.org/pdf/2112.14679.pdf