Some programs use their data cache extensively, while underusing their instruction cache. We embed constant data, typically stored in memory, into the immediate fields of instructions to balance to use of both caches. We illustrate the impacts of such optimizations on the performances of a target program, describing the key …| SYSTEMF @ EPFL
The JVM raw interpreter doesn't perform liveness analysis, so references sometimes persist much too long. Concretely in Scala, this leads to high memory consumption by lazy lists when a parent frame retains a reference to the root of the list. We added a mechanism to the Scala compiler to erase these references.| SYSTEMF @ EPFL
A story about writing high-performance code for a custom accelerator in a RISC-V CPU, with the help of some semi-automated tools.| SYSTEMF @ EPFL
Final project report about string diagram rewriting in Coq for CS-628 Interactive Theorem Proving, Spring 2024| SYSTEMF @ EPFL
An introduction to SpecMerger, a tree-diffing tool designed to facilitate mechanized specification audits.| SYSTEMF @ EPFL