From: Jeff Law Date: Thu, 12 Jun 2014 17:12:18 +0000 (-0600) Subject: re PR tree-optimization/61009 (Incorrect jump threading in dom) X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=551a6341d5d0fed634c71f710bdae6d7b6b1491e;p=gcc.git 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 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a42b94d3a1e..d68262fd341 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2014-06-12 Jeff Law + + 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. + 2014-06-12 Alan Lawrence * config/aarch64/arm_neon.h (vmlaq_n_f64, vmlsq_n_f64, vrsrtsq_f64, 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. */