diff options
author | Jeff Law <law@redhat.com> | 2014-06-12 11:12:18 -0600 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 2014-06-12 11:12:18 -0600 |
commit | 551a6341d5d0fed634c71f710bdae6d7b6b1491e (patch) | |
tree | 261a84ce00aea124dab58b63db5587fca105e5f2 /gcc/tree-ssa-threadedge.c | |
parent | f96900140d92a249b997f488c9139156c1caf2be (diff) |
re PR tree-optimization/61009 (Incorrect jump threading in dom)
PR tree-optimization/61009
* tree-ssa-threadedge.c (thread_through_normal_block): Correct return
value when we stop processing a block due to problematic PHIs.
From-SVN: r211586
Diffstat (limited to 'gcc/tree-ssa-threadedge.c')
-rw-r--r-- | gcc/tree-ssa-threadedge.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/tree-ssa-threadedge.c b/gcc/tree-ssa-threadedge.c index ba9e1fe30f4..a76a7ce6587 100644 --- a/gcc/tree-ssa-threadedge.c +++ b/gcc/tree-ssa-threadedge.c @@ -948,9 +948,12 @@ thread_through_normal_block (edge e, if (*backedge_seen_p) simplify = dummy_simplify; - /* PHIs create temporary equivalences. */ + /* PHIs create temporary equivalences. + Note that if we found a PHI that made the block non-threadable, then + we need to bubble that up to our caller in the same manner we do + when we prematurely stop processing statements below. */ if (!record_temporary_equivalences_from_phis (e, stack)) - return 0; + return -1; /* Now walk each statement recording any context sensitive temporary equivalences we can detect. */ |