English

A Formal Semantics of the GraalVM Intermediate Representation

Logic in Computer Science 2024-03-04 v1 Programming Languages

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

@article{arxiv.2107.01815,
  title  = {A Formal Semantics of the GraalVM Intermediate Representation},
  author = {Brae J. Webb and Mark Utting and Ian J. Hayes},
  journal= {arXiv preprint arXiv:2107.01815},
  year   = {2024}
}

Comments

16 pages, 8 figures, to be published to ATVA 2021

R2 v1 2026-06-24T03:53:16.190Z