Skip to content

Latest commit

 

History

History
75 lines (50 loc) · 4.98 KB

Publications.md

File metadata and controls

75 lines (50 loc) · 4.98 KB

This page describes various presentations and publications related to Graal.

Graal Tutorial

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

Graal Papers

  • Doug Simon, Christian Wimmer, Bernhard Urban, Gilles Duboscq, Lukas Stadler, Thomas Würthinger: Snippets: Taking the High Road to a Low Level.
    In Transactions on Architecture and Code Optimization (TACO), 2015

    Download paper
    Describes Graal Snippets.

  • 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), 2014

    Download 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

    Download

  • 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.

    Download paper

  • 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.

    Download paper

  • 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.