[llvm] r313541 - [SLP] clean up for vector store case; NFCI
Sanjay Patel via llvm-commits
llvm-commits at lists.llvm.org
Mon Sep 18 09:20:15 PDT 2017
Author: spatel
Date: Mon Sep 18 09:20:15 2017
New Revision: 313541
URL: http://llvm.org/viewvc/llvm-project?rev=313541&view=rev
Log:
[SLP] clean up for vector store case; NFCI
Modified:
llvm/trunk/lib/Transforms/Vectorize/SLPVectorizer.cpp
Modified: llvm/trunk/lib/Transforms/Vectorize/SLPVectorizer.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Vectorize/SLPVectorizer.cpp?rev=313541&r1=313540&r2=313541&view=diff
==============================================================================
--- llvm/trunk/lib/Transforms/Vectorize/SLPVectorizer.cpp (original)
+++ llvm/trunk/lib/Transforms/Vectorize/SLPVectorizer.cpp Mon Sep 18 09:20:15 2017
@@ -2984,27 +2984,26 @@ Value *BoUpSLP::vectorizeTree(TreeEntry
unsigned Alignment = SI->getAlignment();
unsigned AS = SI->getPointerAddressSpace();
- ValueList ValueOp;
+ ValueList ScalarStoreValues;
for (Value *V : E->Scalars)
- ValueOp.push_back(cast<StoreInst>(V)->getValueOperand());
+ ScalarStoreValues.push_back(cast<StoreInst>(V)->getValueOperand());
setInsertPointAfterBundle(E->Scalars, VL0);
- Value *VecValue = vectorizeTree(ValueOp);
- Value *VecPtr = Builder.CreateBitCast(SI->getPointerOperand(),
- VecTy->getPointerTo(AS));
+ Value *VecValue = vectorizeTree(ScalarStoreValues);
+ Value *ScalarPtr = SI->getPointerOperand();
+ Value *VecPtr = Builder.CreateBitCast(ScalarPtr, VecTy->getPointerTo(AS));
StoreInst *S = Builder.CreateStore(VecValue, VecPtr);
- // The pointer operand uses an in-tree scalar so we add the new BitCast to
- // ExternalUses list to make sure that an extract will be generated in the
+ // The pointer operand uses an in-tree scalar, so add the new BitCast to
+ // ExternalUses to make sure that an extract will be generated in the
// future.
- Value *PO = SI->getPointerOperand();
- if (getTreeEntry(PO))
- ExternalUses.push_back(ExternalUser(PO, cast<User>(VecPtr), 0));
+ if (getTreeEntry(ScalarPtr))
+ ExternalUses.push_back(ExternalUser(ScalarPtr, cast<User>(VecPtr), 0));
- if (!Alignment) {
+ if (!Alignment)
Alignment = DL->getABITypeAlignment(SI->getValueOperand()->getType());
- }
+
S->setAlignment(Alignment);
E->VectorizedValue = S;
++NumVectorInstructions;
More information about the llvm-commits
mailing list