Skip to content

Talks

We regularly present our work at the LLVM Developer Meetings: here are the talks of our team and our interns, from the first presentation of Polly in 2010 to today. Click a thumbnail to watch.

2026

EuroLLVM

Scaling Certified Instruction Selection For LLVM IR Through Bitblasting

Sarah Linh Kuhn, Luisa Cicolini

An LLVM instruction selector verified in Lean: using Sail's Lean backend for authoritative RISC-V semantics, we automatically verify real LLVM instruction selection and optimization patterns.

EuroLLVM

Toward A More Declarative InstCombine: Generalization & Parametric Bitvector Algorithms

Siddharth Bhat

New parametric bitvector algorithms lift InstCombine's fixed-width tests into width-independent identities, moving LLVM toward a declarative, provably correct InstCombine.

2025

LLVM Dev Mtg

Specializing MLIR Data Structures: an Experiment

Mathieu Fehr, Leo Stefanesco

What happens when we specialize MLIR's core data structures for a single dialect? Challenges, solutions, and lessons for faster MLIR compilers.

LLVM Dev Mtg

Automatically generating pattern rewrites in MLIR

Mathieu Fehr

Instead of writing rewrite rules by hand, we generate MLIR pattern rewrites automatically from a high-level specification.

EuroLLVM

How to trust your peephole rewrites: automatically verifying them for arbitrary width!

Siddharth Bhat

Algorithms, implemented and proven correct in Lean, that verify peephole rewrites for all bitwidths at once, applied to Hacker's Delight and InstCombine.

EuroLLVM

Dialects as a Dialect: Bringing native C++ registration to IRDL

Ivan Ho

A new tool generates C++ definitions from IRDL, so declaratively defined dialects work with C++ patterns and dialect conversion, just like ODS.

2024

LLVM Dev Mtg

Unlocking High Performance in Mojo through User-Defined Dialects

Mathieu Fehr, Jeff Niu

Mojo merges libraries and embedded DSLs by letting users extend its MLIR-based compiler with their own dialects.

LLVM Dev Mtg

Quidditch: An End-to-End Deep Learning Compiler for Occamy using IREE & xDSL

Markus Böck, Sasha Lopoukhine

From a neural network description to fast code on ETH's chiplet-based Occamy accelerator, combining IREE with a RISC-V micro-kernel compiler in xDSL.

LLVM Dev Mtg

DynamicAPInt: Infinite-Precision Arithmetic for LLVM

Arjun Pitchanathan

A new LLVM class for arbitrary-precision integers, with a small-value optimization that makes it up to 2.8x faster than APInt.

LLVM Dev Mtg

Exploiting MLIR Abstractions for Hardware Verification

Bea Healy, Luisa Cicolini

Generating verification models from CIRCT's high-level finite state machine dialect, to check hardware properties where they are easiest to state.

LLVM Dev Mtg

Is MLIR feature complete? Production ready?

Alex Zinenko, Stella Laurenzo, Renato Golin, Tobias Grosser, Mehdi Amini, Chris Lattner

A panel on where MLIR stands as upstream development slows down and more work moves to downstream projects.

LLVM Dev Mtg

lean-mlir: A Workbench for formally verifying Peephole Optimizations for MLIR

Alex Keizer, Siddharth Bhat

An Alive-style workflow in Lean: define peephole rewrites over LLVM-style IRs and verify them with proof automation.

EuroLLVM

Arcilator for ages five and up: flexible self-contained hardware simulation made easy

Théo Degioanni

A dialect-based interface for the CIRCT hardware simulator Arcilator that removes the need for hand-written C++ wrappers.

EuroLLVM

Teaching MLIR concepts to undergraduate students

Mathieu Fehr, Sasha Lopoukhine

An undergraduate compiler course at Edinburgh, with every step from parsing to RISC-V assembly expressed in MLIR.

2023

LLVM Dev Mtg

An MLIR Backend for Linear Algebra

Sasha Lopoukhine

A RISC-V backend dialect in MLIR that keeps high-level information during lowering, models hardware extensions as dialects, and allocates registers in SSA form.

LLVM Dev Mtg

MPI Dialect For MLIR

Anton Lydike

Bringing MPI into MLIR as a dialect, enabling automatic domain decomposition entirely within MLIR.

LLVM Dev Mtg

