This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug debug/58315] [4.8/4.9/5 Regression] Excessive memory use with -g


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58315

--- Comment #24 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
(In reply to Aldy Hernandez from comment #23)
> 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 
> (??).

The question is why do you think you couldn't access them in the debugger.
For the problem of tracking values of variables not in the scope please read
the thread starting at https://gcc.gnu.org/ml/gcc-patches/2010-03/msg00960.html
If you are talking about GIMPLE, you have no way to know what scheduling and
many other passes will perform for code motions etc., so really knowing if
something is or is not in scope is ever orders of magnitude harder there.
If say some foo class method invokes bar class method which invokes biz class
method and all 3 are inlined, then you obviously can and want to access all 3
in the debugger at the same point.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]