aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhjl <>2009-02-25 18:49:28 +0000
committerhjl <>2009-02-25 18:49:28 +0000
commitb179221595f0ffd6695c1b19a941788b72e81595 (patch)
treee1d3b164f02a5afeb3be60ed415640669effa2ba
parent0e4889b400d26f7098b49b956044a608aac90c36 (diff)
gcc/
2008-02-25 H.J. Lu <hongjiu.lu@intel.com> PR rtl-optimization/39241 * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls to subreg_offset_representable_p. gcc/testsuite/ 2008-02-25 H.J. Lu <hongjiu.lu@intel.com> PR rtl-optimization/39241 * gcc.dg/torture/pr39241.c: New.
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/jump.c12
-rw-r--r--gcc/testsuite/ChangeLog8
-rw-r--r--gcc/testsuite/gcc.dg/torture/pr39241.c16
4 files changed, 31 insertions, 13 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 2b02471d1bd..94c16afd47d 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2008-02-25 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR rtl-optimization/39241
+ * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
+ to subreg_offset_representable_p.
+
2009-02-25 Paolo Bonzini <bonzini@gnu.org>
* regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
@@ -44,7 +50,7 @@
* dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
2009-02-24 Richard Guenther <rguenther@suse.de>
- Zdenek Dvorak <ook@ucw.cz>
+ Zdenek Dvorak <ook@ucw.cz>
PR tree-optimization/39233
* tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
diff --git a/gcc/jump.c b/gcc/jump.c
index 4f598220dff..2b9a9545223 100644
--- a/gcc/jump.c
+++ b/gcc/jump.c
@@ -1,6 +1,6 @@
/* Optimize jump instructions, for GNU compiler.
Copyright (C) 1987, 1988, 1989, 1991, 1992, 1993, 1994, 1995, 1996, 1997
- 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008
+ 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009
Free Software Foundation, Inc.
This file is part of GCC.
@@ -1563,11 +1563,6 @@ rtx_renumbered_equal_p (const_rtx x, const_rtx y)
GET_MODE (x));
byte_x = 0;
}
- else if (!subreg_offset_representable_p (reg_x,
- GET_MODE (SUBREG_REG (x)),
- byte_x,
- GET_MODE (x)))
- return 0;
}
else
{
@@ -1594,11 +1589,6 @@ rtx_renumbered_equal_p (const_rtx x, const_rtx y)
GET_MODE (y));
byte_y = 0;
}
- else if (!subreg_offset_representable_p (reg_y,
- GET_MODE (SUBREG_REG (y)),
- byte_y,
- GET_MODE (y)))
- return 0;
}
else
{
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 4e54e54b06d..ab3f4d8e0b7 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,4 +1,10 @@
+2008-02-25 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR rtl-optimization/39241
+ * gcc.dg/torture/pr39241.c: New.
+
2009-02-25 Martin Jambor <mjambor@suse.cz>
+
PR tree-optimizations/39259
* g++.dg/torture/pr39259.C: New testcase.
@@ -8,7 +14,7 @@
* g++.dg/template/instantiate10.C: New testcase.
2009-02-24 Richard Guenther <rguenther@suse.de>
- Zdenek Dvorak <ook@ucw.cz>
+ Zdenek Dvorak <ook@ucw.cz>
PR tree-optimization/39233
* gcc.c-torture/execute/pr39233.c: New testcase.
diff --git a/gcc/testsuite/gcc.dg/torture/pr39241.c b/gcc/testsuite/gcc.dg/torture/pr39241.c
new file mode 100644
index 00000000000..860a04d738a
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/pr39241.c
@@ -0,0 +1,16 @@
+/* { dg-do compile } */
+/* { dg-options "-w" } */
+
+static inline int
+foo (float f)
+{
+ return *((int *) &f) - 1;
+}
+
+float
+bar (float x, float y, float *z)
+{
+ float c = y < 0.002f ? 0.002f : y;
+ float d = x < c ? c : x;
+ return z[foo (c)] + z[foo (d * 255.0f)];
+}