useR!2017 has ended
Back To Schedule
Thursday, July 6 • 1:48pm - 2:06pm
An LLVM-based Compiler Toolkit for R

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

Feedback form is now closed.
Online presentation: 


: compiler, code analysis, performance
Webpages: https://github.com/nick-ulle/rstatic, https://github.com/duncantl/Rllvm
R allows useRs to focus on the problems they want to solve by abstracting away the details of the hardware. This is a major contributor to R’s success as a data analysis language, but also makes R too slow and resource-hungry for certain tasks. Traditionally, useRs have worked around this limitation by rewriting bottlenecks in Fortran, C, or C++. These languages provide a substantial performance boost at the cost of abstraction, a trade-off that useRs should not have to face.
This talk introduces a collection of packages for analyzing, optimizing, and building compilers for R code, extending earlier work by Temple Lang (2014). By building on top of the LLVM Compiler Infrastructure (Lattner and Adve 2004), a mature open-source library for native code generation, these tools enable translation of R code to specialized machine code for a variety of hardware. Moreover, the tools are extensible and ease the creation of efficient domain-specific languages based on R, such as nimble and dplyr. Potential applications will be discussed and a simple compiler (inspired by Numba) for mathematical R code will be presented as a demonstration.
References Lattner, Chris, and Vikram Adve. 2004. “LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation.” In Proceedings of the International Symposium on Code Generation and Optimization: Feedback-Directed and Runtime Optimization, 75. CGO ’04. Washington, DC, USA: IEEE Computer Society.

Temple Lang, Duncan. 2014. “Enhancing R with Advanced Compilation Tools and Methods.” Statistical Science 29 (2). Institute of Mathematical Statistics: 181–200.


Thursday July 6, 2017 1:48pm - 2:06pm CEST
2.02 Wild Gallery