• Home
  • Raw
  • Download

Lines Matching refs:BasicBlock

51   typedef SmallVectorImpl<std::pair<Constant*, BasicBlock*> > PredValueInfo;
52 typedef SmallVector<std::pair<Constant*, BasicBlock*>, 8> PredValueInfoTy;
82 SmallPtrSet<BasicBlock*, 16> LoopHeaders;
84 SmallSet<AssertingVH<BasicBlock>, 16> LoopHeaders;
86 DenseSet<std::pair<Value*, BasicBlock*> > RecursionSet;
90 DenseSet<std::pair<Value*, BasicBlock*> > &TheSet;
91 std::pair<Value*, BasicBlock*> ThePair;
93 RecursionSetRemover(DenseSet<std::pair<Value*, BasicBlock*> > &S, in RecursionSetRemover()
94 std::pair<Value*, BasicBlock*> P) in RecursionSetRemover()
116 bool ProcessBlock(BasicBlock *BB);
117 bool ThreadEdge(BasicBlock *BB, const SmallVectorImpl<BasicBlock*> &PredBBs,
118 BasicBlock *SuccBB);
119 bool DuplicateCondBranchOnPHIIntoPred(BasicBlock *BB,
120 const SmallVectorImpl<BasicBlock *> &PredBBs);
122 bool ComputeValueKnownInPredecessors(Value *V, BasicBlock *BB,
125 bool ProcessThreadableEdges(Value *Cond, BasicBlock *BB,
160 BasicBlock *BB = I; in runOnFunction()
193 BasicBlock *Succ = BI->getSuccessor(0); in runOnFunction()
220 static unsigned getJumpThreadDuplicationCost(const BasicBlock *BB, in getJumpThreadDuplicationCost()
223 BasicBlock::const_iterator I = BB->getFirstNonPHI(); in getJumpThreadDuplicationCost()
291 SmallVector<std::pair<const BasicBlock*,const BasicBlock*>, 32> Edges; in FindLoopHeaders()
295 LoopHeaders.insert(const_cast<BasicBlock*>(Edges[i].second)); in FindLoopHeaders()
325 ComputeValueKnownInPredecessors(Value *V, BasicBlock *BB, PredValueInfo &Result, in ComputeValueKnownInPredecessors()
365 BasicBlock *P = *PI; in ComputeValueKnownInPredecessors()
416 SmallPtrSet<BasicBlock*, 4> LHSKnownBBs; in ComputeValueKnownInPredecessors()
487 BasicBlock *PredBB = PN->getIncomingBlock(i); in ComputeValueKnownInPredecessors()
520 BasicBlock *P = *PI; in ComputeValueKnownInPredecessors()
608 static unsigned GetBestDestForJumpOnUndef(BasicBlock *BB) { in GetBestDestForJumpOnUndef()
611 BasicBlock *TestBB = BBTerm->getSuccessor(MinSucc); in GetBestDestForJumpOnUndef()
626 static bool hasAddressTakenAndUsed(BasicBlock *BB) { in hasAddressTakenAndUsed()
638 bool JumpThreading::ProcessBlock(BasicBlock *BB) { in ProcessBlock()
649 if (BasicBlock *SinglePred = BB->getSinglePredecessor()) { in ProcessBlock()
835 BasicBlock *LoadBB = LI->getParent(); in SimplifyPartiallyRedundantLoad()
849 BasicBlock::iterator BBIt = LI; in SimplifyPartiallyRedundantLoad()
875 SmallPtrSet<BasicBlock*, 8> PredsScanned; in SimplifyPartiallyRedundantLoad()
876 typedef SmallVector<std::pair<BasicBlock*, Value*>, 8> AvailablePredsTy; in SimplifyPartiallyRedundantLoad()
878 BasicBlock *OneUnavailablePred = 0; in SimplifyPartiallyRedundantLoad()
884 BasicBlock *PredBB = *PI; in SimplifyPartiallyRedundantLoad()
917 BasicBlock *UnavailablePred = 0; in SimplifyPartiallyRedundantLoad()
928 SmallVector<BasicBlock*, 8> PredsToSplit; in SimplifyPartiallyRedundantLoad()
929 SmallPtrSet<BasicBlock*, 8> AvailablePredSet; in SimplifyPartiallyRedundantLoad()
937 BasicBlock *P = *PI; in SimplifyPartiallyRedundantLoad()
981 BasicBlock *P = *PI; in SimplifyPartiallyRedundantLoad()
1003 static BasicBlock *
1004 FindMostPopularDest(BasicBlock *BB, in FindMostPopularDest()
1005 const SmallVectorImpl<std::pair<BasicBlock*, in FindMostPopularDest() argument
1006 BasicBlock*> > &PredToDestList) { in FindMostPopularDest()
1013 DenseMap<BasicBlock*, unsigned> DestPopularity; in FindMostPopularDest()
1019 DenseMap<BasicBlock*, unsigned>::iterator DPI = DestPopularity.begin(); in FindMostPopularDest()
1020 BasicBlock *MostPopularDest = DPI->first; in FindMostPopularDest()
1022 SmallVector<BasicBlock*, 4> SamePopularity; in FindMostPopularDest()
1063 bool JumpThreading::ProcessThreadableEdges(Value *Cond, BasicBlock *BB, in ProcessThreadableEdges()
1088 SmallPtrSet<BasicBlock*, 16> SeenPreds; in ProcessThreadableEdges()
1089 SmallVector<std::pair<BasicBlock*, BasicBlock*>, 16> PredToDestList; in ProcessThreadableEdges()
1091 BasicBlock *OnlyDest = 0; in ProcessThreadableEdges()
1092 BasicBlock *MultipleDestSentinel = (BasicBlock*)(intptr_t)~0ULL; in ProcessThreadableEdges()
1095 BasicBlock *Pred = PredValues[i].second; in ProcessThreadableEdges()
1106 BasicBlock *DestBB; in ProcessThreadableEdges()
1136 BasicBlock *MostPopularDest = OnlyDest; in ProcessThreadableEdges()
1143 SmallVector<BasicBlock*, 16> PredsToFactor; in ProcessThreadableEdges()
1146 BasicBlock *Pred = PredToDestList[i].first; in ProcessThreadableEdges()
1172 BasicBlock *BB = PN->getParent(); in ProcessBranchOnPHI()
1176 SmallVector<BasicBlock*, 1> PredBBs; in ProcessBranchOnPHI()
1184 BasicBlock *PredBB = PN->getIncomingBlock(i); in ProcessBranchOnPHI()
1202 BasicBlock *BB = BO->getParent(); in ProcessBranchOnXOR()
1269 SmallVector<BasicBlock*, 8> BlocksToFoldInto; in ProcessBranchOnXOR()
1306 static void AddPHINodeEntriesForMappedBlock(BasicBlock *PHIBB, in AddPHINodeEntriesForMappedBlock()
1307 BasicBlock *OldPred, in AddPHINodeEntriesForMappedBlock()
1308 BasicBlock *NewPred, in AddPHINodeEntriesForMappedBlock()
1310 for (BasicBlock::iterator PNI = PHIBB->begin(); in AddPHINodeEntriesForMappedBlock()
1330 bool JumpThreading::ThreadEdge(BasicBlock *BB, in ThreadEdge()
1331 const SmallVectorImpl<BasicBlock*> &PredBBs, in ThreadEdge()
1332 BasicBlock *SuccBB) { in ThreadEdge()
1357 BasicBlock *PredBB; in ThreadEdge()
1379 BasicBlock *NewBB = BasicBlock::Create(BB->getContext(), in ThreadEdge()
1384 BasicBlock::iterator BI = BB->begin(); in ThreadEdge()
1420 for (BasicBlock::iterator I = BB->begin(); I != BB->end(); ++I) { in ThreadEdge()
1479 bool JumpThreading::DuplicateCondBranchOnPHIIntoPred(BasicBlock *BB, in DuplicateCondBranchOnPHIIntoPred()
1480 const SmallVectorImpl<BasicBlock *> &PredBBs) { in DuplicateCondBranchOnPHIIntoPred()
1501 BasicBlock *PredBB; in DuplicateCondBranchOnPHIIntoPred()
1529 BasicBlock::iterator BI = BB->begin(); in DuplicateCondBranchOnPHIIntoPred()
1574 for (BasicBlock::iterator I = BB->begin(); I != BB->end(); ++I) { in DuplicateCondBranchOnPHIIntoPred()