This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [RFA:] fix PR55030, wrong code from __builtin_setjmp_receiver
- From: Uros Bizjak <ubizjak at gmail dot com>
- To: gcc-patches at gcc dot gnu dot org
- Cc: Jakub Jelinek <jakub at redhat dot com>, Hans-Peter Nilsson <hp at bitrange dot com>, Eric Botcazou <ebotcazou at adacore dot com>, Alexandre Oliva <aoliva at redhat dot com>
- Date: Tue, 27 Nov 2012 20:29:57 +0100
- Subject: Re: [RFA:] fix PR55030, wrong code from __builtin_setjmp_receiver
Hello!
> On Tue, 27 Nov 2012, Jakub Jelinek wrote:
> > On Tue, Nov 27, 2012 at 06:44:23AM -0500, Hans-Peter Nilsson wrote:
>
> JFTR: No I didn't, Eric wrote the below. But, it made sense to me. :)
>
> > > > We apparently have a small conflict between the meaning of volatile asms with
> > > > operands at the source level and volatile_insn_p. However, I think that the
> > > > latter interpretation is the correct one: if your asm statements have effects
> > > > that can be described, then you should use output constraints instead of
> > > > volatile; otherwise, you should use volatile and the output constraints have
> > > > essentially no meaning.
> >
> > I strongly disagree with this.
> > [...]
>
> As long as volatile asms and UNSPEC_VOLATILE insns (aka.
> barriers) are handled the same way and consistently throughout
> gcc, I'm fine. It seems your patch does that, so thanks!
>
> > But the question is also what effects your patch can have e.g. on RTL DSE.
>
> Looks like the patch caused a bootstrap for s390x.
>
> Eagerly awaiting a PR for that, but whoever is interested
> on that, please try Jakub's patch first...
>
> > 2012-11-26 Jakub Jelinek <jakub@redhat.com>
> >
> > PR debug/36728
> > PR debug/55467
> > * cselib.c (cselib_process_insn): If cselib_preserve_constants,
> > don't reset table and exit early on volatile insns and setjmp.
> > Reset table afterwards on setjmp.
> >
> > * gcc.dg/guality/pr36728-1.c: Include "../nop.h", make sure the asm
> > are non-empty and add dependency between the first and second asm.
> > * gcc.dg/guality/pr36728-2.c: Likewise.
> > * gcc.dg/guality/pr36728-3.c: New test.
> > * gcc.dg/guality/pr36728-4.c: New test.
I have hit the same ICE on alpha-linux-gnu bootstrap. Jakub's patch
fixes the ICE, and allows bootstrap to pass well into stage2 now.
However, it takes ~10 hours for full bootstrap+regtest to finish, will
report back tomorrow morning (CET).
Uros.