[PATCH] PR tree-optimization/29877: handling of register vars during TER

Richard Guenther richard.guenther@gmail.com
Mon Jan 8 11:07:00 GMT 2007


On 1/8/07, Mark Shinwell <shinwell@codesourcery.com> wrote:
> Richard Guenther wrote:
> > On 1/3/07, Mark Shinwell <shinwell@codesourcery.com> wrote:
> >> Mark Shinwell wrote:
> >> > This patch fixes PR29877, which concerns erroneous extensions of
> >> > the lifetimes of register variables.  This was being caused by the
> >> > TER pass incorrectly removing assignments with a register variable
> >> > on the RHS.
> >> >
> >> > There was some discussion internally as to what to do about the
> >> > somewhat fragile testcase involved in the patch; that below was
> >> > eventually settled on.
> >> >
> >> > This patch causes no regressions on x86_64-unknown-linux-gnu with all
> >> > default languages enabled.  OK to apply to mainline?
> >>
> >> Ping, please.
> >
> > This is ok for mainline if you re-bootstrap & test.
>
> I have applied this as follows -- there are a couple of extra lines in the
> patch now because this TER modification means that the dg-error directives
> in pr16194.c added recently by Honza are no longer required.
>
> Bootstrapped and tested with no regressions on x86_64-unknown-linux-gnu.

Thanks!

> Should I also prepare and apply patches for this for 4.1 and 4.2 once
> clean testsuite results have been obtained?

Yes please, this is a regression.

Richard.

> 2007-01-08  Mark Shinwell  <shinwell@codesourcery.com>
>
>         PR tree-optimization/29877
>         gcc/
>         * tree-ssa-ter.c (is_replaceable_p): Deem assignments with
>         a register variable on the RHS to not be replaceable.
>
>         gcc/testsuite/
>         * gcc.dg/pr16194.c: Skip test entirely if we don't know the
>         name of a hard register for the target concerned.  Adjust dg-error
>         directives to cope with new behaviour of TER.



More information about the Gcc-patches mailing list