[all-commits] [llvm/llvm-project] 9d720d: [LoadStoreVectorizer] Make aliasing check more pre...
Nikita Popov via All-commits
all-commits at lists.llvm.org
Wed Sep 1 09:10:26 PDT 2021
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 9d720dcb89e8da4d12aa1832d74614adc6aa2c82
https://github.com/llvm/llvm-project/commit/9d720dcb89e8da4d12aa1832d74614adc6aa2c82
Author: Nikita Popov <nikita.ppv at gmail.com>
Date: 2021-09-01 (Wed, 01 Sep 2021)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoadStoreVectorizer.cpp
M llvm/test/Transforms/LoadStoreVectorizer/int_sideeffect.ll
Log Message:
-----------
[LoadStoreVectorizer] Make aliasing check more precise
The load store vectorizer currently uses isNoAlias() to determine
whether memory-accessing instructions should prevent vectorization.
However, this only works for loads and stores. Additionally, a
couple of intrinsics like assume are special-cased to be ignored.
Instead use getModRefInfo() to generically determine whether the
instruction accesses/modifies the relevant location. This will
automatically handle all inaccessiblememonly intrinsics correctly
(as well as other calls that don't modref for other reasons).
This requires generalizing the code a bit, as it was previously
only considering loads and stored in particular.
Differential Revision: https://reviews.llvm.org/D109020
More information about the All-commits
mailing list