This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: basic_induction_var change
- To: Joern Rennecke <amylaar at cygnus dot co dot uk>
- Subject: Re: basic_induction_var change
- From: Jeffrey A Law <law at upchuck dot cygnus dot com>
- Date: Thu, 27 May 1999 02:43:30 -0600
- cc: mark at codesourcery dot com, egcs-patches at egcs dot cygnus dot com
- Reply-To: law at cygnus dot com
In message <199905261936.UAA18258@phal.cygnus.co.uk>you write:
> > The deal is that basic_induction_var is being called with
> > `x' equal to `(const_int 1)'. We decide this is a legitimate
> > increment, but fail to set the output parameter LOCATION. As a
> > result, a later call to validate_change
> >
> > if (! validate_change (next->insn, next->location, add_val, 0))
> >
> > crashes. I guessed that what was wanted for LOCATION was the address
> > of the `(const_int 1)'.
>
> It's not an increment, but sets the register to a constant.
> The biv->giv conversion code is not actually meant to operate on such sets.
>
> Wed May 26 20:34:53 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
>
> * loop.c (strength_reduce): Don't do biv->giv conversion on constants.
I went ahead and installed this into the egcs mainline sources as
well as the gcc-2.95 branch.
Thanks!
jeff