Arcilator: Fast And Cycle Accurate Hardware Simulation In CIRCT

Martin Erhart

A cycle-accurate hardware simulator in CIRCT that compiles designs straight to LLVM IR, with performance comparable to Verilator.

LLVM Dev Mtg

Extending Dominance To MLIR Regions

Siddharth Bhat, Jeff Niu

Where LLVM's notion of dominance breaks down in MLIR's regions, and possible ways forward.

LLVM Dev Mtg

MLIR Side Effect Modeling

Siddharth Bhat, Jeff Niu

A review of MLIR's memory effect interfaces, their limits for undefined behaviour and parallelism, and proposals to evolve them.

EuroLLVM

mlir-meminfo: A Memory Model for MLIR

Kunwar Grover, Arjun Pitchanathan

A lightweight analytical model that predicts the cache behaviour of MLIR programs and composes across transformations.

EuroLLVM

mlirSynth: Synthesis of Domain-Specific Programs in MLIR

Alexander Brauckmann

Automatically raising programs to high-level MLIR dialects by program synthesis from dialect definitions, instead of hand-written rules.

EuroLLVM

Fast pivot Function for MLIR's Presburger Library Through Vectorization and Integer Arithmetic in FPU

Qi Zhou

Speeding up the core of MLIR's Presburger library with vectorized, overflow-checked integer arithmetic on the FPU.

EuroLLVM

Prototyping MLIR in Python

Sasha Lopoukhine, Mathieu Fehr

xDSL, a pure-Python reimplementation of MLIR's core that lowers the barrier to entry and speeds up prototyping of dialects.

2022

LLVM Dev Mtg

IRDL: A Dialect for dialects

Mathieu Fehr, Théo Degioanni

A dialect for defining dialects declaratively, registered dynamically at runtime, with optimized verifiers.

LLVM Dev Mtg

MLIR for Functional Programming

Siddharth Bhat

An MLIR-based backend for the Lean 4 theorem prover, and what MLIR needs to support functional languages well.

EuroLLVM

Precise Polyhedral Analyses For MLIR using the FPL Presburger Library

Arjun Pitchanathan

A tutorial on MLIR's Presburger library: precise reasoning about integer sets for cache models, loop optimization, and verification.

EuroLLVM

Finding Missed Optimizations Through the Lens of Dead Code Elimination

Theodoros Theodoridis

Using dead code elimination as a lens to automatically find missed optimizations in GCC and LLVM.

2017

LLVM Dev Mtg

Scale, Robust and Regression-Free Loop Optimizations for Scientific Fortran and Modern C++

Tobias Grosser, Michael Kruse

How Polly became a scalable, robust, and regression-free loop optimizer for modern C++ and large scientific codes.

LLVM Dev Mtg

Enabling Polyhedral optimizations in TensorFlow through Polly

Annanay Agarwal, Michael Kruse, Brian Retford, Tobias Grosser, Ramakrishna Upadrasta

Speeding up deep learning kernels such as convolutions with Polly's polyhedral loop transformations.

2016

LLVM Dev Mtg

Enabling Polyhedral Optimizations in Julia

Matthias Reisinger

Bringing Polly's loop optimizations to the Julia language.

EuroLLVM

How Polyhedral Modeling enables compilation to Heterogeneous Hardware

Tobias Grosser

Using Polly's precise memory footprints and access remapping to compile for accelerators, up to automatic PTX/CUDA code generation.

EuroLLVM

Analyzing and Optimizing your Loops with Polly

Tobias Grosser, Johannes Doerfert

A hands-on tutorial: did Polly understand my loops, what did it learn about them, and how can it make them faster?

2015

LLVM Dev Mtg

Tutorial: Polly - Optimistic Loop Nest Optimizations with Schedule Trees

Tobias Grosser, Johannes Doerfert

Modeling loop programs with integer-set schedule trees, and how Polly uses optimistic assumptions to optimize real-world loop nests.

2011

LLVM Dev Mtg

Polly - First successful optimizations - How to proceed?

Tobias Grosser

One year in: Polly loads into clang -O3, generates SIMD and OpenMP code, and shows its first significant speed-ups over clang.

2010

LLVM Dev Mtg

Polly - Polyhedral optimizations in LLVM

Tobias Grosser

The first presentation of Polly, the polyhedral loop optimizer for LLVM.