diff options
| -rw-r--r-- | llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp | 14 | 
1 files changed, 7 insertions, 7 deletions
diff --git a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp index a965698e8dd..c0567a9f140 100644 --- a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp +++ b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp @@ -1741,6 +1741,13 @@ int BoUpSLP::getSpillCost() {        continue;      } +    // Update LiveValues. +    LiveValues.erase(PrevInst); +    for (auto &J : PrevInst->operands()) { +      if (isa<Instruction>(&*J) && ScalarToTreeEntry.count(&*J)) +        LiveValues.insert(cast<Instruction>(&*J)); +    } +      DEBUG(        dbgs() << "SLP: #LV: " << LiveValues.size();        for (auto *X : LiveValues) @@ -1749,13 +1756,6 @@ int BoUpSLP::getSpillCost() {        Inst->dump();        ); -    // Update LiveValues. -    LiveValues.erase(PrevInst); -    for (auto &J : PrevInst->operands()) { -      if (isa<Instruction>(&*J) && ScalarToTreeEntry.count(&*J)) -        LiveValues.insert(cast<Instruction>(&*J)); -    } -      // Now find the sequence of instructions between PrevInst and Inst.      BasicBlock::reverse_iterator InstIt(Inst->getIterator()),          PrevInstIt(PrevInst->getIterator());  | 

