Lines Matching refs:PredBB

171     void UpdateBlockFreqAndEdgeWeight(BasicBlock *PredBB, BasicBlock *BB,
558 BasicBlock *PredBB = PN->getIncomingBlock(i);
560 Value *RHS = Cmp->getOperand(1)->DoPHITranslation(BB, PredBB);
569 cast<Constant>(RHS), PredBB, BB,
577 Result.push_back(std::make_pair(KC, PredBB));
989 for (BasicBlock *PredBB : predecessors(LoadBB)) {
991 if (!PredsScanned.insert(PredBB).second)
995 BBIt = PredBB->end();
997 Value *PredAvailable = FindAvailableLoadedValue(LoadedPtr, PredBB, BBIt,
1001 OneUnavailablePred = PredBB;
1010 AvailablePreds.push_back(std::make_pair(PredBB, PredAvailable));
1295 BasicBlock *PredBB = PN->getIncomingBlock(i);
1296 if (BranchInst *PredBr = dyn_cast<BranchInst>(PredBB->getTerminator()))
1298 PredBBs[0] = PredBB;
1299 // Try to duplicate BB into PredBB.
1408 // Try to duplicate BB into PredBB.
1467 BasicBlock *PredBB;
1469 PredBB = PredBBs[0];
1473 PredBB = SplitBlockPreds(BB, PredBBs, ".thr_comm");
1477 DEBUG(dbgs() << " Threading edge from '" << PredBB->getName() << "' to '"
1482 LVI->threadEdge(PredBB, BB, SuccBB);
1486 // account for entry from PredBB.
1492 NewBB->moveAfter(PredBB);
1497 BFI->getBlockFreq(PredBB) * BPI->getEdgeProbability(PredBB, BB);
1503 ValueMapping[PN] = PN->getIncomingValueForBlock(PredBB);
1570 // Ok, NewBB is good to go. Update the terminator of PredBB to jump to
1573 TerminatorInst *PredTerm = PredBB->getTerminator();
1576 BB->removePredecessor(PredBB, true);
1586 UpdateBlockFreqAndEdgeWeight(PredBB, BB, NewBB, SuccBB);
1606 BasicBlock *PredBB = SplitBlockPredecessors(BB, Preds, Suffix);
1608 // Set the block frequency of the newly created PredBB, which is the sum of
1611 BFI->setBlockFreq(PredBB, PredBBFreq.getFrequency());
1612 return PredBB;
1617 /// Freq(PredBB->BB) / Freq(BB->SuccBB).
1618 void JumpThreading::UpdateBlockFreqAndEdgeWeight(BasicBlock *PredBB,
1627 // As the edge from PredBB to BB is deleted, we have to update the block
1677 /// DuplicateCondBranchOnPHIIntoPred - PredBB contains an unconditional branch
1679 /// If we can duplicate the contents of BB up into PredBB do so now, this
1704 BasicBlock *PredBB;
1706 PredBB = PredBBs[0];
1710 PredBB = SplitBlockPreds(BB, PredBBs, ".thr_comm");
1714 // of PredBB.
1716 << PredBB->getName() << "' to eliminate branch on phi. Cost: "
1719 // Unless PredBB ends with an unconditional branch, split the edge so that we
1720 // can just clone the bits from BB into the end of the new PredBB.
1721 BranchInst *OldPredBranch = dyn_cast<BranchInst>(PredBB->getTerminator());
1724 PredBB = SplitEdge(PredBB, BB);
1725 OldPredBranch = cast<BranchInst>(PredBB->getTerminator());
1729 // PredBB block. Evaluate PHI nodes in BB.
1734 ValueMapping[PN] = PN->getIncomingValueForBlock(PredBB);
1735 // Clone the non-phi instructions of BB into PredBB, keeping track of the
1758 PredBB->getInstList().insert(OldPredBranch->getIterator(), New);
1764 // add entries to the PHI nodes for branch from PredBB now.
1766 AddPHINodeEntriesForMappedBlock(BBBranch->getSuccessor(0), BB, PredBB,
1768 AddPHINodeEntriesForMappedBlock(BBBranch->getSuccessor(1), BB, PredBB,
1802 SSAUpdate.AddAvailableValue(PredBB, ValueMapping[&I]);
1809 // PredBB no longer jumps to BB, remove entries in the PHI node for the edge
1811 BB->removePredecessor(PredBB, true);
1813 // Remove the unconditional branch at the end of the PredBB block.