Lines Matching refs:TI
116 Value *isValueEqualityComparison(TerminatorInst *TI);
117 BasicBlock *GetValueEqualityComparisonCases(TerminatorInst *TI,
119 bool SimplifyEqualityComparisonWithOnlyPredecessor(TerminatorInst *TI,
122 bool FoldValueComparisonIntoPredecessors(TerminatorInst *TI,
504 static void EraseTerminatorInstAndDCECond(TerminatorInst *TI) { in EraseTerminatorInstAndDCECond() argument
506 if (SwitchInst *SI = dyn_cast<SwitchInst>(TI)) { in EraseTerminatorInstAndDCECond()
508 } else if (BranchInst *BI = dyn_cast<BranchInst>(TI)) { in EraseTerminatorInstAndDCECond()
511 } else if (IndirectBrInst *IBI = dyn_cast<IndirectBrInst>(TI)) { in EraseTerminatorInstAndDCECond()
515 TI->eraseFromParent(); in EraseTerminatorInstAndDCECond()
521 Value *SimplifyCFGOpt::isValueEqualityComparison(TerminatorInst *TI) { in isValueEqualityComparison() argument
523 if (SwitchInst *SI = dyn_cast<SwitchInst>(TI)) { in isValueEqualityComparison()
529 } else if (BranchInst *BI = dyn_cast<BranchInst>(TI)) in isValueEqualityComparison()
550 GetValueEqualityComparisonCases(TerminatorInst *TI, in GetValueEqualityComparisonCases() argument
553 if (SwitchInst *SI = dyn_cast<SwitchInst>(TI)) { in GetValueEqualityComparisonCases()
561 BranchInst *BI = cast<BranchInst>(TI); in GetValueEqualityComparisonCases()
618 SimplifyEqualityComparisonWithOnlyPredecessor(TerminatorInst *TI, in SimplifyEqualityComparisonWithOnlyPredecessor() argument
624 Value *ThisVal = isValueEqualityComparison(TI); in SimplifyEqualityComparisonWithOnlyPredecessor()
639 BasicBlock *ThisDef = GetValueEqualityComparisonCases(TI, ThisCases); in SimplifyEqualityComparisonWithOnlyPredecessor()
644 if (PredDef == TI->getParent()) { in SimplifyEqualityComparisonWithOnlyPredecessor()
651 if (isa<BranchInst>(TI)) { in SimplifyEqualityComparisonWithOnlyPredecessor()
660 ThisCases[0].Dest->removePredecessor(TI->getParent()); in SimplifyEqualityComparisonWithOnlyPredecessor()
663 << "Through successor TI: " << *TI << "Leaving: " << *NI << "\n"); in SimplifyEqualityComparisonWithOnlyPredecessor()
665 EraseTerminatorInstAndDCECond(TI); in SimplifyEqualityComparisonWithOnlyPredecessor()
669 SwitchInst *SI = cast<SwitchInst>(TI); in SimplifyEqualityComparisonWithOnlyPredecessor()
676 << "Through successor TI: " << *TI); in SimplifyEqualityComparisonWithOnlyPredecessor()
695 i.getCaseSuccessor()->removePredecessor(TI->getParent()); in SimplifyEqualityComparisonWithOnlyPredecessor()
704 DEBUG(dbgs() << "Leaving: " << *TI << "\n"); in SimplifyEqualityComparisonWithOnlyPredecessor()
711 BasicBlock *TIBB = TI->getParent(); in SimplifyEqualityComparisonWithOnlyPredecessor()
745 << "Through successor TI: " << *TI << "Leaving: " << *NI << "\n"); in SimplifyEqualityComparisonWithOnlyPredecessor()
747 EraseTerminatorInstAndDCECond(TI); in SimplifyEqualityComparisonWithOnlyPredecessor()
785 static void GetBranchWeights(TerminatorInst *TI, in GetBranchWeights() argument
787 MDNode *MD = TI->getMetadata(LLVMContext::MD_prof); in GetBranchWeights()
797 if (BranchInst* BI = dyn_cast<BranchInst>(TI)) { in GetBranchWeights()
819 bool SimplifyCFGOpt::FoldValueComparisonIntoPredecessors(TerminatorInst *TI, in FoldValueComparisonIntoPredecessors() argument
821 BasicBlock *BB = TI->getParent(); in FoldValueComparisonIntoPredecessors()
822 Value *CV = isValueEqualityComparison(TI); // CondVal in FoldValueComparisonIntoPredecessors()
834 if (PCV == CV && SafeToMergeTerminators(TI, PTI)) { in FoldValueComparisonIntoPredecessors()
837 BasicBlock *BBDefault = GetValueEqualityComparisonCases(TI, BBCases); in FoldValueComparisonIntoPredecessors()
850 bool SuccHasWeights = HasBranchWeights(TI); in FoldValueComparisonIntoPredecessors()
865 GetBranchWeights(TI, SuccWeights); in FoldValueComparisonIntoPredecessors()
3050 TerminatorInst *TI = Preds[i]->getTerminator(); in SimplifyUnreachable() local
3051 IRBuilder<> Builder(TI); in SimplifyUnreachable()
3052 if (BranchInst *BI = dyn_cast<BranchInst>(TI)) { in SimplifyUnreachable()
3055 new UnreachableInst(TI->getContext(), TI); in SimplifyUnreachable()
3056 TI->eraseFromParent(); in SimplifyUnreachable()
3069 } else if (SwitchInst *SI = dyn_cast<SwitchInst>(TI)) { in SimplifyUnreachable()
3078 } else if (InvokeInst *II = dyn_cast<InvokeInst>(TI)) { in SimplifyUnreachable()