[PATCH, pretty-ipa] Fix wave ICE in SRA

Martin Jambor mjambor@suse.cz
Thu Apr 30 16:21:00 GMT 2009


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



More information about the Gcc-patches mailing list