gcc/0165-rtl-ifcvt-BugFix-change-def-selection-logic-in-noce_.patch
2023-12-18 10:53:23 +08:00

31 lines
939 B
Diff

From 506eb1ff5ca27cd8d741ddf1894a32645919f773 Mon Sep 17 00:00:00 2001
From: vchernon <chernonog.vyacheslav@huawei.com>
Date: Sun, 17 Dec 2023 01:47:02 +0800
Subject: [PATCH] [rtl-ifcvt][BugFix] change def selection logic in noce_arith
---
gcc/ifcvt.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/gcc/ifcvt.c b/gcc/ifcvt.c
index 04086c560..a55ac16f3 100644
--- a/gcc/ifcvt.c
+++ b/gcc/ifcvt.c
@@ -1985,11 +1985,10 @@ bbs_ok_for_cmove_arith (basic_block bb_a,
if (!sset_a)
goto end_cmove_arith_check_and_fail;
- if (a_insn == last_a)
- continue;
/* Record all registers that BB_A sets. */
FOR_EACH_INSN_DEF (def, a_insn)
- bitmap_set_bit (bba_sets, DF_REF_REGNO (def));
+ if (!(to_rename && DF_REF_REG (def) == to_rename && a_insn == last_a))
+ bitmap_set_bit (bba_sets, DF_REF_REGNO (def));
}
bitmap_and (intersections, df_get_live_in (bb_b), bba_sets);
--
2.33.0