re PR tree-optimization/44977 (ice in propagate_rhs_into_lhs, at tree-ssa-dom.c:2728)
2010-07-20 Richard Guenther <rguenther@suse.de> PR tree-optimization/44977 * tree-ssa-dom.c (propagate_rhs_into_lhs): Do not create invalid SSA form. * gcc.dg/torture/pr44977.c: New testcase. From-SVN: r162334
This commit is contained in:
parent
cd2be65a3b
commit
720151cabd
@ -1,3 +1,9 @@
|
||||
2010-07-20 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/44977
|
||||
* tree-ssa-dom.c (propagate_rhs_into_lhs): Do not create invalid
|
||||
SSA form.
|
||||
|
||||
2010-07-20 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
* lto-symtab.c (lto_symtab_merge): Use gimple_types_compatible_p.
|
||||
|
@ -1,3 +1,8 @@
|
||||
2010-07-20 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/44977
|
||||
* gcc.dg/torture/pr44977.c: New testcase.
|
||||
|
||||
2010-07-20 Bingfeng Mei <bmei@broadcom.com>
|
||||
|
||||
* gcc.dg/lto/20090313_0.c: Use dg-require-effective-target
|
||||
|
41
gcc/testsuite/gcc.dg/torture/pr44977.c
Normal file
41
gcc/testsuite/gcc.dg/torture/pr44977.c
Normal file
@ -0,0 +1,41 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-w" } */
|
||||
|
||||
static unsigned short
|
||||
foo (unsigned short ui1, unsigned short ui2)
|
||||
{
|
||||
return ui1 - ui2;
|
||||
}
|
||||
|
||||
static unsigned short
|
||||
bar (unsigned ui1, unsigned short ui2)
|
||||
{
|
||||
return ui1 + ui2;
|
||||
}
|
||||
|
||||
struct S1
|
||||
{
|
||||
const short f3;
|
||||
};
|
||||
int g_31;
|
||||
short g_67;
|
||||
struct S1 g_68[2][5][9][1][1] = {
|
||||
};
|
||||
|
||||
int func_90 (int);
|
||||
|
||||
int int329 (int * const *const int32p_81, short ** p_82)
|
||||
{
|
||||
short l_169[8];
|
||||
for (g_31 = 0; g_31 <= 0; g_31 = foo (g_31, 1))
|
||||
{
|
||||
short l_85;
|
||||
lbl_89:g_67 ^= l_85;
|
||||
for (l_85 = 0; l_85 >= 0; l_85 = bar)
|
||||
if (g_31)
|
||||
goto lbl_89;
|
||||
func_90 (1), g_68[0][2][2][0][0].f3, 0;
|
||||
}
|
||||
return l_169[6];
|
||||
}
|
||||
|
@ -2559,6 +2559,20 @@ propagate_rhs_into_lhs (gimple stmt, tree lhs, tree rhs, bitmap interesting_name
|
||||
continue;
|
||||
}
|
||||
|
||||
/* It's not ok to propagate into the definition stmt of RHS.
|
||||
<bb 9>:
|
||||
# prephitmp.12_36 = PHI <g_67.1_6(9)>
|
||||
g_67.1_6 = prephitmp.12_36;
|
||||
goto <bb 9>;
|
||||
While this is strictly all dead code we do not want to
|
||||
deal with this here. */
|
||||
if (TREE_CODE (rhs) == SSA_NAME
|
||||
&& SSA_NAME_DEF_STMT (rhs) == use_stmt)
|
||||
{
|
||||
all = false;
|
||||
continue;
|
||||
}
|
||||
|
||||
/* Dump details. */
|
||||
if (dump_file && (dump_flags & TDF_DETAILS))
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user