This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [RFA:] fix PR55030, wrong code from __builtin_setjmp_receiver


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.

brgds, H-P


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]