This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[pretty-ipa] Allow cfgcleanup to forward EH edges freely
- From: Jan Hubicka <hubicka at ucw dot cz>
- To: gcc-patches at gcc dot gnu dot org
- Date: Thu, 9 Apr 2009 01:27:42 +0200
- Subject: [pretty-ipa] Allow cfgcleanup to forward EH edges freely
Hi,
cfgcleanup contains code to prevent label sharing in EH. This is no
longer neccesary (and I doubt it ever was)
Bootstrapped/regtested x86_64-linux, comitted.
Honza
* tree-cfgcleanup.c (tree_forwareder_block_p): Do not look for EH edges.
Index: tree-cfgcleanup.c
===================================================================
--- tree-cfgcleanup.c (revision 145766)
+++ tree-cfgcleanup.c (working copy)
@@ -221,9 +221,6 @@
tree_forwarder_block_p (basic_block bb, bool phi_wanted)
{
gimple_stmt_iterator gsi;
- edge_iterator ei;
- edge e, succ;
- basic_block dest;
/* BB must have a single outgoing edge. */
if (single_succ_p (bb) != 1
@@ -274,23 +271,6 @@
if (dest->loop_father->header == dest)
return false;
}
-
- /* If we have an EH edge leaving this block, make sure that the
- destination of this block has only one predecessor. This ensures
- that we don't get into the situation where we try to remove two
- forwarders that go to the same basic block but are handlers for
- different EH regions. */
- succ = single_succ_edge (bb);
- dest = succ->dest;
- FOR_EACH_EDGE (e, ei, bb->preds)
- {
- if (e->flags & EDGE_EH)
- {
- if (!single_pred_p (dest))
- return false;
- }
- }
-
return true;
}