aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@gcc.gnu.org>2007-04-24 21:02:21 +0000
committerIan Lance Taylor <ian@gcc.gnu.org>2007-04-24 21:02:21 +0000
commit1965dd3a1f621d899e250ddc84d0d83ba1ada69a (patch)
treeb759a6f1e6fa2ef7f2526805e022dc7441d222d9 /gcc
parent438d798f1231f01c92211c76df1cc3b4cf6904a4 (diff)
downloadgcc-1965dd3a1f621d899e250ddc84d0d83ba1ada69a.zip
gcc-1965dd3a1f621d899e250ddc84d0d83ba1ada69a.tar.gz
gcc-1965dd3a1f621d899e250ddc84d0d83ba1ada69a.tar.bz2
* flow.c (elim_reg_cond): Handle a comparison of a subreg.
From-SVN: r124122
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog9
-rw-r--r--gcc/flow.c8
2 files changed, 14 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index e744b9f..0826135 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,10 +1,15 @@
+2007-04-24 Ian Lance Taylor <iant@google.com>
+
+ * flow.c (elim_reg_cond): Handle a comparison of a subreg.
+
2007-04-24 Simon Martin <simartin@users.sourceforge.net>
PR diagnostic/25923
* tree-pass.h (TDF_DIAGNOSTIC): New dump control to specify that a
diagnostic message is being built.
- * tree-pretty-print.c (dump_generic_node): Only write the formatted text
- into BUFFER's stream if we are not building a diagnostic message.
+ * tree-pretty-print.c (dump_generic_node): Only write the
+ formatted text into BUFFER's stream if we are not building a
+ diagnostic message.
* toplev.c (default_tree_printer): Pass TDF_DIAGNOSTIC to
dump_generic_node.
* Makefile.in (toplev.o): Depend on tree-pass.h.
diff --git a/gcc/flow.c b/gcc/flow.c
index 78c2328..5b0249b 100644
--- a/gcc/flow.c
+++ b/gcc/flow.c
@@ -3437,7 +3437,13 @@ elim_reg_cond (rtx x, unsigned int regno)
if (COMPARISON_P (x))
{
- if (REGNO (XEXP (x, 0)) == regno)
+ rtx reg;
+
+ reg = XEXP (x, 0);
+ if (GET_CODE (reg) == SUBREG)
+ reg = SUBREG_REG (reg);
+ gcc_assert (REG_P (reg));
+ if (REGNO (reg) == regno)
return const0_rtx;
return x;
}