Proposal: type uniquing of debug info for LTO
rafael.espindola at gmail.com
Tue Oct 1 05:54:38 PDT 2013
On 20 June 2013 17:51, Manman Ren <mren at apple.com> wrote:
> The intent of this proposal is to speedup compilation of "-flto -g" for c++ programs.
> This is based on discussions with Adrian, David and Eric.
> A single class can be used in multiple source files and the DI (Debug Info) class is included in multiple bc files. The duplication of
> class definitions causes blow-up in # of MDNodes, # of DIEs, leading to large memory requirement.
> As an example, SPEC xalancbmk requires 7GB of memory when compiled with -flto -g.
> With a preliminary implementation of type uniquing, the memory usage will be down to 2GB.
This is awesome! :-)
> In order to unique types, we have to break cycles in the MDNodes.
Sorry I missed this email earlier, but do we really need to break the
cycles? This is not a generic graph isomorphism problem. If we just
add the hashes to the metadata nodes representing types, merging then
for every two types with the same hashes:
try merging them recursively. The order is important, so this is
just a dfs that succeeds or not.
More information about the llvm-commits