https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64815
--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Terry Guo from comment #2) > (In reply to Andrew Pinski from comment #1) > > I don't think you need to call volatile_refs_p on the notes part of the > > instruciton. > > The volatile_refs_p works in a recursive way which makes itself to scan the > notes part. I just call volatile_refs_p to the insn. > > Do you mean I should update volatile_refs_p to avoid recursively scanning > the notes part of the insn? Oh you should be using volatile_refs_p on the insn but only the set; maybe even just the lhs or rhs of the set. --- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Terry Guo from comment #2) > (In reply to Andrew Pinski from comment #1) > > I don't think you need to call volatile_refs_p on the notes part of the > > instruciton. > > The volatile_refs_p works in a recursive way which makes itself to scan the > notes part. I just call volatile_refs_p to the insn. > > Do you mean I should update volatile_refs_p to avoid recursively scanning > the notes part of the insn? Oh you should be using volatile_refs_p on the insn but only the set. dse.c: || volatile_refs_p (PATTERN (insn))