David Leopoldseder CV (PDF)

Research / Engineering

Compiler research.
Production systems.

Portrait of David Leopoldseder

Consulting Member of Technical Staff
Oracle

I am a compiler researcher and engineer at Oracle, working on Graal and Native Image. I design compiler transformations and carry them through implementation, correctness checks and production maintenance.

My work spans graph and loop optimizations, compilation costs and the boundary between compilers and runtimes.

Selected contributions

I introduced Native Image’s -O3 compilation mode and implemented shared arenas for the Java Foreign Function and Memory API.

I am the principal architect and main author of Ristretto, the Native Image JIT for Java classes loaded at run time through Crema. This work is under active development.

Explore current projects

Selected projects

Ristretto

The Native Image JIT for Java classes loaded at run time through Crema. This work is under active development.

Explore this work: Ristretto

Selected publications

  • Paper 2026

    Partial-Evaluation Templates: Accelerating Partial Evaluation with Pre-compiled Templates

    Florian Huemer, Aleksandar Prokopec, David Leopoldseder, Raphael Mosaner, Hanspeter Mössenböck

    Summary

    Reusable compiler graphs capture work that a bytecode interpreter would otherwise repeat during partial evaluation. Integrated into GraalVM and GraalWasm, the templates specialize to static inputs, reducing compilation work and warmup time while preserving peak performance in the reported evaluation.

  • Paper 2019

    Renaissance: Benchmarking Suite for Parallel Applications on the JVM

    Aleksandar Prokopec, Andrea Rosà, David Leopoldseder, Gilles Duboscq, Petr Tůma, Martin Studener, Lubomír Bulej, Yudi Zheng, Alex Villazón, Doug Simon, Thomas Würthinger, Walter Binder

    Summary

    Renaissance supplies JVM workloads built around modern concurrency and parallel programming. The paper compares Graal and HotSpot C2 and uses the suite to identify and evaluate compiler optimizations whose effects were less visible in established benchmarks.

  • Paper 2018

    Dominance-Based Duplication Simulation (DBDS): Code Duplication to Enable Compiler Optimizations

    David Leopoldseder, Lukas Stadler, Thomas Würthinger, Josef Eisl, Doug Simon, Hanspeter Mössenböck

    Summary

    Code duplication can expose optimizations across control-flow merges, but it also increases code size and compilation cost. DBDS simulates candidate duplications before applying them, allowing a cost model to weigh the expected optimization benefits against those costs. The approach is implemented and evaluated in GraalVM.

  • Paper 2018

    Fast-Path Loop Unrolling of Non-Counted Loops to Enable Subsequent Compiler Optimizations

    David Leopoldseder, Roland Schatz, Lukas Stadler, Manuel Rigger, Thomas Würthinger, Hanspeter Mössenböck

    Summary

    Unrolling a loop with an unknown iteration count is useful when it enables further optimization. This work simulates candidate transformations and separates hot paths from slower paths to guide that choice. Its GraalVM evaluation examines execution performance alongside code-size and compilation-time costs.

Browse all publications