OSDN Git Service

[LV] Vectorize without versioning-for-unit-stride under -Os/-Oz
authorAyal Zaks <ayal.zaks@intel.com>
Sun, 7 Jun 2020 08:36:57 +0000 (11:36 +0300)
committerAyal Zaks <ayal.zaks@intel.com>
Tue, 7 Jul 2020 12:04:21 +0000 (15:04 +0300)
commit7bf299c8d8d59304fb821f8811618cdeb1d1f1fd
tree2873472f5c0a581db47fab61f91331bca4953b97
parentde0175d04bc3679c7bd8dc64520e790bf38f30b0
[LV] Vectorize without versioning-for-unit-stride under -Os/-Oz

If a loop is in a function marked OptSize, Loop Access Analysis should refrain
from generating runtime checks for unit strides that will version the loop.

If a loop is in a function marked OptSize and its vectorization is enabled, it
should be vectorized w/o any versioning.

Fixes PR46228.

Differential Revision: https://reviews.llvm.org/D81345
llvm/lib/Analysis/LoopAccessAnalysis.cpp
llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
llvm/test/Transforms/LoopVectorize/X86/optsize.ll
llvm/test/Transforms/LoopVectorize/X86/tail_loop_folding.ll
llvm/test/Transforms/LoopVectorize/optsize.ll
llvm/test/Transforms/LoopVectorize/pr39417-optsize-scevchecks.ll
llvm/test/Transforms/LoopVectorize/runtime-check.ll