This is the mail archive of the gcc@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]

Re: g++keeps unused objects with virtual functions


> which shows how the global objects initialization keeps things live.
> Early optimization turns it into
> 
> (static initializers for t.C) ()
> {
>   <bb 2>:
>   NotUsedObject._vptr.CObject = &MEM[(void *)&_ZTV7CObject + 16B];
>   return;
> 
> }
> 
> but we don't have any pass removing stores to globals never read.  IPA
> reference computes this
> in some way but doesn't get to export this in a reasonable way - its
> transform stage could DSE
> those though.

We have write only variable detection but
> NotUsedObject/4 (CObject NotUsedObject) @0x7f70d41fe580
>   Type: variable definition analyzed
>   Visibility: public
>   References:
>   Referring: _Z41__static_initialization_and_destruction_0ii/9 (addr)
>   Availability: not-ready
>   Varpool flags:

it stops on fact believing that address of NotUsedObject is taken. Why it is
not considered to be load?

Honza


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