MEMOIR

MEMOIR is a compiler intermediate representation for data collections (list, set, map). MEMOIR is in single static assignment (SSA) form, making static analysis both simple and cheap to compute. By decoupling the logical organization of data from its memory layout, MEMOIR enables the compiler to perform novel memory optimizations.

Team Members

Simone Campanoni — Faculty
Tommy McMichen — Project Lead
Yian Su — Graduate Student
Benjamin Ye — Masters Student

Learn More

Interested in learning more? Check out the open-source compiler.

Want more details? Check out the getting started guide, or the documentation.

Publications

Automatic Data Enumeration for Fast Data Collections
CGO 2026 | PDF | DOI|
availablereusablereproduced
Tommy McMichen, Simone Campanoni.

Representing Data Collections in an SSA Form
CGO 2024 | PDF | DOI|
availablereusablereproduced
Tommy McMichen, Nathan Greiner, Peter Zhong, Federico Sossai, Atmn Patel, Simone Campanoni.

Posters

Collection-Oriented Compilation with MemOIR
Greater Chicago Area Systems Systems Workshop, 2025.
LLVM Developers' Meeting, 2025.
Tommy McMichen.