reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
2676 if (!PBI || PBI->isUnconditional() || 2676 if (!PBI || PBI->isUnconditional() || 2677 (BI->isConditional() && !SafeToMergeTerminators(BI, PBI)) || 2679 !isProfitableToFoldUnconditional(BI, PBI, Cond, PHIs))) 2687 if (PBI->getSuccessor(0) == TrueDest) { 2689 } else if (PBI->getSuccessor(1) == FalseDest) { 2691 } else if (PBI->getSuccessor(0) == FalseDest) { 2694 } else if (PBI->getSuccessor(1) == TrueDest) { 2701 if (PBI->getSuccessor(0) != TrueDest && PBI->getSuccessor(1) != TrueDest) 2701 if (PBI->getSuccessor(0) != TrueDest && PBI->getSuccessor(1) != TrueDest) 2705 LLVM_DEBUG(dbgs() << "FOLDING BRANCH TO COMMON DEST:\n" << *PBI << *BB); 2706 IRBuilder<> Builder(PBI); 2710 Value *NewCond = PBI->getCondition(); 2717 Builder.CreateNot(NewCond, PBI->getCondition()->getName() + ".not"); 2720 PBI->setCondition(NewCond); 2721 PBI->swapSuccessors(); 2746 PredBlock->getInstList().insert(PBI->getIterator(), NewBonusInst); 2756 PredBlock->getInstList().insert(PBI->getIterator(), CondInPred); 2762 Builder.CreateBinOp(Opc, PBI->getCondition(), CondInPred, "or.cond")); 2763 PBI->setCondition(NewCond); 2767 extractPredSuccWeights(PBI, BI, PredTrueWeight, PredFalseWeight, 2771 if (PBI->getSuccessor(0) == BB) { 2786 PBI->setSuccessor(0, TrueDest); 2788 if (PBI->getSuccessor(1) == BB) { 2801 PBI->setSuccessor(1, FalseDest); 2809 setBranchWeights(PBI, MDWeights[0], MDWeights[1]); 2811 PBI->setMetadata(LLVMContext::MD_prof, nullptr); 2816 PHIs[i]->getIncomingValueForBlock(PBI->getParent())); 2819 if (PBI->getSuccessor(0) == TrueDest) { 2824 Builder.CreateNot(PBI->getCondition(), "not.cond")); 2830 Instruction::Or, PBI->getCondition(), MergedCond, "or.cond")); 2836 Instruction::And, PBI->getCondition(), CondInPred, "and.cond")); 2839 Builder.CreateNot(PBI->getCondition(), "not.cond")); 2845 PHIs[i]->setIncomingValueForBlock(PBI->getParent(), MergedCond); 2851 MSSAU->changeCondBranchToUnconditionalTo(PBI, TrueDest); 2854 BranchInst *New_PBI = BranchInst::Create(TrueDest, PBI); 2855 EraseTerminatorAndDCECond(PBI, MSSAU); 2856 PBI = New_PBI; 2862 PBI->setMetadata(LLVMContext::MD_loop, LoopMD); 2870 I.clone()->insertBefore(PBI);