]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
[PR119021][LRA]: Fix rtl correctness check failure in LRA.
authorVladimir N. Makarov <vmakarov@redhat.com>
Wed, 26 Feb 2025 16:28:08 +0000 (11:28 -0500)
committerVladimir N. Makarov <vmakarov@redhat.com>
Wed, 26 Feb 2025 16:28:52 +0000 (11:28 -0500)
  Patch to fix PR115458 contained a code change in dealing with asm
errors to avoid cycling in reporting the error for asm gotos.  This
code was wrong and resulted in checking RTL correctness failure.  This
patch reverts the code change and solves cycling in asm error
reporting in a different way.

gcc/ChangeLog:

PR middle-end/119021
* lra.cc (lra_asm_insn_error): Use lra_invalidate_insn_data
instead of lra_update_insn_regno_info.
* lra-assigns.cc (lra_split_hard_reg_for): Restore old code.

gcc/lra-assigns.cc
gcc/lra.cc

index 480925ad8943b7aca9882a9c24a8bb41fb512e8b..46f9c9d20e25d1008ff5343db018d11b0a3d3b8b 100644 (file)
@@ -1856,11 +1856,6 @@ lra_split_hard_reg_for (bool fail_p)
          {
            asm_p = true;
            lra_asm_insn_error (insn);
-           if (JUMP_P (insn))
-             ira_nullify_asm_goto (insn);
-           else
-             PATTERN (insn) = gen_rtx_USE (VOIDmode, const0_rtx);
-           lra_invalidate_insn_data (insn);
          }
        else if (!asm_p)
          {
index b753729d43d9ae48583b7227783806030e4b3587..8f30284e9daaad106acbd9987779ee71b17fbf96 100644 (file)
@@ -549,7 +549,7 @@ lra_asm_insn_error (rtx_insn *insn)
   if (JUMP_P (insn))
     {
       ira_nullify_asm_goto (insn);
-      lra_update_insn_regno_info (insn);
+      lra_invalidate_insn_data (insn);
     }
   else
     {