aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJeff Law <law@redhat.com>2014-06-12 11:12:18 -0600
committerJeff Law <law@gcc.gnu.org>2014-06-12 11:12:18 -0600
commit551a6341d5d0fed634c71f710bdae6d7b6b1491e (patch)
tree261a84ce00aea124dab58b63db5587fca105e5f2 /gcc
parentf96900140d92a249b997f488c9139156c1caf2be (diff)
downloadgcc-551a6341d5d0fed634c71f710bdae6d7b6b1491e.zip
gcc-551a6341d5d0fed634c71f710bdae6d7b6b1491e.tar.gz
gcc-551a6341d5d0fed634c71f710bdae6d7b6b1491e.tar.bz2
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')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/tree-ssa-threadedge.c7
2 files changed, 11 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a42b94d..d68262f 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2014-06-12 Jeff Law <law@redhat.com>
+
+ 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 <alan.lawrence@arm.com>
* 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 ba9e1fe..a76a7ce 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. */