Lines Matching refs:VectorizableTree

912     VectorizableTree.clear();  in deleteTree()
925 unsigned getTreeSize() const { return VectorizableTree.size(); } in getTreeSize()
2532 VectorizableTree.push_back(std::make_unique<TreeEntry>(VectorizableTree)); in newTreeEntry()
2533 TreeEntry *Last = VectorizableTree.back().get(); in newTreeEntry()
2534 Last->Idx = VectorizableTree.size() - 1; in newTreeEntry()
2587 TreeEntry::VecTreeTy VectorizableTree; member in llvm::slpvectorizer::BoUpSLP
2592 for (unsigned Id = 0, IdE = VectorizableTree.size(); Id != IdE; ++Id) { in dumpVectorizableTree()
2593 VectorizableTree[Id]->dump(); in dumpVectorizableTree()
3266 ContainerTy &VectorizableTree; member
3270 : ChildIteratorType::iterator_adaptor_base(W), VectorizableTree(VT) {} in ChildIteratorType()
3276 return R.VectorizableTree[0].get(); in getEntryNode()
3304 return nodes_iterator(R->VectorizableTree.begin()); in nodes_begin()
3308 return nodes_iterator(R->VectorizableTree.end()); in nodes_end()
3311 static unsigned size(BoUpSLP *R) { return R->VectorizableTree.size(); } in size()
3725 for_each(VectorizableTree, [this, &TTIRef, &VFToOrderedEntries, in reorderTopToBottom()
3788 for (unsigned VF = VectorizableTree.front()->Scalars.size(); VF > 1; in reorderTopToBottom()
3872 for (std::unique_ptr<TreeEntry> &TE : VectorizableTree) { in reorderTopToBottom()
3980 for_each(VectorizableTree, [this, &OrderedEntries, &GathersToOrders, in reorderBottomToTop()
4180 if (IgnoreReorder && TE == VectorizableTree.front().get()) in reorderBottomToTop()
4219 if (IgnoreReorder && !VectorizableTree.front()->ReorderIndices.empty() && in reorderBottomToTop()
4220 VectorizableTree.front()->ReuseShuffleIndices.empty()) in reorderBottomToTop()
4221 VectorizableTree.front()->ReorderIndices.clear(); in reorderBottomToTop()
4227 for (auto &TEPtr : VectorizableTree) { in buildExternalUses()
4650 if (VectorizableTree.size() < MinTreeSize) in buildTree_rec()
4910 VectorizableTree.back()->setOperand(0, Op0); in buildTree_rec()
4930 VectorizableTree.back()->setOperand(0, Op0); in buildTree_rec()
6542 for (const std::unique_ptr<TreeEntry> &TE : VectorizableTree) { in getEntryCost()
6610 << VectorizableTree.size() << " is fully vectorizable .\n"); in isFullyVectorizableTinyTree()
6630 if (VectorizableTree.size() == 1 && in isFullyVectorizableTinyTree()
6631 (VectorizableTree[0]->State == TreeEntry::Vectorize || in isFullyVectorizableTinyTree()
6633 AreVectorizableGathers(VectorizableTree[0].get(), in isFullyVectorizableTinyTree()
6634 VectorizableTree[0]->Scalars.size()) && in isFullyVectorizableTinyTree()
6635 VectorizableTree[0]->getVectorFactor() > 2))) in isFullyVectorizableTinyTree()
6638 if (VectorizableTree.size() != 2) in isFullyVectorizableTinyTree()
6646 if (VectorizableTree[0]->State == TreeEntry::Vectorize && in isFullyVectorizableTinyTree()
6647 AreVectorizableGathers(VectorizableTree[1].get(), in isFullyVectorizableTinyTree()
6648 VectorizableTree[0]->Scalars.size())) in isFullyVectorizableTinyTree()
6652 if (VectorizableTree[0]->State == TreeEntry::NeedToGather || in isFullyVectorizableTinyTree()
6653 (VectorizableTree[1]->State == TreeEntry::NeedToGather && in isFullyVectorizableTinyTree()
6654 VectorizableTree[0]->State != TreeEntry::ScatterVectorize)) in isFullyVectorizableTinyTree()
6704 unsigned NumElts = VectorizableTree[0]->Scalars.size(); in isLoadCombineReductionCandidate()
6705 Value *FirstReduced = VectorizableTree[0]->Scalars[0]; in isLoadCombineReductionCandidate()
6713 unsigned NumElts = VectorizableTree[0]->Scalars.size(); in isLoadCombineCandidate()
6714 for (Value *Scalar : VectorizableTree[0]->Scalars) { in isLoadCombineCandidate()
6725 if (VectorizableTree.size() == 2 && in isTreeTinyAndNotFullyVectorizable()
6726 isa<InsertElementInst>(VectorizableTree[0]->Scalars[0]) && in isTreeTinyAndNotFullyVectorizable()
6727 VectorizableTree[1]->State == TreeEntry::NeedToGather && in isTreeTinyAndNotFullyVectorizable()
6728 (VectorizableTree[1]->getVectorFactor() <= 2 || in isTreeTinyAndNotFullyVectorizable()
6729 !(isSplat(VectorizableTree[1]->Scalars) || in isTreeTinyAndNotFullyVectorizable()
6730 allConstant(VectorizableTree[1]->Scalars)))) in isTreeTinyAndNotFullyVectorizable()
6735 if (VectorizableTree.size() >= MinTreeSize) in isTreeTinyAndNotFullyVectorizable()
6743 assert(VectorizableTree.empty() in isTreeTinyAndNotFullyVectorizable()
6757 unsigned BundleWidth = VectorizableTree.front()->Scalars.size(); in getSpillCost()
6770 for (const auto &TEPtr : VectorizableTree) { in getSpillCost()
7038 << VectorizableTree.size() << ".\n"); in getTreeCost()
7040 unsigned BundleWidth = VectorizableTree[0]->Scalars.size(); in getTreeCost()
7042 for (unsigned I = 0, E = VectorizableTree.size(); I < E; ++I) { in getTreeCost()
7043 TreeEntry &TE = *VectorizableTree[I]; in getTreeCost()
7143 auto *ScalarRoot = VectorizableTree[0]->Scalars[0]; in getTreeCost()
7255 for (const std::unique_ptr<TreeEntry> &EntryPtr : VectorizableTree) { in isGatherShuffledEntry()
7764 assert(any_of(VectorizableTree, in createBuildVector()
7881 E != VectorizableTree.front().get() || in vectorizeTree()
8444 auto *VectorRoot = vectorizeTree(VectorizableTree[0].get()); in vectorizeTree()
8449 auto *ScalarRoot = VectorizableTree[0]->Scalars[0]; in vectorizeTree()
8459 auto BundleWidth = VectorizableTree[0]->Scalars.size(); in vectorizeTree()
8463 VectorizableTree[0]->VectorizedValue = Trunc; in vectorizeTree()
8553 VectorizableTree[0]->VectorizedValue == Vec) in vectorizeTree()
8859 for (auto &TEPtr : VectorizableTree) { in vectorizeTree()
8898 return VectorizableTree[0]->VectorizedValue; in vectorizeTree()
9781 auto &TreeRoot = VectorizableTree[0]->Scalars; in computeMinimumValueSizes()
9802 for (auto &EntryPtr : VectorizableTree) in computeMinimumValueSizes()