diff options
author | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-12-13 14:00:58 +0000 |
---|---|---|
committer | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-12-13 14:00:58 +0000 |
commit | 734244a63d905ab9c374cc32393aadadab8230d6 (patch) | |
tree | 8895a822d0051e6883ffaafc6b32ee67fe94cd08 | |
parent | 07428872ef16c5c549e88f64e32087826813792e (diff) | |
download | gcc-734244a63d905ab9c374cc32393aadadab8230d6.tar.gz |
Revert
2011-12-12 Jakub Jelinek <jakub@redhat.com>
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@182284 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/ChangeLog | 10 | ||||
-rw-r--r-- | 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,4 +1,14 @@ 2011-12-13 Jakub Jelinek <jakub@redhat.com> + + Revert + 2011-12-12 Jakub Jelinek <jakub@redhat.com> + + 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 <jakub@redhat.com> Michael Matz <matz@suse.de> PR tree-optimization/51117 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; } } |