diff options
author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2016-07-01 01:47:46 +0000 |
---|---|---|
committer | Matt Arsenault <Matthew.Arsenault@amd.com> | 2016-07-01 01:47:46 +0000 |
commit | 241f34cde81c46167ac2e10b5bffb6857a3f881b (patch) | |
tree | cecccfbc143b0302dffca62b862ea664e4bb16b9 /llvm/lib/Transforms/Vectorize/LoadStoreVectorizer.cpp | |
parent | 1df1d1dcfcb146d425793953dc46f56915661164 (diff) | |
download | bcm5719-llvm-241f34cde81c46167ac2e10b5bffb6857a3f881b.tar.gz bcm5719-llvm-241f34cde81c46167ac2e10b5bffb6857a3f881b.zip |
LoadStoreVectorizer: Use AA metadata
This was not passing the full instruction with metadata
to the alias query.
llvm-svn: 274318
Diffstat (limited to 'llvm/lib/Transforms/Vectorize/LoadStoreVectorizer.cpp')
-rw-r--r-- | llvm/lib/Transforms/Vectorize/LoadStoreVectorizer.cpp | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/llvm/lib/Transforms/Vectorize/LoadStoreVectorizer.cpp b/llvm/lib/Transforms/Vectorize/LoadStoreVectorizer.cpp index e0438b037c0..3631c104983 100644 --- a/llvm/lib/Transforms/Vectorize/LoadStoreVectorizer.cpp +++ b/llvm/lib/Transforms/Vectorize/LoadStoreVectorizer.cpp @@ -397,15 +397,12 @@ bool Vectorizer::isVectorizable(ArrayRef<Value *> Chain, Instruction *M0 = cast<Instruction>(V); Instruction *M1 = cast<Instruction>(VV); - Value *Ptr0 = getPointerOperand(M0); - Value *Ptr1 = getPointerOperand(M1); - unsigned S0 = - DL.getTypeStoreSize(Ptr0->getType()->getPointerElementType()); - unsigned S1 = - DL.getTypeStoreSize(Ptr1->getType()->getPointerElementType()); - - if (AA.alias(MemoryLocation(Ptr0, S0), MemoryLocation(Ptr1, S1))) { + + if (!AA.isNoAlias(MemoryLocation::get(M0), MemoryLocation::get(M1))) { DEBUG( + Value *Ptr0 = getPointerOperand(M0); + Value *Ptr1 = getPointerOperand(M1); + dbgs() << "LSV: Found alias.\n" " Aliasing instruction and pointer:\n" << *V << " aliases " << *Ptr0 << '\n' |