On Tue, Nov 27, 2012 at 01:03:47PM +0100, Jakub Jelinek wrote:
> So, at least from var-tracking POV which doesn't attempt to perform any
> optimizations across any insn, just tries to track where values live, IMHO a
> volatile asm acts exactly the same as non-volatile, that is why I'm testing
> following patch right now.
>
> 2012-11-26 Jakub Jelinek <[email protected]>
>
> 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.
Bootstrapped/regtested fine on x86_64-linux and i686-linux (and fixes the
pr36728-[34].c failures that appear without the patch, which are of the
wrong debug kind).
Jakub