Lines Matching refs:BasicBlock
44 BasicBlock *llvm::CloneBasicBlock(const BasicBlock *BB, ValueToValueMapTy &VMap, in CloneBasicBlock()
48 BasicBlock *NewBB = BasicBlock::Create(BB->getContext(), "", F); in CloneBasicBlock()
194 for (const BasicBlock &BB : *OldFunc) { in CloneFunctionInto()
197 BasicBlock *CBB = CloneBasicBlock(&BB, VMap, NameSuffix, NewFunc, CodeInfo, in CloneFunctionInto()
211 const_cast<BasicBlock *>(&BB)); in CloneFunctionInto()
274 BB = cast<BasicBlock>(VMap[&OldFunc->front()])->getIterator(), in CloneFunctionInto()
369 Instruction *cloneInstruction(BasicBlock::const_iterator II);
384 void CloneBlock(const BasicBlock *BB, BasicBlock::const_iterator StartingInst,
385 std::vector<const BasicBlock *> &ToClone);
390 PruningFunctionCloner::cloneInstruction(BasicBlock::const_iterator II) { in cloneInstruction()
463 const BasicBlock *BB, BasicBlock::const_iterator StartingInst, in CloneBlock()
464 std::vector<const BasicBlock *> &ToClone) { in CloneBlock()
472 BasicBlock *NewBB; in CloneBlock()
474 BBEntry = NewBB = BasicBlock::Create(BB->getContext(), NewName, NewFunc); in CloneBlock()
488 const_cast<BasicBlock *>(BB)); in CloneBlock()
496 BasicBlock::const_iterator DbgCursor = StartingInst; in CloneBlock()
498 [NewBB, &DbgCursor](Instruction *NewInst, BasicBlock::const_iterator II) { in CloneBlock()
513 for (BasicBlock::const_iterator II = StartingInst, IE = --BB->end(); II != IE; in CloneBlock()
587 BasicBlock *Dest = BI->getSuccessor(!Cond->getZExtValue()); in CloneBlock()
602 BasicBlock *Dest = const_cast<BasicBlock *>(Case.getCaseSuccessor()); in CloneBlock()
671 const BasicBlock *StartingBB; in CloneAndPruneIntoFromInst()
689 std::vector<const BasicBlock *> CloneWorklist; in CloneAndPruneIntoFromInst()
692 const BasicBlock *BB = CloneWorklist.back(); in CloneAndPruneIntoFromInst()
703 for (const BasicBlock &BI : *OldFunc) { in CloneAndPruneIntoFromInst()
705 BasicBlock *NewBB = cast_or_null<BasicBlock>(V); in CloneAndPruneIntoFromInst()
735 const BasicBlock *OldBB = OPN->getParent(); in CloneAndPruneIntoFromInst()
736 BasicBlock *NewBB = cast<BasicBlock>(VMap[OldBB]); in CloneAndPruneIntoFromInst()
747 if (BasicBlock *MappedBlock = cast_or_null<BasicBlock>(V)) { in CloneAndPruneIntoFromInst()
772 std::map<BasicBlock *, unsigned> PredCount; in CloneAndPruneIntoFromInst()
773 for (BasicBlock *Pred : predecessors(NewBB)) in CloneAndPruneIntoFromInst()
783 BasicBlock::iterator I = NewBB->begin(); in CloneAndPruneIntoFromInst()
786 BasicBlock *Pred = PCI.first; in CloneAndPruneIntoFromInst()
798 BasicBlock::iterator I = NewBB->begin(); in CloneAndPruneIntoFromInst()
799 BasicBlock::const_iterator OldI = OldBB->begin(); in CloneAndPruneIntoFromInst()
860 Function::iterator Begin = cast<BasicBlock>(VMap[StartingBB])->getIterator(); in CloneAndPruneIntoFromInst()
861 for (BasicBlock &BB : make_range(Begin, NewFunc->end())) { in CloneAndPruneIntoFromInst()
875 for (BasicBlock &BB : make_range(Begin, NewFunc->end())) in CloneAndPruneIntoFromInst()
880 SmallPtrSet<BasicBlock *, 16> ReachableBlocks; in CloneAndPruneIntoFromInst()
881 SmallVector<BasicBlock *, 16> Worklist; in CloneAndPruneIntoFromInst()
884 BasicBlock *BB = Worklist.pop_back_val(); in CloneAndPruneIntoFromInst()
889 SmallVector<BasicBlock *, 16> UnreachableBlocks; in CloneAndPruneIntoFromInst()
890 for (BasicBlock &BB : make_range(Begin, NewFunc->end())) in CloneAndPruneIntoFromInst()
908 BasicBlock *Dest = BI->getSuccessor(0); in CloneAndPruneIntoFromInst()
937 for (Function::iterator I = cast<BasicBlock>(VMap[StartingBB])->getIterator(), in CloneAndPruneIntoFromInst()
960 void llvm::remapInstructionsInBlocks(ArrayRef<BasicBlock *> Blocks, in remapInstructionsInBlocks()
978 Loop *llvm::cloneLoopWithPreheader(BasicBlock *Before, BasicBlock *LoopDomBB, in cloneLoopWithPreheader()
982 SmallVectorImpl<BasicBlock *> &Blocks) { in cloneLoopWithPreheader()
994 BasicBlock *OrigPH = OrigLoop->getLoopPreheader(); in cloneLoopWithPreheader()
996 BasicBlock *NewPH = CloneBasicBlock(OrigPH, VMap, NameSuffix, F); in cloneLoopWithPreheader()
1023 for (BasicBlock *BB : OrigLoop->getBlocks()) { in cloneLoopWithPreheader()
1028 BasicBlock *NewBB = CloneBasicBlock(BB, VMap, NameSuffix, F); in cloneLoopWithPreheader()
1041 for (BasicBlock *BB : OrigLoop->getBlocks()) { in cloneLoopWithPreheader()
1045 LMap[CurLoop]->moveToHeader(cast<BasicBlock>(VMap[BB])); in cloneLoopWithPreheader()
1048 BasicBlock *IDomBB = DT->getNode(BB)->getIDom()->getBlock(); in cloneLoopWithPreheader()
1049 DT->changeImmediateDominator(cast<BasicBlock>(VMap[BB]), in cloneLoopWithPreheader()
1050 cast<BasicBlock>(VMap[IDomBB])); in cloneLoopWithPreheader()
1063 BasicBlock *llvm::DuplicateInstructionsInSplitBetween( in DuplicateInstructionsInSplitBetween()
1064 BasicBlock *BB, BasicBlock *PredBB, Instruction *StopAt, in DuplicateInstructionsInSplitBetween()
1072 BasicBlock::iterator BI = BB->begin(); in DuplicateInstructionsInSplitBetween()
1076 BasicBlock *NewBB = SplitEdge(PredBB, BB); in DuplicateInstructionsInSplitBetween()
1172 ArrayRef<BasicBlock *> NewBlocks, in cloneAndAdaptNoAliasScopes()
1183 for (BasicBlock *NewBlock : NewBlocks) in cloneAndAdaptNoAliasScopes()
1209 ArrayRef<BasicBlock *> BBs, SmallVectorImpl<MDNode *> &NoAliasDeclScopes) { in identifyNoAliasScopesToClone()
1210 for (BasicBlock *BB : BBs) in identifyNoAliasScopesToClone()
1217 BasicBlock::iterator Start, BasicBlock::iterator End, in identifyNoAliasScopesToClone()