TigerShrimp: An Understandable Tracing JIT Compiler

dc.contributor.authorErlandsson, Jakob
dc.contributor.authorKärrman, Simon
dc.contributor.departmentChalmers tekniska högskola / Institutionen för data och informationstekniksv
dc.contributor.examinerAhrendt, Wolfgang
dc.contributor.supervisorMyreen, Magnus
dc.date.accessioned2021-09-10T06:47:02Z
dc.date.available2021-09-10T06:47:02Z
dc.date.issued2021sv
dc.date.submitted2020
dc.description.abstractTracing Just-in-Time (JIT) compilers have been used for compiling programs that regular compilers struggle with. The difference is clearest in dynamically typed languages such as JavaScript and Python where very little is know about a program’s behavior before run-time. During run-time, tracing JIT compilers look for loops in the code and only compile the most commonly taken path through these loops. Since compilation is a time consuming process, the idea is to only compile code that is run frequently enough for it to make up the time it takes to compile it. This works on the assumption that a program spends most of its execution time inside a few loops. Commercial tracing JIT compilers are very complex systems integrating many functionalities into a highly efficient program. As such, the general ideas behind tracing JIT compilers can be quite difficult to understand from reading about these compilers. This project explores the possibility of creating a smaller scale tracing JIT compiler with the main objective of making it understandable. As far as we know, this is the first tracing JIT compiler with this stated objective. Our tracing JIT compiler is designed for understandability meaning much effort was put into separating the different parts that make up a tracing JIT compiler into distinct modules, giving a clear overview of the responsibilities of the different parts and how they interact. Another aspect of understandability is the run-time visualizing toolkit developed alongside the tracing JIT compiler, this allows for insight into otherwise unseen functionality of the compiler. Performance of the compiler is not the main objective of this project, despite this, we show results highlighting the potential of tracing JIT compilers where our compiler in some cases outperform the OpenJDK JVM.sv
dc.identifier.urihttps://hdl.handle.net/20.500.12380/304102
dc.language.isoengsv
dc.setspec.uppsokTechnology
dc.subjectCompilersv
dc.subjectJITsv
dc.subjecttracing JIT compilersv
dc.subjectprogramming languagessv
dc.subjectrun-time visualizationsv
dc.subjectdesigned for understandabilitysv
dc.titleTigerShrimp: An Understandable Tracing JIT Compilersv
dc.type.degreeExamensarbete för masterexamensv
dc.type.uppsokH
Ladda ner
Original bundle
Visar 1 - 1 av 1
Hämtar...
Bild (thumbnail)
Namn:
CSE 21-50 Erlandsson Karrman.pdf
Storlek:
3.76 MB
Format:
Adobe Portable Document Format
Beskrivning:
License bundle
Visar 1 - 1 av 1
Hämtar...
Bild (thumbnail)
Namn:
license.txt
Storlek:
1.51 KB
Format:
Item-specific license agreed upon to submission
Beskrivning: