summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Vectorize
diff options
context:
space:
mode:
authorBjorn Pettersson <bjorn.a.pettersson@ericsson.com>2019-09-03 09:33:55 +0000
committerBjorn Pettersson <bjorn.a.pettersson@ericsson.com>2019-09-03 09:33:55 +0000
commitdd18ce4501e18e5271f39da6ba3dc594843a0415 (patch)
treeef7003325959830238947a6b1dd4390beb5530df /llvm/lib/Transforms/Vectorize
parent0760d348eb716e08cd85def3ac39193d3ebecb08 (diff)
downloadbcm5719-llvm-dd18ce4501e18e5271f39da6ba3dc594843a0415.tar.gz
bcm5719-llvm-dd18ce4501e18e5271f39da6ba3dc594843a0415.zip
[LV] Fix miscompiles by adding non-header PHI nodes to AllowedExit
Summary: Fold-tail currently supports reduction last-vector-value live-out's, but has yet to support last-scalar-value live-outs, including non-header phi's. As it relies on AllowedExit in order to detect them and bail out we need to add the non-header PHI nodes to AllowedExit, otherwise we end up with miscompiles. Solves https://bugs.llvm.org/show_bug.cgi?id=43166 Reviewers: fhahn, Ayal Reviewed By: fhahn, Ayal Subscribers: anna, hiraditya, rkruppe, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D67074 llvm-svn: 370721
Diffstat (limited to 'llvm/lib/Transforms/Vectorize')
-rw-r--r--llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp1
1 files changed, 1 insertions, 0 deletions
diff --git a/llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp b/llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
index 21e75d55a8c..e5f9407e155 100644
--- a/llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
+++ b/llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
@@ -595,6 +595,7 @@ bool LoopVectorizationLegality::canVectorizeInstrs() {
// Unsafe cyclic dependencies with header phis are identified during
// legalization for reduction, induction and first order
// recurrences.
+ AllowedExit.insert(&I);
continue;
}
OpenPOWER on IntegriCloud