The LLVM Project Blog

LLVM Project News and Details from the Trenches

Remembering Johannes Doerfert


It is with great sadness that we share the news of the passing of Johannes Doerfert, on September 17, 2026, at the age of 36, after a battle with cancer. Johannes was one of the most prolific and respected contributors to the LLVM compiler project, and his loss will be deeply felt.

Johannes was born on November 5, 1989. He earned his Ph.D. in computer science from Saarland University in Saarbrücken, Germany, in 2018, where his research focused on applying polyhedral compiler technologies to low-level code. He had been an active LLVM contributor since 2014, working in the compiler design lab of Prof. Sebastian Hack, and became a core developer on the Polly polyhedral-optimization project as early as 2012.

Over the following decade, Johannes built a career at the intersection of compiler research and high-performance computing, most recently as a researcher focused on OpenMP, LLVM, and parallel program optimization.

Contributions to LLVM

Johannes’s worked on many parts of the LLVM Project, and these are just a few of his contributions:

  • The Attributor framework. Johannes designed and championed the Attributor, LLVM’s versatile inter-procedural fixpoint iteration framework for deducing and propagating function and argument attributes across a program. He introduced it to the community at the 2019 LLVM Developers’ Meeting, and it has since become an important piece of LLVM’s interprocedural optimization infrastructure.
  • OpenMP and GPU offloading. Johannes became LLVM’s code owner for OpenMP target offloading in 2021, leading the compiler and runtime support that lets OpenMP programs run efficiently on GPUs across NVIDIA, AMD, and Intel hardware. His work spanned the OpenMP runtime, just-in-time compilation and link-time optimization for target offloading, and techniques for near-zero-overhead GPU execution.
  • Polly and polyhedral optimization. Early in his career, Johannes was a core developer of Polly, LLVM’s polyhedral loop optimization infrastructure, and published research on polyhedral scheduling in the presence of reductions and on optimistic loop optimization.

He authored or co-authored dozens of papers on compiler optimization, automatic differentiation of GPU kernels, performance portability, and OpenMP.

Community Building

Johannes helped organize EuroLLVM 2017 in Saarbrücken, Germany, the LLVM-HPC workshop at CGO from 2017 onward, and the LLVM events at ISC starting in 2019, helping join together the LLVM and HPC communities.

He was frequently in attendance at the LLVM Developers’ Meeting Newcomer and Community.o sessions. He welcomed newcomers to the LLVM Developers’ Meetings and shared his advice and wisdom on how to get more involved in the project.

Johannes also held LLVM office hours on a weekly basis, where he answered questions on OpenMP, LLVM-IR, interprocedural optimizations, Attributor, workshops, research, and more.

Mentoring the Next Generation

Johannes was a Google Summer of Code mentor for LLVM for several years and helped student contributors on various projects. Here are just a few:

  • 2016
    • Polly as an Analysis Pass in LLVM
  • 2019
    • Improve (function) attribute inference (with Brian Homerding)
    • Improve (function) attribute inference - 2 (with Brian Homerding)
    • Generation of Annotated Sources (with Brian Homerding)
  • 2020
    • Improve Parallelism-Aware Analyses and Optimizations (with Jon Chesterfield)
    • Advanced Heuristics for Ordering Compiler Optimization Passes (with EJ Park and Giorgis Georgakoudis)
    • Improve inter-procedural analyses and optimizations (with Brian Homerding)
    • Advanced Heuristics for Ordering Compiler Optimization Passes - 2 (with EJ Park and Giorgis Georgakoudis)
    • Latency Hiding for Host to Device Memory Transfers (with Jon Chesterfield)
    • Improve inter-procedural analyses and optimizations - 2 (with Brian Homerding)
    • Deduce attributes for non-exact functions (with Brian Homerding)
  • 2021
    • Learning Loop Transformation Heuristics (with Mircea Trofin)
    • Integrate custom derivatives of Numerical Computing routines like BLAS and Eigen into Enzyme (with William Moses and Vassil Vassilev)
    • Improving OpenMP code generation with prediction of runtime parameters (with Jon Chesterfield)
    • Integrate Enzyme into Rust to Provide High-performance Differentiation in Rust (with William Moses)
    • Improve inter-procedural analyses and optimizations (with Jon Chesterfield)
    • Use official isl C++ bindings for polly (with Michael Kruse)
    • Integrating Enzyme into Rust (with William Moses)
  • 2022
    • Non-Determinacy based optimizations in Parallel Programs (with William Moses)
    • Learning loop transformation policy and its effect on RISC-V (with Mircea Trofin)
  • 2023
    • Machine Learning Guided Ordering of Compiler Optimization Passes (with Tarindu Jayatilaka and Mircea Trofin)
  • 2024
    • The 1001 Thresholds in LLVM (with Jan Hückelheim and William Moses)
    • GPU Libc Benchmarking (with Joseph Huber)
    • Statistical Analysis of LLVM-IR Compilation (with Aiden Grossman)
  • 2025
    • Improve Rust-Enzyme Reliability and Compile Times (with Manuel Drehwald and Kevin Sala)
    • LLVM Compiler Remarks Visualization Tool for Offloading (with Jose M Monsalve Diaz and Kevin Sala)

A Decade at the Podium

Besides the countless code contributions, mentorship, and community building, Johannes was a constant presence at US LLVM Developers’ Meetings and EuroLLVM. He spoke at 11 meetings across 11 years (2015–2024), for at least 26 speaking sessions and even more that he helped author.

Johannes Will Be Missed

Beyond the commits, the talks, and the papers, those who worked with Johannes remember him as a person full of life and a good sense of humor. He is someone who signed his social media bio simply as “LLVM Developer, OpenMP contributor, Beer drinker, not in this order.”

A memorial service will be held on Saturday, October 3, 2026, from 1:00 to 5:00 PM at San Jose Funeral Service in San Jose, California, with a separate service planned in Germany. He is survived by his wife, Xuejin Zhang, his father, Jürgen Doerfert, and other family and friends around the world.

In lieu of flowers, his family has asked that those who wish to honor his memory consider a donation to the LLVM Foundation (either through Everloved or directly), the organization whose mission he spent his career supporting and advancing. A very generous donor has agreed to match 50K in donations in honor of Johannes. If you donate directly to the LLVM Foundation via a DAF, please indicate in memory of Johannes Doerfert.

More details, and a place to share memories and condolences, can be found on Johannes’s memorial page.