[LV] Fix miscompiles by adding non-header PHI nodes to AllowedExit
authorBjorn Pettersson <bjorn.a.pettersson@ericsson.com>
Tue, 3 Sep 2019 09:33:55 +0000 (09:33 +0000)
committerBjorn Pettersson <bjorn.a.pettersson@ericsson.com>
Tue, 3 Sep 2019 09:33:55 +0000 (09:33 +0000)
commitdd18ce4501e18e5271f39da6ba3dc594843a0415
treeef7003325959830238947a6b1dd4390beb5530df
parent0760d348eb716e08cd85def3ac39193d3ebecb08
[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
llvm/include/llvm/Transforms/Vectorize/LoopVectorizationLegality.h
llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
llvm/test/Transforms/LoopVectorize/pr43166-fold-tail-by-masking.ll