Google Summer of Code 2023
email: ksunhokim123@gmail.com
Education: B.S. in Computer Science, University of California San Diego
Completed project:
Re-optimization using JITLink
In Just-In-Time compilers we often choose a low optimization level to
minimize compile time and improve launch times and latencies, however
some functions (which we call hot functions) are used very frequently
and for these functions it is worth optimizing more heavily. In general
hot functions can only be identified at runtime (different inputs will
cause different functions to become hot), so the aim of the
reoptimization project is to build infrastructure to (1) detect hot
functions at runtime and (2) compile them a second time at a higher
optimization level, hence the name “re-optimization”. There are many
possible approaches to both parts of this problem. E.g. hot functions
could be identified by sampling, or using existing profiling
infrastructure, or by implementing custom
instrumentation. Reoptimization could be applied to whole functions, or
outlining could be used to enable optimization of portions of
functions. Re-entry into the JIT infrastructure from JIT’d code might be
implemented on top of existing lazy compilation, or via a custom path.
Project Proposal: URL
Project Reports: Final Report
Mentors: Vassil Vassilev, Stefan Gränitz, Lang Hames
Completed project:
Write JITLink support for a new format/architecture (ELF/AARCH64)
JITLink is LLVM’s new JIT linker API – the low-level API that
transforms compiler output (relocatable object files) into
ready-to-execute bytes in memory. With its new architecture, it is able
to support a variety of new features, which includes static initializer,
thread local storage, and small code model, that were not possible in
RuntimeDyld, the old JIT API. JITLink’s generic linker algorithm needs
to be specialized to support the target object format (COFF, ELF,
MachO), and architecture (arm, arm64, i386, x86-64). This project aims
to implement the JITLink specialization for ELF/aarch64 which is
required to use JITLink in arm64 linux.
Project Proposal: URL
Project Reports: Final Report
Mentors: Vassil Vassilev, Stefan Gränitz, Lang Hames