tree-ssa-threadupdate.c (redirect_edges): Call create_edge_and_update_destination_phi...
commit520af9ec9a673351b046e06e91d8f66fa70341d2
authorJeff Law <law@redhat.com>
Mon, 28 Mar 2011 18:33:42 +0000 (28 12:33 -0600)
committerJeff Law <law@gcc.gnu.org>
Mon, 28 Mar 2011 18:33:42 +0000 (28 12:33 -0600)
tree6f6e281ff34d399c1d3ec13acccdbbca92243795
parent80ec23acbd7c94b82afc2e53506d5bfa2a049fe8
tree-ssa-threadupdate.c (redirect_edges): Call create_edge_and_update_destination_phis as needed.

* tree-ssa-threadupdate.c (redirect_edges): Call
create_edge_and_update_destination_phis as needed.
(create_edge_and_update_destination_phis): Accept new BB argument.
All callers updated.
(thread_block): Do not update the profile when threading around
intermediate blocks.
(thread_single_edge): Likewise.
(determine_bb_domination_status): If BB is not a successor of the
loop header, return NONDOMINATING.
(register_jump_thread): Note when we register a jump thread around
an intermediate block.
* tree-ssa-threadedge.c (thread_around_empty_block): New function.
(thread_across_edge): Use it.

* gcc.dg/tree-ssa/ssa-dom-thread-3.c: New test.

From-SVN: r171622
gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-3.c [new file with mode: 0644]
gcc/tree-ssa-threadedge.c
gcc/tree-ssa-threadupdate.c