Back To Schedule
Tuesday, April 9 • 4:00pm - 4:30pm
Sulong: An experience report of using the "other end" of LLVM in GraalVM.

Sign up or log in to save this to your schedule, view media, leave feedback and see who's attending!

The most common use-case for LLVM is to re-use its back-end to implement a compiler for new programming languages. In project Sulong, we are going a different route: We use LLVM frontends, and consume the resulting bitcode. Sulong is the LLVM bitcode execution engine of GraalVM, a ployglot virtual machine that executes JavaScript, Python, Ruby, R, and others. The goal of Sulong is to bring C, C++, Fortran, and other languages that compile to LLVM bitcode into the system, and allow low-cost interoperability across language borders. The latter is crucial for efficiently supporting existing native interfaces of dynamic languages.

In this talk, we want to share our experience with implementing an engine for executing LLVM IR in GraalVM. We will discuss how Sulong executes LLVM bitcode and why this allows high-performance interoperability between languages. We will show the challenges of implementing existing native interfaces in new runtime environments, and how we use the different parts of the LLVM project for solving them. We want to focus on situations we found challenging and where we think we can contribute to the project.

avatar for Josef Eisl

Josef Eisl

GraalVM Sulong Team, Oracle Labs
Hi, I am Josef. I am doing research at Oracle Labs. My main interests include programming languages, compilers, register allocation, and virtual machines. Since 2014, I am working on GraalVM, a high-performance polyglot virtual machine. At Oracle Labs, my current focus is on Sulong... Read More →
avatar for Roland Schatz

Roland Schatz

GraalVM Sulong Team Lead, Oracle Labs
I'm a researcher at Oracle Labs. My research interests are compilers, virtual machines and language runtimes. I'm working in the GraalVM project since 2013. Currently I'm the project lead of the Sulong project, which utilizes LLVM to bridge the gap between managed languages and the... Read More →

Tuesday April 9, 2019 4:00pm - 4:30pm CEST