summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorDinar Temirbulatov <dtemirbulatov@gmail.com>2017-08-15 00:31:49 +0000
committerDinar Temirbulatov <dtemirbulatov@gmail.com>2017-08-15 00:31:49 +0000
commit9e43d6e7b2d8eed7ce849d0698af8d4bb162ed26 (patch)
tree1aeef9618ec1470fea376b8503b4169728d9f494 /llvm/lib
parent1e29ee9d9551bee4c796fb092e2ac4b340dc89ca (diff)
downloadbcm5719-llvm-9e43d6e7b2d8eed7ce849d0698af8d4bb162ed26.tar.gz
bcm5719-llvm-9e43d6e7b2d8eed7ce849d0698af8d4bb162ed26.zip
[SLPVectorizer] Replace VL[0] to VL0 with assert, add propagateIRFlags extra parameter VL0,
replace E->Scalars[0] to VL0, NFCI. llvm-svn: 310904
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp14
1 files changed, 7 insertions, 7 deletions
diff --git a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
index ad6dd704598..27c8af9de2e 100644
--- a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+++ b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
@@ -1424,8 +1424,8 @@ void BoUpSLP::buildTree_rec(ArrayRef<Value *> VL, unsigned Depth,
if (!BS.tryScheduleBundle(VL, this, VL0)) {
DEBUG(dbgs() << "SLP: We are not able to schedule this bundle!\n");
- assert((!BS.getScheduleData(VL[0]) ||
- !BS.getScheduleData(VL[0])->isPartOfBundle()) &&
+ assert((!BS.getScheduleData(VL0) ||
+ !BS.getScheduleData(VL0)->isPartOfBundle()) &&
"tryScheduleBundle should cancelScheduling on failure");
newTreeEntry(VL, false, UserTreeIdx);
return;
@@ -2797,7 +2797,7 @@ Value *BoUpSLP::vectorizeTree(TreeEntry *E) {
V = Builder.CreateICmp(P0, L, R);
E->VectorizedValue = V;
- propagateIRFlags(E->VectorizedValue, E->Scalars);
+ propagateIRFlags(E->VectorizedValue, E->Scalars, VL0);
++NumVectorInstructions;
return V;
}
@@ -2861,7 +2861,7 @@ Value *BoUpSLP::vectorizeTree(TreeEntry *E) {
BinaryOperator *BinOp = cast<BinaryOperator>(VL0);
Value *V = Builder.CreateBinOp(BinOp->getOpcode(), LHS, RHS);
E->VectorizedValue = V;
- propagateIRFlags(E->VectorizedValue, E->Scalars);
+ propagateIRFlags(E->VectorizedValue, E->Scalars, VL0);
++NumVectorInstructions;
if (Instruction *I = dyn_cast<Instruction>(V))
@@ -2974,7 +2974,7 @@ Value *BoUpSLP::vectorizeTree(TreeEntry *E) {
// ctlz,cttz and powi are special intrinsics whose second argument is
// a scalar. This argument should not be vectorized.
if (hasVectorInstrinsicScalarOpd(IID, 1) && j == 1) {
- CallInst *CEI = cast<CallInst>(E->Scalars[0]);
+ CallInst *CEI = cast<CallInst>(VL0);
ScalarArg = CEI->getArgOperand(j);
OpVecs.push_back(CEI->getArgOperand(j));
continue;
@@ -3004,7 +3004,7 @@ Value *BoUpSLP::vectorizeTree(TreeEntry *E) {
ExternalUses.push_back(ExternalUser(ScalarArg, cast<User>(V), 0));
E->VectorizedValue = V;
- propagateIRFlags(E->VectorizedValue, E->Scalars);
+ propagateIRFlags(E->VectorizedValue, E->Scalars, VL0);
++NumVectorInstructions;
return V;
}
@@ -3673,7 +3673,7 @@ void BoUpSLP::BlockScheduling::resetSchedule() {
"tried to reset schedule on block which has not been scheduled");
for (Instruction *I = ScheduleStart; I != ScheduleEnd; I = I->getNextNode()) {
doForAllOpcodes(I, [this](ScheduleData *SD) {
- assert(isInSchedulingRegion(SD) &&
+ assert(isInSchedulingRegion(SD) &&
"ScheduleData not in scheduling region");
SD->IsScheduled = false;
SD->resetUnscheduledDeps();
OpenPOWER on IntegriCloud