https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93611
--- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
If you mean
/* ix86_avoid_lea_for_addr re-recognizes insn and may
change operands[] array behind our back. */
pat = PATTERN (curr_insn);
operands[0] = SET_DEST (pat);
operands[1] = SET_SRC (pat);
then no, this change wouldn't change anything on that. But yes,
ix86_avoid_lea_for_addr probably at least theoretically needs the same
treatment as in the patch.
Another option would be instead of just clearing recog_data.insn copy the whole
recog_data object to a temporary and back; that would mean the above wouldn't
have to be done, but would be quite expensive (recog_data on x86_64 has ATM
1280 bytes).