Compiling with Continuations and LLVM

05/22/2018
by   Kavon Farvardin, et al.
0

LLVM is an infrastructure for code generation and low-level optimizations, which has been gaining popularity as a backend for both research and industrial compilers, including many compilers for functional languages. While LLVM provides a relatively easy path to high-quality native code, its design is based on a traditional runtime model which is not well suited to alternative compilation strategies used in high-level language compilers, such as the use of heap-allocated continuation closures. This paper describes a new LLVM-based backend that supports heap-allocated continuation closures, which enables constant-time callcc and very-lightweight multithreading. The backend has been implemented in the Parallel ML compiler, which is part of the Manticore system, but the results should be useful for other compilers, such as Standard ML of New Jersey, that use heap-allocated continuation closures.

READ FULL TEXT
research
12/26/2021

Automated Code Optimization with E-Graphs

This thesis proposes an advanced, generic and high-level code rewriting ...
research
06/11/2022

Homunculus: Auto-Generating Efficient Data-Plane ML Pipelines for Datacenter Networks

Support for Machine Learning (ML) applications in networks has significa...
research
04/12/2021

AI Powered Compiler Techniques for DL Code Optimization

Creating high performance implementations of deep learning primitives on...
research
07/05/2023

Using Rewrite Strategies for Efficient Functional Automatic Differentiation

Automatic Differentiation (AD) has become a dominant technique in ML. AD...
research
11/01/2019

Extending Relational Query Processing with ML Inference

The broadening adoption of machine learning in the enterprise is increas...
research
09/11/2019

Floorplan: Spatial Layout in Memory Management Systems

In modern runtime systems, memory layout calculations are hand-coded in ...
research
01/25/2019

Mind the Gap: Analyzing the Performance of WebAssembly vs. Native Code

All major web browsers now support WebAssembly, a low-level bytecode int...

Please sign up or login with your details

Forgot password? Click here to reset