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 
(??).

Reply via email to