Session Type
Technical Talk
Date & Time
Thursday, October 12, 2023, 4:45 PM - 5:15 PM
Optimizing Debug Info for Caching in llvm-cas

DWARF debug info is designed to minimize disk space. Despite its efficient encoding, debug info is usually the largest part of an object file's contents. This is particularly noticeable when building a compilation cache for incremental builds: Even small changes to an object file can have ripple effects on the debug info encoding as offsets in the file change and abbreviations are renumbered. In this talk we explore how to efficiently store DWARF debug information in a CAS (Content Addressable Storage). By isolating each function’s debug info contribution into its own CAS Object, we can reduce the overall size of the debug information in incremental builds drastically. This can be achieved by emitting DWARF that is more “split-able” while ensuring that we abide by the DWARF standard and do not lose any information in the process. We will discuss the efficacy of this approach when comparing against a file-based build cache such as ccache.

Location Name
Hall of Cities