From: Jakub Jelinek Date: Tue, 13 Dec 2011 14:00:58 +0000 (+0100) Subject: Revert X-Git-Tag: releases/gcc-4.7.0~1577 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f6dbed32690215c4495ab919fbdeb5bca922d025;p=thirdparty%2Fgcc.git Revert 2011-12-12 Jakub Jelinek PR tree-optimization/51481 * gimple-fold.c (gimple_fold_call): Call maybe_clean_or_replace_eh_stmt. Avoid optimization if stmt has EH edges, but gimple_fold_builtin result can't throw. From-SVN: r182284 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 876245b6976f..f6ba6b4d6c48 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,13 @@ +2011-12-13 Jakub Jelinek + + Revert + 2011-12-12 Jakub Jelinek + + PR tree-optimization/51481 + * gimple-fold.c (gimple_fold_call): Call + maybe_clean_or_replace_eh_stmt. Avoid optimization if stmt has EH + edges, but gimple_fold_builtin result can't throw. + 2011-12-13 Jakub Jelinek Michael Matz diff --git a/gcc/gimple-fold.c b/gcc/gimple-fold.c index 4afced899a0a..91dd8fc58924 100644 --- a/gcc/gimple-fold.c +++ b/gcc/gimple-fold.c @@ -1117,21 +1117,10 @@ gimple_fold_call (gimple_stmt_iterator *gsi, bool inplace) if (callee && DECL_BUILT_IN (callee)) { tree result = gimple_fold_builtin (stmt); - if (result - /* Disallow EH edge removal here. We can't call - gimple_purge_dead_eh_edges here. */ - && (lookup_stmt_eh_lp (stmt) == 0 - || tree_could_throw_p (result))) + if (result) { if (!update_call_from_tree (gsi, result)) gimplify_and_update_call_from_tree (gsi, result); - if (!gsi_end_p (*gsi)) - { - gimple new_stmt = gsi_stmt (*gsi); - bool update_eh ATTRIBUTE_UNUSED - = maybe_clean_or_replace_eh_stmt (stmt, new_stmt); - gcc_assert (!update_eh); - } changed = true; } }