]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Fixup dropping REG_EQUAL note in ext-dce
authorSam James <sam@gentoo.org>
Mon, 23 Jun 2025 22:28:01 +0000 (23:28 +0100)
committerJeff Law <jlaw@ventanamicro.com>
Thu, 3 Jul 2025 01:55:05 +0000 (19:55 -0600)
Followup to r16-1613-g34e1e5e33ec3eb. remove_reg_equal_equiv_notes's
2nd argument is 'no_rescan' which we accidentally had on, tripping
an assert in combine or ira because we hadn't left things in a consistent
state.

Fix the thinko by enabling rescanning.

gcc/ChangeLog:
PR rtl-optimization/120795

* ext-dce.cc (ext_dce_try_optimize_insn): Enable rescan in
remove_reg_equal_equiv_notes call.

Co-authored-by: Jeff Law <jlaw@ventanamicro.com>
(cherry picked from commit cdd678544fefc313cb1c9da0327158d3ed355f62)

gcc/ext-dce.cc

index b1d5ee4b36c44564067bd545c046bb4a6f8a04bd..df17b018bf1f79d603f8cf174983510083f7ee5a 100644 (file)
@@ -446,7 +446,7 @@ ext_dce_try_optimize_insn (rtx_insn *insn, rtx set)
       /* INSN may have a REG_EQUAL note indicating that the value was
         sign or zero extended.  That note is no longer valid since we've
         just removed the extension.  Just wipe the notes.  */
-      remove_reg_equal_equiv_notes (insn, true);
+      remove_reg_equal_equiv_notes (insn, false);
     }
   else
     {