[PATCH][PR tree-optimization/67892] Use FSM threader to handle backedges
authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 29 Oct 2015 16:20:06 +0000 (16:20 +0000)
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 29 Oct 2015 16:20:06 +0000 (16:20 +0000)
commit580efa23d6f3278e512d3586993fda2e81f6b146
treecbe77223cf0c65aa5396de518c330072d3fd1143
parentf92c64998f6a5f5321b84d400b8014c51530bbf5
[PATCH][PR tree-optimization/67892] Use FSM threader to handle backedges

PR tree-optimization/67892
* tree-ssa-threadedge.c (simplify_controL_stmt_condition): Fix typo
in comment.
(thread_through_normal_block): If we have seen a backedge, then
do nothing.  No longer call find_jump_threads_backwards here.
(thread_across_edge): Use find_jump_threads_backwards to find
jump threads if the old style threader was not successful.
* tree-ssa-threadbackward.c (get_gimple_control_stmt): Use
gsi_last_nondebug_bb.  Return NULL if the block does not end
with a control statement.
(find_jump_threads_backwards): Setup code moved here from
tree-ssa-threadedge.c::thread_through_normal_block.  Accept
single edge argument instead of name & block.
* tree-ssa-threadbackward.h (find_jump_threads_backwards): Update
prototype.

        PR tree-optimization/67892
* gcc.dg/tree-ssa/pr21417: Update expected output.
* gcc.dg/tree-ssa/ssa-dom-thread-2b.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@229538 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/tree-ssa/pr21417.c
gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-2b.c
gcc/tree-ssa-threadbackward.c
gcc/tree-ssa-threadbackward.h
gcc/tree-ssa-threadedge.c