A formal semantics of the GraalVM intermediate representation

From MaRDI portal
Publication:2147184

DOI10.1007/978-3-030-88885-5_8zbMATH Open1497.68104arXiv2107.01815OpenAlexW3209237303MaRDI QIDQ2147184FDOQ2147184


Authors: Brae J. Webb, Mark Utting, Ian Hayes Edit this on Wikidata


Publication date: 22 June 2022

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.


Full work available at URL: https://arxiv.org/abs/2107.01815




Recommendations



Cites Work


Cited In (2)

Uses Software





This page was built for publication: A formal semantics of the GraalVM intermediate representation

Report a bug (only for logged in users!)Click here to report a bug for this page (MaRDI item Q2147184)