This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[patch committed SH] Fix target/67002
- From: Kaz Kojima <kkojima at rr dot iij4u dot or dot jp>
- To: gcc-patches at gcc dot gnu dot org
- Date: Fri, 07 Aug 2015 17:13:19 +0900 (JST)
- Subject: [patch committed SH] Fix target/67002
- Authentication-results: sourceware.org; auth=none
I've committed the attached tiny patch to fix PR target/67002
which is a 5/6 regression. sh_recog_treg_set_expr are called
unexpectedly during expand phase only when -g is specified and
it might cause -fcompare-debug failure. The patch is tested
on sh4-unknown-linux-gnu. I'll backport it to 5.
Regards,
kaz
--
2015-08-07 Kaz Kojima <kkojima@gcc.gnu.org>
PR target/67002
* config/sh/sh.c (sh_recog_treg_set_expr): Return false when
currently_expanding_to_rtl is set.
diff --git a/config/sh/sh.c b/config/sh/sh.c
index f429193..450d634 100644
--- a/config/sh/sh.c
+++ b/config/sh/sh.c
@@ -14165,6 +14165,12 @@ sh_recog_treg_set_expr (rtx op, machine_mode mode)
if (!can_create_pseudo_p ())
return false;
+ /* expand_debug_locations may call this to compute rtx costs at
+ very early stage. In that case, don't make new insns here to
+ avoid codegen differences with -g. */
+ if (currently_expanding_to_rtl)
+ return false;
+
/* We are going to invoke recog in a re-entrant way and thus
have to capture its current state and restore it afterwards. */
recog_data_d prev_recog_data = recog_data;