Session Type
Technical Talk
Date & Time
Wednesday, November 9, 2022, 3:00 PM - 3:30 PM
Using Content-Addressable Storage in Clang for Caching Computations and Eliminating Redundancy
In this presentation, we introduce a Content-Addressable Storage (CAS) library for LLVM and use it to create a compilation caching system for Clang. We isolate the functional computations from filesystem and execution environment and model input discovery explicitly, caching computations based on explicit inputs from the CAS. We increase cache hits between related compiler invocations by caching fine-grained actions/requests that prune and canonicalize their inputs. We also explore modeling object file contents, such as debug information, as a CAS graph, in order to deduplicate and reduce the redundancy in the output format, thus reducing the storage cost for the cached compilation artifacts.
Location Name
Hayes Ballroom - Main Level