http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55467
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #28789|0 |1 is obsolete| | Status|REOPENED |ASSIGNED AssignedTo|unassigned at gcc dot |jakub at gcc dot gnu.org |gnu.org | --- Comment #13 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-11-27 10:42:46 UTC --- Created attachment 28791 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=28791 gcc48-pr55467.patch Actually, I think for var-tracking it is completely nonsensical to reset the table and not call the hook on volatile insns. Var-tracking isn't performing any CSE or similar across the volatile insns, all it cares about are what values are preserved and what values are clobbered across them. And that is independent on whether they are volatile or not, even volatile asm can't clobber registers it doesn't describe to be clobbered, and memory it doesn't describe to be clobbered. So, instead of adding lots of code to somehow call the hook anyway for these instructions (even for setjmp we e.g. want to generate NOTE_INSN_CALL_ARG_LOCATION note), I think it is better just to reset everything only when cselib isn't used in var-tracking.