re PR tree-optimization/31797 (infinite loop in tree-ssa-pre or ICE)
2007-05-12 Richard Guenther <rguenther@suse.de> PR tree-optimization/31797 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Do not propagate into a stmt that has volatile ops. * gcc.c-torture/compile/pr31797.c: New testcase. From-SVN: r124637
This commit is contained in:
parent
a747170836
commit
c4160806e1
|
@ -1,3 +1,9 @@
|
||||||
|
2007-05-12 Richard Guenther <rguenther@suse.de>
|
||||||
|
|
||||||
|
PR tree-optimization/31797
|
||||||
|
* tree-ssa-forwprop.c (forward_propagate_addr_expr): Do not
|
||||||
|
propagate into a stmt that has volatile ops.
|
||||||
|
|
||||||
2007-05-12 Richard Sandiford <richard@codesourcery.com>
|
2007-05-12 Richard Sandiford <richard@codesourcery.com>
|
||||||
|
|
||||||
* configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix).
|
* configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix).
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
2007-05-12 Richard Guenther <rguenther@suse.de>
|
||||||
|
|
||||||
|
PR tree-optimization/31797
|
||||||
|
* gcc.c-torture/compile/pr31797.c: New testcase.
|
||||||
|
|
||||||
2007-05-12 Paul Thomas <pault@gcc.gnu.org>
|
2007-05-12 Paul Thomas <pault@gcc.gnu.org>
|
||||||
|
|
||||||
PR fortran/30746
|
PR fortran/30746
|
||||||
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
struct GTeth_desc
|
||||||
|
{
|
||||||
|
unsigned ed_cmdsts;
|
||||||
|
};
|
||||||
|
struct GTeth_softc
|
||||||
|
{
|
||||||
|
struct GTeth_desc txq_desc[32];
|
||||||
|
unsigned int txq_fi;
|
||||||
|
unsigned int txq_nactive;
|
||||||
|
};
|
||||||
|
|
||||||
|
void
|
||||||
|
GTeth_txq_free (struct GTeth_softc *sc)
|
||||||
|
{
|
||||||
|
struct GTeth_desc *txd = &sc->txq_desc[0];
|
||||||
|
txd->ed_cmdsts &= ~(1U << (31));
|
||||||
|
}
|
||||||
|
void
|
||||||
|
GTeth_txq_done (struct GTeth_softc *sc)
|
||||||
|
{
|
||||||
|
while (sc->txq_nactive > 0)
|
||||||
|
{
|
||||||
|
volatile struct GTeth_desc *txd = &sc->txq_desc[sc->txq_fi];
|
||||||
|
if (txd->ed_cmdsts)
|
||||||
|
{
|
||||||
|
if (sc->txq_nactive == 1)
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
GTeth_txq_free (sc);
|
||||||
|
}
|
||||||
|
}
|
|
@ -736,6 +736,13 @@ forward_propagate_addr_expr (tree name, tree rhs)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* If the use_stmt has side-effects, don't propagate into it. */
|
||||||
|
if (stmt_ann (use_stmt)->has_volatile_ops)
|
||||||
|
{
|
||||||
|
all = false;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
push_stmt_changes (&use_stmt);
|
push_stmt_changes (&use_stmt);
|
||||||
|
|
||||||
result = forward_propagate_addr_expr_1 (name, rhs, use_stmt,
|
result = forward_propagate_addr_expr_1 (name, rhs, use_stmt,
|
||||||
|
|
Loading…
Reference in New Issue