This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Deadly optimization bug (all gcc versions!)
- To: Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
- Subject: Re: Deadly optimization bug (all gcc versions!)
- From: Jeffrey A Law <law@cygnus.com>
- Date: Mon, 30 Aug 1999 02:37:58 -0600
- cc: Bernd Schmidt <bernds@cygnus.co.uk>, Joern Rennecke <amylaar@cygnus.co.uk>, dje@watson.ibm.com, veksler@il.ibm.com, egcs@egcs.cygnus.com, kenner@vlsi1.ultra.nyu.edu
- Reply-To: law@cygnus.com
In message <4.2.0.58.19990830094306.047fd8c0@mail.lauterbach.com>you write:
> At 16:14 24.08.99 , Bernd Schmidt wrote:
> >+ /* We can't do anything if the value is set in between the insns we
> are
> >+ processing. */
> >+ if (INSN_CUID (reg_last_set[regno]) <= INSN_CUID (subst_insn))
> >+ return 0;
> >+
>
> Just for my understanding, reg_last_set[regno] will not point past
> subst_insn here? What I'm thinking about is, what happens if we have 3 SETs
>
> like:
>
> SET1
> start_of_subst_tree
> ...
> SET2
> ...
> subst_insn
> ...
> SET3
>
> Will reg_last_set[] point to SET2 or SET3? If it points to SET3, your patch
> doesn't cover all possibilities, or?
I don't think reg_last_set can point to set3 since we haven't processed
anything beyond subst_insn yet.
It can point to SET2, which is the case Bernd's patch is dealing with.
jeff