OSDN Git Service

Recommit [LV] Enable vectorization of loops where the IV has an external use
authorMichael Kuperstein <mkuper@google.com>
Wed, 15 Jun 2016 00:35:26 +0000 (00:35 +0000)
committerMichael Kuperstein <mkuper@google.com>
Wed, 15 Jun 2016 00:35:26 +0000 (00:35 +0000)
commit932889b1a1fe295bc15518fe1bb9b81e2dd6ed38
tree18eafcc7e1f57939a928e605ba33ae8edd625fb2
parent8697a18bc2e33bb86dcfc934318260a8af61e21f
Recommit [LV] Enable vectorization of loops where the IV has an external use

r272715 broke libcxx because it did not correctly handle cases where the
last iteration of one IV is the second-to-last iteration of another.

Original commit message:
Vectorizing loops with "escaping" IVs has been disabled since r190790, due to
PR17179. This re-enables it, with support for external use of both
"post-increment" (last iteration) and "pre-increment" (second-to-last iteration)
IVs.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@272742 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Transforms/Vectorize/LoopVectorize.cpp
test/Transforms/LoopVectorize/iv_outside_user.ll [new file with mode: 0644]
test/Transforms/LoopVectorize/no_outside_user.ll