A Formal Semantics of the GraalVM Intermediate Representation

2Citations
Citations of this article
4Readers
Mendeley users who have this article in their library.
Get full text

Abstract

The optimization phase of a compiler is responsible for transforming an intermediate representation (IR) of a program into a more efficient form. Modern optimizers, such as that used in the GraalVM compiler, use an IR consisting of a sophisticated graph data structure that combines data flow and control flow into the one structure. As part of a wider project on the verification of optimization passes of GraalVM, this paper describes a semantics for its IR within Isabelle/HOL. The semantics consists of a big-step operational semantics for data nodes (which are represented in a graph-based static single assignment (SSA) form) and a small-step operational semantics for handling control flow including heap-based reads and writes, exceptions, and method calls. We have proved a suite of canonicalization optimizations and conditional elimination optimizations with respect to the semantics.

Cite

CITATION STYLE

APA

Webb, B. J., Utting, M., & Hayes, I. J. (2021). A Formal Semantics of the GraalVM Intermediate Representation. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 12971 LNCS, pp. 111–126). Springer Science and Business Media Deutschland GmbH. https://doi.org/10.1007/978-3-030-88885-5_8

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free