Lines Matching defs:Comparisons
387 static inline void enqueueBlock(std::vector<BCECmpBlock> &Comparisons,
396 Comparison.OrigOrder = Comparisons.size();
397 Comparisons.push_back(std::move(Comparison));
478 std::vector<BCECmpBlock> Comparisons;
491 if (Comparisons.empty()) {
510 enqueueBlock(Comparisons, std::move(*Comparison));
543 enqueueBlock(Comparisons, std::move(*Comparison));
547 if (Comparisons.empty()) {
551 EntryBlock_ = Comparisons[0].BB;
552 MergedBlocks_ = mergeBlocks(std::move(Comparisons));
564 explicit MergedBlockName(ArrayRef<BCECmpBlock> Comparisons)
565 : Name(makeName(Comparisons)) {}
569 StringRef makeName(ArrayRef<BCECmpBlock> Comparisons) {
570 assert(!Comparisons.empty() && "no basic block");
572 if (Comparisons.size() == 1)
573 return Comparisons[0].BB->getName();
574 const int size = std::accumulate(Comparisons.begin(), Comparisons.end(), 0,
583 // We'll have `size` bytes for name and `Comparisons.size() - 1` bytes for
585 Scratch.reserve(size + Comparisons.size() - 1);
589 append(Comparisons[0].BB->getName());
590 for (int I = 1, E = Comparisons.size(); I < E; ++I) {
591 const BasicBlock *const BB = Comparisons[I].BB;
603 static BasicBlock *mergeComparisons(ArrayRef<BCECmpBlock> Comparisons,
608 assert(!Comparisons.empty() && "merging zero comparisons");
610 const BCECmpBlock &FirstCmp = Comparisons[0];
614 BasicBlock::Create(Context, MergedBlockName(Comparisons).Name,
629 LLVM_DEBUG(dbgs() << "Merging " << Comparisons.size() << " comparisons -> "
636 Comparisons, [](const BCECmpBlock &B) { return B.RequireSplit; });
637 if (ToSplit != Comparisons.end()) {
642 if (Comparisons.size() == 1) {
653 Comparisons.begin(), Comparisons.end(), 0u,