On Dec 17, 2013, at 12:15, David Blaikie <[email protected]> wrote:
> > > >> On Mon, Dec 16, 2013 at 8:06 PM, Adrian Prantl <[email protected]> wrote: >> >> On Dec 16, 2013, at 4:54 PM, Greg Clayton <[email protected]> wrote: >> >> > >> > On Dec 16, 2013, at 2:55 PM, David Blaikie <[email protected]> wrote: >> > >> >> >> >> >> >> >> >> On Mon, Dec 16, 2013 at 2:44 PM, Adrian Prantl <[email protected]> wrote: >> >> Hi Chandler and David, >> >> >> >> unfortunately it looks more like case 1. This optimization breaks several >> >> assumptions that tools in our software stack depend on. >> >> >> >> It's a fairly substantial debug info size savings that seems worth >> >> investigating whether you can keep it enabled at least in >> >> >> >> - For example, it breaks dtrace, which on Darwin relies on being able to >> >> pull the (complete) CTF info (compact C type format) out of the DWARF in >> >> the .dSYM for a given module. >> >> >> >> I take it you're already using -fno-limit-debug-info for these scenarios, >> >> then? (are you using -flimit-debug-info at all?) >> > >> > Yes, this is what will need to happen now that clang has changed. >> >> In case this wasn't clear enough: Currently, this optimization is totally >> orthogonal to limited debug info. Passing -fno-limit-debug-info will not >> make any of these examples work. This thread is about adding an additional >> flag to the frontend that controls this optimization. >> >> I guess we could make also it part of -flimit-debug-info, either way will >> work. >> > Agreed. Though I'd rather separate it from -flimit-debug-info. > -flimit-debug-info is more aggressive. But, yes, for this particular kernel > scenario, if you do end up needing to disable the vtable-based optimization, > you should already be disabling -flimit-debug-info. > > - David In an attempt to wrap up this discussion: - this optimization greatly reduces debug info size. - but there are scenarios where it is useful for users to disable this optimization, and not just on Darwin (e.g., when linking against C++ libraries that come without debug info) I hereby propose to go with David’s suggestion above to add an independent -femit-class-debug-always option to clang that controls this behavior. I’m also volunteering to implement it. David, it seems as if adding the condition to CreateType() in CGDebugInfo.cpp:1473 would do the trick, is that correct? cheers, adrian *runs for cover :-p* _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
