re PR tree-optimization/51775 (FAIL: gnat.dg/pack9.adb scan-tree-dump-not optimized "gnat_rcheck")
2012-01-09 Richard Guenther <rguenther@suse.de> PR tree-optimization/51775 * tree-ssa-sccvn.c (visit_use): Value-number throwing stmts. * tree-ssa-pre.c (eliminate): Properly fixup EH info. From-SVN: r183012
This commit is contained in:
parent
12aa62e921
commit
0646822981
|
@ -1,3 +1,9 @@
|
||||||
|
2012-01-09 Richard Guenther <rguenther@suse.de>
|
||||||
|
|
||||||
|
PR tree-optimization/51775
|
||||||
|
* tree-ssa-sccvn.c (visit_use): Value-number throwing stmts.
|
||||||
|
* tree-ssa-pre.c (eliminate): Properly fixup EH info.
|
||||||
|
|
||||||
2012-01-09 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
|
2012-01-09 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
|
||||||
|
|
||||||
* config/arm/arm-cores.def (cortex-a15): Use cortex_a15_tune for
|
* config/arm/arm-cores.def (cortex-a15): Use cortex_a15_tune for
|
||||||
|
|
|
@ -4194,6 +4194,7 @@ eliminate (void)
|
||||||
tree sprime = NULL;
|
tree sprime = NULL;
|
||||||
pre_expr lhsexpr = get_or_alloc_expr_for_name (lhs);
|
pre_expr lhsexpr = get_or_alloc_expr_for_name (lhs);
|
||||||
pre_expr sprimeexpr;
|
pre_expr sprimeexpr;
|
||||||
|
gimple orig_stmt = stmt;
|
||||||
|
|
||||||
sprimeexpr = bitmap_find_leader (AVAIL_OUT (b),
|
sprimeexpr = bitmap_find_leader (AVAIL_OUT (b),
|
||||||
get_expr_value_id (lhsexpr),
|
get_expr_value_id (lhsexpr),
|
||||||
|
@ -4231,6 +4232,16 @@ eliminate (void)
|
||||||
propagate_tree_value_into_stmt (&gsi, sprime);
|
propagate_tree_value_into_stmt (&gsi, sprime);
|
||||||
stmt = gsi_stmt (gsi);
|
stmt = gsi_stmt (gsi);
|
||||||
update_stmt (stmt);
|
update_stmt (stmt);
|
||||||
|
|
||||||
|
/* If we removed EH side-effects from the statement, clean
|
||||||
|
its EH information. */
|
||||||
|
if (maybe_clean_or_replace_eh_stmt (orig_stmt, stmt))
|
||||||
|
{
|
||||||
|
bitmap_set_bit (need_eh_cleanup,
|
||||||
|
gimple_bb (stmt)->index);
|
||||||
|
if (dump_file && (dump_flags & TDF_DETAILS))
|
||||||
|
fprintf (dump_file, " Removed EH side-effects.\n");
|
||||||
|
}
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4286,7 +4297,7 @@ eliminate (void)
|
||||||
|
|
||||||
/* If we removed EH side-effects from the statement, clean
|
/* If we removed EH side-effects from the statement, clean
|
||||||
its EH information. */
|
its EH information. */
|
||||||
if (maybe_clean_or_replace_eh_stmt (stmt, stmt))
|
if (maybe_clean_or_replace_eh_stmt (orig_stmt, stmt))
|
||||||
{
|
{
|
||||||
bitmap_set_bit (need_eh_cleanup,
|
bitmap_set_bit (need_eh_cleanup,
|
||||||
gimple_bb (stmt)->index);
|
gimple_bb (stmt)->index);
|
||||||
|
|
|
@ -3178,8 +3178,7 @@ visit_use (tree use)
|
||||||
if (gimple_code (stmt) == GIMPLE_PHI)
|
if (gimple_code (stmt) == GIMPLE_PHI)
|
||||||
changed = visit_phi (stmt);
|
changed = visit_phi (stmt);
|
||||||
else if (!gimple_has_lhs (stmt)
|
else if (!gimple_has_lhs (stmt)
|
||||||
|| gimple_has_volatile_ops (stmt)
|
|| gimple_has_volatile_ops (stmt))
|
||||||
|| stmt_could_throw_p (stmt))
|
|
||||||
changed = defs_to_varying (stmt);
|
changed = defs_to_varying (stmt);
|
||||||
else if (is_gimple_assign (stmt))
|
else if (is_gimple_assign (stmt))
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue