RFA: Fix ICE related to ADDR_EXPR forward propagation

Daniel Berlin dberlin@dberlin.org
Sat May 21 13:54:00 GMT 2005


On Fri, 2005-05-20 at 07:17 -0600, Jeffrey A Law wrote:
> On Fri, 2005-05-20 at 07:12 -0400, Daniel Berlin wrote:
> > On Fri, 2005-05-20 at 07:23 +0100, Richard Sandiford wrote:
> > > Mainline currently segfaults while trying to build newlib's hash.c.
> > > The problem seems to be caused by the recent patch to forward-propagate
> > > ADDR_EXPRs.  The idea of those changes is to replace:
> > > 
> > >     t1 = &thing[0]
> > >     t2 = index * scale
> > >     t3 = (ptr_type) t2
> > >     result = t1 + t3
> > > 
> > > with:
> > > 
> > >     result = &thing[index]
> > 
> > 
> > >   I'm not exactly 100%
> > > confident this will be accepted as the right fix though. ;)
> > 
> > 
> > You want to call recompute_tree_invariant_for_addr_expr on the ADDR_EXPR
> > after the operands are replaced.
> > 
> > It'll do what it says (recompute the invariant flag, etc, as
> > approriate).
> Andrew Pinski has a patch for that -- I've twiddled it slightly
> (moved it into the cleanup routine
> recently added by RTH).

Yeah, i had sent him a patch that actually adds verification of
ADDR_EXPR updates (IE during verify_stmt, it calls
recompute_tree_invariant_for_addr_expr and makes sure nothing changes),
which he was using to track these down.

The patch to do the verification is attached to a bug these days, i
don't remember which :)




More information about the Gcc-patches mailing list