https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87330
--- Comment #6 from sameerad at gcc dot gnu.org --- Created attachment 44814 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=44814&action=edit the regrename pass does not rename the registers which are in notes, because of which the REG_DEAD note had previous regname, which caused conflicting information generated for tag collision pass. It is better to do it in regrename_do_replace instead while regrename_analyze, because the note information does not really contribute into the regrename analysis, hence need not be added in the def-use chains that are computed. regrename_do_replace is where the decision to finally rename the register is made - where the note can be altered with new regname. Other notes need not be changed, as they don't hold renamed register information.