A Two-Phase Infinite/Finite Low-Level Memory Model: Reconciling Integer–Pointer Casts, Finite Space, and undef at the LLVM IR Level of Abstraction
This paper provides a novel approach to reconciling complex low-level memory model features, such as pointerinteger 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.
Authors
- Hanxi Chen (ORCID: https://orcid.org/0009-0006-4486-7222)
- Yannick Zakowski (ORCID: https://orcid.org/0000-0003-4585-6470)
- Steve Zdancewic (ORCID: https://orcid.org/0000-0002-3516-1512)
- Calvin Beck (ORCID: https://orcid.org/0000-0002-3469-7219)
- Irene Yoon (ORCID: https://orcid.org/0000-0003-3388-1257)
Institutions
- Université Claude Bernard Lyon 1 (FR)
- École Normale Supérieure de Lyon (FR)
- Centre National de la Recherche Scientifique (FR)
- Institut national de recherche en sciences et technologies du numérique (FR)
- Laboratoire de l'Informatique du Parallélisme (FR)
- University of Pennsylvania (US)
- Philadelphia University (US)
Publication Details
- Journal
- Proceedings of the ACM on Programming Languages
- Published
- 2024-08-15
- DOI
- https://doi.org/10.1145/3674652
- Citations
- 8
- Primary Topic
- Parallel Computing and Optimization Techniques
- Type
- article
- Field-Weighted Citation Impact
- 3.91
Funders
- National Science Foundation