[PATCH] D17191: [LoopVectorize] Annotate versioned loop with noalias metadata
Adam Nemet via llvm-commits
llvm-commits at lists.llvm.org
Wed Feb 17 15:53:57 PST 2016
anemet updated this revision to Diff 48253.
anemet added a comment.
Further performance analysis revealed that we were missing (valid)
optimizations cases compared to the original version in http://reviews.llvm.org/D16712.
Uniform loads are "scalarized" i.e. they are not vectorized by the original
instruction but cloned into the vector loop and then the splat value is
constructed (see the noalias-md-licm.ll test). Because of this
propagateMetadata was not invoked on them so we missed annotating these.
This new version splits annotation between cloned and newly created
instructions. As a side effect, the original propagateMetadata function is
unchanged which should help if we wanted to share this the SLP vectorizer.
Michael, still LGTY?
http://reviews.llvm.org/D17191
Files:
include/llvm/Transforms/Utils/LoopVersioning.h
lib/Transforms/Utils/LoopVersioning.cpp
lib/Transforms/Vectorize/LoopVectorize.cpp
test/Transforms/LoopVectorize/noalias-md-licm.ll
test/Transforms/LoopVectorize/noalias-md.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D17191.48253.patch
Type: text/x-patch
Size: 14856 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160217/62a65f85/attachment.bin>
More information about the llvm-commits
mailing list