This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: 4 GCC regressions, 2 new, with your patch on 2002-07-18T09:56:17Z.
- From: Geoff Keating <geoffk at geoffk dot org>
- To: jh at suse dot cz
- Cc: jh at suse dot cz, gcc-regression at gcc dot gnu dot org, amodra at bigpond dot net dot au, bo at suse dot de, rth at cygnus dot com, gcc-patches at gcc dot gnu dot org
- Date: Mon, 22 Jul 2002 05:04:23 -0700
- Subject: Re: 4 GCC regressions, 2 new, with your patch on 2002-07-18T09:56:17Z.
- References: <200207181329.g6IDT2F03232@maat.sfbay.redhat.com> <20020718200257.GD10794@atrey.karlin.mff.cuni.cz> <20020722010558.GB2484@atrey.karlin.mff.cuni.cz>
- Reply-to: Geoff Keating <geoffk at redhat dot com>
> Date: Mon, 22 Jul 2002 03:05:58 +0200
> From: Jan Hubicka <jh@suse.cz>
> > > With your recent patch, GCC has some regression test failures, which
> > > used to pass. There are 2 new failures, and 2
> > > failures that existed before and after that patch; 0 failures
> > > have been fixed.
> > >
> > > The new failures are:
> > > powerpc-eabisim gcc.sum gcc.dg/20010822-1.c
> > > native gcc.sum gcc.dg/20010822-1.c
> >
> > I guess I would have to conclude that these are mines however strange it
> > looks. I will check what is going on.
>
> Hi,
> this is another interesting problem. What happends is that code hoisting
> (insert_insn_end_bb) inserts load in between flags set and conditional
> jump instruction. This is valid, since load does not clobber flags, but
> not very sane as we lose optimizaiton opurtunities.
We really shouldn't be losing any optimisation opportunities by doing
this; if we do, it probably means that some piece of code is looking
at the RTL sequence instead of using def/use chains or whatever. What
goes wrong?
This code really doesn't feel right to me. There could be many
unexpected consequences.
> However, the code gets wrong in ifcvt as ifcvt insert new code before
> the flags set and uses uninitialized register.
Why does the code in ifcvt think this is valid?
> This patch fixes the gcse part by avoiding code hoisting to insert
> instructions as such a crazy places. I believe this is good thing to
> do, but still I would like to know what to do with ifcvt.
I think it would be best to fix ifcvt.
> Regtested bootstrapped mainline. I am now rerunning bootstrap with -Os.
> OK for mainline?
I don't think this code is a good idea.
> Mon Jul 22 03:02:47 CEST 2002 Jan Hubicka <jh@suse.cz>
> * gcse.c (insert_insn_end_bb): Do not insert in between flags setter
> and user.
--
- Geoffrey Keating <geoffk@geoffk.org> <geoffk@redhat.com>