A Two-Phase Memory Model for Low-Level Languages: Reconciling Finite Memory and Pointer-Integer Casts
This paper proposes a novel two-phase memory model that reconciles the tension between low-level memory operations and high-level optimizations in programming languages like C and LLVM IR. The model uses an unbounded "infinite" memory phase for performing optimizations, and a finite memory phase for the final executable.