This page describes various presentations and publications related to Graal.
This tutorial presents Graal, a high-performance dynamic compiler for Java written in Java. It covers the following topics:
- Key distinguishing features of Graal,
- Introduction to the Graal IR: basic properties, instructions, and optimization phases
- Speculative optimizations: first-class support for optimistic optimizations and deoptimization
- Graal API: separation of the compiler from the VM
- Snippets: expressing high-level semantics in low-level Java code
- Compiler intrinsics: use all your hardware instructions with Graal
- Using Graal for static analysis
- Custom compilations with Graal: integration of the compiler with an application or library
- Graal as a compiler for dynamic programming languages in the Truffle framework
CGO 2015, February 7-11, San Francisco, CA
Video recording: Part 1, Part 2
Download Slides
-
Gilles Duboscq, Thomas Würthinger, Hanspeter Mössenböck: Speculation Without Regret: Reducing Deoptimization Meta-data in the Graal compiler.
In Proceedings of the Intl. Conf. on Principles and Practice of Programming in Java (PPPJ'14), 2014Download paper
Describes techniques used in Graal to reduce the memory footprint of speculative optimizations. -
Lukas Stadler: Partial Escape Analysis and Scalar Replacement for Java. PhD thesis, Johannes Kepler University Linz, 2014
-
Lukas Stadler, Thomas Würthinger, Hanspeter Mössenböck: Partial Escape Analysis and Scalar Replacement for Java.
In Proceedings of the Symposium on Code Generation and Optimization (CGO), 2014.Download paper
Describes Graal's advanced escape analysis algorithm. -
Gilles Duboscq, Thomas Würthinger, Lukas Stadler, Christian Wimmer, Doug Simon, Hanspeter Mössenböck: An Intermediate Representation for Speculative Optimizations in a Dynamic Compiler.
In Proceedings of the Workshop on Virtual Machines and Intermediate Languages, 2013.Download paper
Describes the speculative optimizations that Graal's graph-base intermediate representation allows. -
Lukas Stadler, Gilles Duboscq, Hanspeter Mössenböck, Thomas Würthinger, Doug Simon: An Experimental Study of the Influence of Dynamic Compiler Optimizations on Scala Performance.
In Proceedings of the 4th Workshop on Scala (SCALA '13), 2013. -
Gilles Duboscq, Lukas Stadler, Thomas Würthinger, Doug Simon, Christian Wimmer, Hanspeter Mössenböck: Graal IR: An Extensible Declarative Intermediate Representation.
In Proceedings of the Asia-Pacific Programming Languages and Compilers Workshop, 2013.Download paper
Describes the basic architecture of Graal's graph-based intermediate representation. -
Lukas Stadler, Gilles Duboscq, Hanspeter Mössenböck, Thomas Würthinger: Compilation Queueing and Graph Caching for Dynamic Compilers. In Proceedings of the sixth ACM workshop on Virtual machines and intermediate languages, 2012.
-
Thomas Würthinger, Christian Wimmer, Andreas Wöß, Lukas Stadler, Gilles Duboscq, Christian Humer, Gregor Richards, Doug Simon, Mario Wolczko: One VM to Rule Them All. In Proceedings of Onward!, ACM Press, 2013. doi: 10.1145/2509578.2509581
Download paper
Describes the vision of the Truffle approach, and the full system stack including the interpreter and dynamic compiler. -
Thomas Würthinger, Andreas Wöß, Lukas Stadler, Gilles Duboscq, Doug Simon, Christian Wimmer: Self-Optimizing AST Interpreters. In Proceedings of the Dynamic Languages Symposium, pages 73–82. ACM Press, 2012. doi:10.1145/2384577.2384587
Download paper
Describes the design of self-optimizing and self-specializing interpreter, and the application to JavaScript.