Lines Matching full:pred
130 uint32_t lookup_or_add_cmp(unsigned Opcode, CmpInst::Predicate Pred,
725 bool performScalarPREInsertion(Instruction *Instr, BasicBlock *Pred,
731 BasicBlock *splitCriticalEdges(BasicBlock *Pred, BasicBlock *Succ);
1553 for (BasicBlock *Pred : predecessors(LoadBB)) {
1556 if (Pred->getTerminator()->isEHPad()) {
1559 << Pred->getName() << "': " << *LI << '\n');
1563 if (IsValueFullyAvailableInBlock(Pred, FullyAvailableBlocks, 0)) {
1567 if (Pred->getTerminator()->getNumSuccessors() != 1) {
1568 if (isa<IndirectBrInst>(Pred->getTerminator())) {
1570 << Pred->getName() << "': " << *LI << '\n');
1577 << Pred->getName() << "': " << *LI << '\n');
1581 CriticalEdgePred.push_back(Pred);
1584 PredLoads[Pred] = nullptr;
1594 // FIXME: If we could restructure the CFG, we could make a common pred with
1620 // the load on the pred (?!?), so we can insert code to materialize the
2107 const BasicBlock *Pred = E.getEnd()->getSinglePredecessor();
2109 assert((!Pred || Pred == Src) && "No edge between these basic blocks!");
2111 return Pred != nullptr;
2535 bool GVN::performScalarPREInsertion(Instruction *Instr, BasicBlock *Pred,
2554 if (Value *V = findLeader(Pred, VN.lookup(Op))) {
2568 Instr->insertBefore(Pred->getTerminator());
2574 addToLeaderTable(ValNo, Instr, Pred);
2641 // we would need to insert instructions in more than one pred.
2738 BasicBlock *GVN::splitCriticalEdges(BasicBlock *Pred, BasicBlock *Succ) {
2740 SplitCriticalEdge(Pred, Succ, CriticalEdgeSplittingOptions(DT));