summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>2011-12-13 14:00:58 +0000
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>2011-12-13 14:00:58 +0000
commit734244a63d905ab9c374cc32393aadadab8230d6 (patch)
tree8895a822d0051e6883ffaafc6b32ee67fe94cd08
parent07428872ef16c5c549e88f64e32087826813792e (diff)
downloadgcc-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/ChangeLog10
-rw-r--r--gcc/gimple-fold.c13
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;
}
}