This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Fix a VTA ICE caused by reload DEBUG_INSN substitution
- From: Jakub Jelinek <jakub at redhat dot com>
- To: gcc-patches at gcc dot gnu dot org, Alexandre Oliva <aoliva at redhat dot com>, rdsandiford at googlemail dot com
- Date: Wed, 23 Sep 2009 22:25:40 +0200
- Subject: Re: [PATCH] Fix a VTA ICE caused by reload DEBUG_INSN substitution
- References: <20090921181406.GB14664@tyan-ft48-01.lab.bos.redhat.com> <87k4zp30b4.fsf@firetop.home>
- Reply-to: Jakub Jelinek <jakub at redhat dot com>
On Wed, Sep 23, 2009 at 08:53:19PM +0100, Richard Sandiford wrote:
> Jakub Jelinek <jakub@redhat.com> writes:
> > This patch fixes very similar problem to what
> > http://gcc.gnu.org/ml/gcc-patches/2009-09/msg00779.html
> > fixed, but this time in reload. If equiv is a constant, and a reg that is
> > being replaced is insice of e.g. ZERO_EXTEND, things will crash later on, as
> > (zero_extend:DI (const_int 0)) is invalid.
> >
> > Fixed thusly, bootstrapped/regtested on x86_64-linux and i686-linux. Ok for
> > trunk?
>
> Sorry to sound like a broken record, but I'm worried about the
> growing proliferation of wrap_constants throughout the source.
> It'd be nice to have some documentation to say where these wrapped
> constants are valid in the insn stream, and what routines should be
> prepared to cope with pre-wrapped constants.
In the IL they are supposed to be IMHO just in
DEBUG_INSNs/NOTE_VAR_LOCATIONs, during the optimization they might appear
also in passes that use cselib (e.g. DSE). The routines that need to deal
with those are in simplify-rtx.c, var-tracking.c and dwarf2out.c.
Alex, do you agree here?
Where would you like this to be documented?
Jakub