[LLVMdev] Debug info: type uniquing for C++ and the status on building clang with "-flto -g"
David Blaikie
dblaikie at gmail.com
Tue Nov 12 13:01:29 PST 2013
Hi Manman,
Thanks for sending this summary and progress plans - it's great to see the
impact your changes have had and ideas for future direction.
Type uniquing for C++ is in. Some data for Xalan with -flto -g:
> 9.9MB raw dwarf size, peak memory usage at 2.8GB
> The raw dwarf size was 58MB, memory usage was 7GB back in May, 2013.
> Other efforts at size reduction helped, and type uniquing improved on top
> of those.
>
> Data on building clang with "-flto -g" after type uniquing:
> 3.4GB MDNodes after parsing all bc files, 7GB MDNodes after linking all
> bc files
>
What's the change between parsing and linking?
> 4.6GB DIEs
>
It seems like the DIEs are a substantial (more than the pre-linked, but
post-parsed BC files) part of the footprint. I think it might be important
to do the CU-at-a-time work sooner rather than later as I'm concerned about
the design impact it will have on existing and future work (it's already
going to substantially change the cross-CU-DIE references, potentially
changing the cost/benefit of that feature since we cannot inject DIEs from
later CUs into prior ones).
> 4G MCContext
>
What's the data in the MCContext that's relevant to debug info?
> --> The memory usage is still too big.
>
Do we have an idea of what size is "small enough"? It would be useful to
have a goal.
> So how to reduce the memory footprint at MDNode level:
> 1> Combine integers into MDString and further combining MDStrings (see
> PR17891)
> A partial implementation on the important debug info nodes can
> reduce the MDNodes from 7GB to 5.7GB
>
I think this'll be an interesting, and potentially valuable, change even in
non-LTO cases, but not necessarily where I would start just now.
> 2> Release MDNodes that are only used by source modules (I will send out
> a proposal)
> An estimation based on partial implementation: this will reduce
> MDNodes from 5.7GB to 3.9GB
>
I'll keep an eye out for your proposal, as I can't quite picture what
you've got in mind from this brief description.
- David
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20131112/f829b6d2/attachment.html>
More information about the llvm-dev
mailing list