[Bug debug/58315] [4.8/4.9/5 Regression] Excessive memory use with -g
aldyh at redhat dot com
gcc-bugzilla@gcc.gnu.org
Tue Feb 24 17:17:00 GMT 2015
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58315
--- Comment #23 from Aldy Hernandez <aldyh at redhat dot com> ---
On 02/24/2015 07:53 AM, jakub at gcc dot gnu.org wrote:
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58315
>
> --- Comment #22 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
> (In reply to Aldy Hernandez from comment #21)
>> Let me see if I understood this correctly. We need a DSE/DCE pass right
>> before var-tracking that would eliminate the redundant `this' statements
>> right before a non debug statement. So, for something like this:
>
> First of all, these are GIMPLE statements, so doing anything on them can't be
> right before var-tracking, which is one of the last RTL passes.
Sorry, what I should've said was doing it right before expand, or at a
place where gimple still exists.
> That said, I very much doubt you can DCE much here, just use -fdump-tree-*-all
> to see the uids of the this PARM_DECLs/VAR_DECLs, I bet most of them will be
> different.
Absolutely, _all_ of them are different for that matter. I think what
Richi was saying was that we could do a DSE type pass but take
intervening stores to a DEBUG statement that have the same LHS name a
debugger would see, and remove them based on that. So it wouldn't
matter that we have different `this':
# DEBUG this (for type "class foo") => D.1234
# DEBUG this (for type "class bar") => D.5678
# DEBUG this (for type "class biz") => D.9012
The first two stores are useless because you wouldn't be able to access
them from a debugger. Although perhaps I am misunderstanding something
(??).
More information about the Gcc-bugs
mailing list