OSDN Git Service

[LV] Enable the LoopVectorizer to create pointer inductions
authorAnna Welker <anna.welker@arm.com>
Fri, 17 Jul 2020 10:34:28 +0000 (11:34 +0100)
committerAnna Welker <anna.welker@arm.com>
Fri, 17 Jul 2020 12:35:07 +0000 (13:35 +0100)
commit23c9534515eeaec537044f4babcd0d84f9cc3716
treee7ec87aabd698c38f94bf74d1a623079abf33705
parent6227f04a09f664a45e7fa75304c636f59a115fa9
[LV] Enable the LoopVectorizer to create pointer inductions

This patch enables the LoopVectorizer to build a phi of pointer
type and provide the vector loads and stores with vector type
getelementptrs built from the pointer induction variable, which
produces much less instructions than the previous approach of
creating scalar getelementpointers and glue them together to a
vector.

Differential Revision: https://reviews.llvm.org/D81267
llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
llvm/test/Transforms/LoopVectorize/ARM/pointer_iv.ll [new file with mode: 0644]
llvm/test/Transforms/LoopVectorize/pointer-induction.ll [new file with mode: 0644]