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

Xinliang David Li via llvm-commits llvm-commits at lists.llvm.org
Tue Aug 25 08:44:05 PDT 2015


On Mon, Aug 24, 2015 at 10:47 PM, Wei Mi <wmi at google.com> wrote:
> 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.

Wei, can you file a bug tracking the regression?

David



>
>
> Repository:
>   rL LLVM
>
> http://reviews.llvm.org/D12107
>
> Files:
>   lib/Transforms/Vectorize/LoopVectorize.cpp
>   test/Transforms/LoopVectorize/induction.ll
>   test/Transforms/LoopVectorize/miniters.ll
>


More information about the llvm-commits mailing list