ICFP 2024
Mon 2 - Sat 7 September 2024 Milan, Italy

This paper provides a novel approach to reconciling complex low-level memory model features, such as pointer–integer casts, with desired refinements that are needed to justify the correctness of program transformations. The idea is to use a "two-phase" memory model, one with an unbounded memory and corresponding unbounded integer type, and one with a finite memory; the connection between the two levels is made explicit by a notion of refinement that handles out-of-memory behaviors. This approach allows for more optimizations to be performed and establishes a clear boundary between the idealized semantics of a program and the implementation of that program on finite hardware.

The two-phase memory model has been incorporated into an LLVM IR semantics, demonstrating its utility in practice in the context of a low-level language with features like undef and bitcast. This yields infinite and finite memory versions of the language semantics that are proven to be in refinement with respect to out-of-memory behaviors. Each semantics is accompanied by a verified executable reference interpreter. The semantics justify optimizations, such as dead-alloca-elimination, that were previously impossible or difficult to prove correct.

Thu 5 Sep

Displayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change

13:30 - 15:00
Memory Models / Memory Management / Low-Level LanguagesICFP Papers and Events at Green 1-2-3
Chair(s): Stefan Monnier Université de Montréal
13:30
18m
Talk
Oxidizing OCaml with Modal Memory Management
ICFP Papers and Events
Anton Lorenzen University of Edinburgh, Leo White Jane Street, Stephen Dolan Jane Street, Richard A. Eisenberg Jane Street, Sam Lindley University of Edinburgh
DOI Pre-print
13:48
18m
Talk
A Two-Phase Infinite/Finite Low-Level Memory Model: Reconciling Integer–Pointer Casts, Finite Space, and undef at the LLVM IR Level of Abstraction
ICFP Papers and Events
Calvin Beck University of Pennsylvania, Irene Yoon Inria, Hanxi Chen University of Pennsylvania, Yannick Zakowski Inria, Steve Zdancewic University of Pennsylvania
DOI
14:06
18m
Talk
Double-Ended Bit-Stealing for Algebraic Data Types
ICFP Papers and Events
Martin Elsman University of Copenhagen
Link to publication DOI
14:24
18m
Talk
Beyond Trees: Calculating Graph-Based Compilers (Functional Pearl)Functional Pearl
ICFP Papers and Events
Patrick Bahr IT University of Copenhagen, Graham Hutton University of Nottingham
DOI Pre-print
14:42
18m
Talk
Sound Borrow-Checking for Rust via Symbolic Semantics
ICFP Papers and Events
Son Ho Inria, Aymeric Fromherz Inria, Jonathan Protzenko Microsoft Azure Research
DOI