aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2011-12-13 15:00:58 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2011-12-13 15:00:58 +0100
commitf6dbed32690215c4495ab919fbdeb5bca922d025 (patch)
tree8895a822d0051e6883ffaafc6b32ee67fe94cd08 /gcc
parentea85edfe73100acc3769d924074b42a9cf35a6d1 (diff)
downloadgcc-f6dbed32690215c4495ab919fbdeb5bca922d025.zip
gcc-f6dbed32690215c4495ab919fbdeb5bca922d025.tar.gz
gcc-f6dbed32690215c4495ab919fbdeb5bca922d025.tar.bz2
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. From-SVN: r182284
Diffstat (limited to 'gcc')
-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 876245b..f6ba6b4 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 4afced8..91dd8fc 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;
}
}