This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[patch] Fix a regression on cris
- From: "Seongbae Park (박성배, 朴成培)" <seongbae dot park at gmail dot com>
- To: "gcc-patches >> GCC Patches" <gcc-patches at gcc dot gnu dot org>
- Cc: "Ian Lance Taylor" <iant at google dot com>
- Date: Mon, 11 Jun 2007 18:11:10 -0700
- Subject: [patch] Fix a regression on cris
Hi,
The enclosed patch fixes the regression caused by dataflow merge.
This is a latent bug revealed by better loglinks in dataflow branch.
Bootstrapped and reg-tested on x86-64.
Hans-Peter Nilsson tested the change on cris and it fixed all regressions.
Approved by Ian Lance Taylor on IRC.
Committed as revision 125634.
ChangeLog:
2007-06-11 Seongbae Park <seongbae.park@gmail.com>
* combine.c (subst): Use reg_overlap_mentioned_p
instead of comparing register numbers directly.
--
#pragma ident "Seongbae Park, compiler, http://seongbae.blogspot.com"
Index: gcc/combine.c
===================================================================
--- gcc/combine.c (revision 125628)
+++ gcc/combine.c (working copy)
@@ -4237,7 +4237,7 @@ subst (rtx x, rtx from, rtx to, int in_d
So force this insn not to match in this (rare) case. */
if (! in_dest && code == REG && REG_P (from)
- && REGNO (x) == REGNO (from))
+ && reg_ovelap_mentioned_p (x, from))
return gen_rtx_CLOBBER (GET_MODE (x), const0_rtx);
/* If this is an object, we are done unless it is a MEM or LO_SUM, both