* tree-cfg.c (gimple_redirect_edge_and_branch): Do
gimple_try_redirect_by_replacing_jump test after no-op and EH tests.
From-SVN: r151607
2009-09-10 Richard Henderson <rth@redhat.com>
+ * tree-cfg.c (gimple_redirect_edge_and_branch): Do
+ gimple_try_redirect_by_replacing_jump test after no-op and EH tests.
+
* tree-cfg.c (split_edge_bb_loc): Don't disallow placement at
dest_prev if the edge is complex.
if (e->flags & EDGE_ABNORMAL)
return NULL;
- if (e->src != ENTRY_BLOCK_PTR
- && (ret = gimple_try_redirect_by_replacing_jump (e, dest)))
- return ret;
-
if (e->dest == dest)
return NULL;
if (e->flags & EDGE_EH)
return redirect_eh_edge (e, dest);
+ if (e->src != ENTRY_BLOCK_PTR)
+ {
+ ret = gimple_try_redirect_by_replacing_jump (e, dest);
+ if (ret)
+ return ret;
+ }
+
gsi = gsi_last_bb (bb);
stmt = gsi_end_p (gsi) ? NULL : gsi_stmt (gsi);