From 241f34cde81c46167ac2e10b5bffb6857a3f881b Mon Sep 17 00:00:00 2001 From: Matt Arsenault Date: Fri, 1 Jul 2016 01:47:46 +0000 Subject: LoadStoreVectorizer: Use AA metadata This was not passing the full instruction with metadata to the alias query. llvm-svn: 274318 --- llvm/lib/Transforms/Vectorize/LoadStoreVectorizer.cpp | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) (limited to 'llvm/lib/Transforms/Vectorize/LoadStoreVectorizer.cpp') 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 Chain, Instruction *M0 = cast(V); Instruction *M1 = cast(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' -- cgit v1.2.3