31 lines
939 B
Diff
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
|
|
|