re PR rtl-optimization/39241 (ICE in subreg_get_info, at rtlanal.c:3104)

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.

From-SVN: r144430
This commit is contained in:
H.J. Lu 2009-02-25 10:49:28 -08:00
parent 62d049cf1e
commit 8592acaf3c
4 changed files with 31 additions and 13 deletions

View File

@ -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

View File

@ -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
{

View File

@ -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.

View File

@ -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)];
}