This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH, pretty-ipa] Fix wave ICE in SRA
Hi,
On Thu, Apr 30, 2009 at 05:44:50PM +0200, Jan Hubicka wrote:
> > 2009/4/29 Martin Jambor <mjambor@suse.cz>:
> > > Hi,
> > >
> > > the patch below fixes an ICE on assert in intra-SRA when compiling
> > > boost (this issue is already fixed in the trunk patch).
> > >
> > > The problem is that I wrongly assumed that in an assignment in between
> > > types conforming to useless_type_conversion_p() the sizes of both
> > > sides would be the same. Obviously they need not to be. In fact the
> >
> > Err ...
> >
> > > RHS was substantially bigger in this case, which might confuse
> > > propagating accesses.
> >
> > ... can you share this case? It looks bogus.
>
> It also might be caused by inliner substitution that is not merge to
> mainline (yet?, I need to benchmark it after all the aliasing
> improvements after aliasing in early optimizations finally starts
> working ;))
I have reproduced this problem on mainline too. I did not analyze it
very thoroughly, though, but since it is the same error at the same
place with the same access sizes, I am quite convinces it is the same
issue.
> We probably ought to test this in verify_stmt and ICE, it is not really
> sane to allow = statements with mismatching types.
>
See my other post about this. The types match, it's the TYPE_SIZE and
(field) DECL_SIZE that don't. (BTW, I have always wondered which one
to use.) At least if my analysis is correct, that is...
Thanks,
Martin