[PATCH] D12107: Replace overflow check in loop vectorization with minimum loop iterations check

Wei Mi via llvm-commits llvm-commits at lists.llvm.org
Mon Aug 24 22:47:07 PDT 2015


wmi updated this revision to Diff 33047.
wmi added a comment.

> The second paragraph is unnecessarily complicated.   It should say something like this:


Fixed.

> You still have MaxVectorSize mentioned here.


Fixed.

> did you see any change in performance?


I saw two testcases with perf change steadily:
MultiSource/Benchmarks/FreeBench/pcompress2  +2%
MultiSource/Benchmarks/Ptrdist/ks                         -15%

The improvement for the first test is caused by the minimum loop iterations check and perf stat shows its dynamic instruction number decreases.
The big regression for the second test is caused by a minor alignment change. The alignment change prevents a cmp and jmp pair inside the kernel loop of the test from being macro-fused, which increases uops-retired events a lot. So the regression is caused by the side-effect of the patch and may not exist after some other changes.


Repository:
  rL LLVM

http://reviews.llvm.org/D12107

Files:
  lib/Transforms/Vectorize/LoopVectorize.cpp
  test/Transforms/LoopVectorize/induction.ll
  test/Transforms/LoopVectorize/miniters.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D12107.33047.patch
Type: text/x-patch
Size: 6981 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150825/fae8947a/attachment.bin>


More information about the llvm-commits mailing list