From f6dbed32690215c4495ab919fbdeb5bca922d025 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Tue, 13 Dec 2011 15:00:58 +0100 Subject: [PATCH] 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 --- gcc/ChangeLog | 10 ++++++++++ gcc/gimple-fold.c | 13 +------------ 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 876245b6976..f6ba6b4d6c4 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 4afced899a0..91dd8fc5892 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; } } -- 2.30.2