Understanding Feedback Information in Just-in-Time Compilers
Feedback information is used by Just-in-time compilers as the piece that glues together the runtime and the static worlds by enriching static type information with runtime observations. The compiler can speculate on the observed behavior, which is crucial for unlocking a number of optimizations. The more dynamic features a language has, the more relevant the runtime information becomes when generating performant code. This is the case with R, a highly dynamic programming language that combines delayed evaluation and side effects with first-class environments and full reflective capabilities that can even access and modify the state of stack frames at any time. However, recording feedback information considerably impacts the execution and memory of an interpreter, which leads to the question: Is all the information recorded really needed? In this study, we look at how the feedback information is used in Ř, a just-in-time compiler for the language R. We perform a study on a set of well-known benchmarks and a few real-world programs, reporting on the feedback usage and categorizing how the information is used (or not used) during a compilation.
Tue 3 JunDisplayed time zone: Belgrade, Bratislava, Budapest, Ljubljana, Prague change
10:30 - 12:00 | Lightning Talks - Block 1Lightning Talks at S 8 Chair(s): Pierre Donat-Bouillud Czech Technical University in Prague | ||
10:30 22mTalk | Smalltix: Smalltalk via the Unix Filesystem Lightning Talks | ||
10:52 22mTalk | Copy-and-Patch JIT for R Lightning Talks Matěj Kocourek Czech Technical University, Czechia | ||
11:15 22mTalk | Understanding Feedback Information in Just-in-Time Compilers Lightning Talks | ||
11:37 22mTalk | Binary parametricity in Rocq — the case of record types Lightning Talks Vojtěch Štěpančík Inria | ||
