This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Fix RTL sharing problem in CSE
- From: Roger Sayle <roger at www dot eyesopen dot com>
- To: Jan Hubicka <jh at suse dot cz>
- Cc: law at redhat dot com, <gcc-patches at gcc dot gnu dot org>
- Date: Fri, 17 Jan 2003 11:39:05 -0700 (MST)
- Subject: Re: [PATCH] Fix RTL sharing problem in CSE
Hi Jan and Jeff,
> > >The ICE occurs because combine tries to simplify it and it can't because
> > >of the constant substitution in the regclass.i.13.bypass pass. It would
> > >seem to me that the subreg should be simplified when the substitution for
> > >DI 262 is made. After that, the mode information is lost.
> > Agreed.
> When replacement is made by validate_replace_reg, this is done
> automatically. I think bypass pass should use it consistently...
No new RTL modification code was introduced splitting GCSE and
moving the jump bypassing pass after the loop optimizations.
Even prior to that, jump bypassing itself only affects branch
instructions and doesn't modify RTL expressions at all.
I believe that the problems on hppa64 and powerpc will turn out to
be more latent bugs in the existing GCSE or CSE constant propagation
code, just like the one in cse_insn that it has already uncovered
on H8300.
I know the rules, and am more than happy to take responsibility
for latent bugs that are exposed by my changes. If I'm right,
these fixes should also be applied to the 3.3 branch, as they'll
predate my recent changes.
Roger
--