Projects

Some projects from my research and spare time. Most involve compilers, programming languages, or program optimization.

Selected projects

Other projects

Semantic library-call discovery

CGO 2024

Latent Idiom Recognition

Finds opportunities to replace array code with BLAS or PyTorch calls, using equality saturation to recognize equivalent computations.

Managed-language compiler framework

Open source

Flame

A hobby compiler framework written in C#. It includes an SSA-based optimizer and back ends for .NET IL and LLVM IR.

MLIR.NET typed MLIR infrastructure teaser silhouette
Typed MLIR infrastructure for .NET

Open source

MLIR.NET

C# tooling for reading, writing, and working with MLIR. It uses TableGen dialect definitions to generate typed APIs.

Julia GPU garbage collection teaser illustration
Runtime support for GPU languages

Master's thesis

Julia GPU Garbage Collection

My master’s thesis: adding garbage collection to Julia GPU kernels, with compiler support in Julia and a mark-and-sweep runtime on the GPU.

Tiered compilation for graph bytecode

Research project

Modelverse JIT

A JIT compiler for the Modelverse’s graph-based bytecode. It starts with an interpreter and compiles frequently executed code using an SSA-based optimizer.

FlashFreeze JavaScript function serialization teaser
JavaScript function serialization

META 2019

FlashFreeze

Serializes JavaScript functions and their captured variables. Source instrumentation records the lexical environments needed to reconstruct closures.