diff options
Diffstat (limited to 'llvm/lib')
-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' |