[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