OSDN Git Service

[LV] Consider users that are memory accesses in uniforms expansion step
authorMatthew Simpson <mssimpso@codeaurora.org>
Tue, 7 Mar 2017 18:47:30 +0000 (18:47 +0000)
committerMatthew Simpson <mssimpso@codeaurora.org>
Tue, 7 Mar 2017 18:47:30 +0000 (18:47 +0000)
commit30bc56bd3cc28618d687ea44a85ef8148780adb7
treea4492147db7575114aba4bae5886ed7ccc0f6d22
parent227bb1aebd44b9fdafe88a6b15bd2325696c9104
[LV] Consider users that are memory accesses in uniforms expansion step

When expanding the set of uniform instructions beyond the seed instructions
(e.g., consecutive pointers), we mark a new instruction uniform if all its
loop-varying users are uniform. We should also allow users that are consecutive
or interleaved memory accesses. This fixes cases where we have an instruction
that is used as the pointer operand of a consecutive access but also used by a
non-memory instruction that later becomes uniform as part of the expansion.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297179 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Transforms/Vectorize/LoopVectorize.cpp
test/Transforms/LoopVectorize/consecutive-ptr-uniforms.ll