Lines Matching refs:BasicBlock

156   SmallVector<BasicBlock *, 4> Entries;
159 BasicBlock *ReturnBlock = nullptr;
162 BasicBlock *NonReturnBlock = nullptr;
165 SmallVector<BasicBlock *, 4> ReturnBlockPreds;
173 OutlineRegionInfo(ArrayRef<BasicBlock *> Region, in OutlineRegionInfo()
174 BasicBlock *EntryBlock, BasicBlock *ExitBlock, in OutlineRegionInfo()
175 BasicBlock *ReturnBlock) in OutlineRegionInfo()
178 SmallVector<BasicBlock *, 8> Region;
179 BasicBlock *EntryBlock;
180 BasicBlock *ExitBlock;
181 BasicBlock *ReturnBlock;
245 typedef std::pair<Function *, BasicBlock *> FuncBodyCallerPair;
314 std::tuple<DebugLoc, BasicBlock *> getOneDebugLoc(Function &F) const { in getOneDebugLoc()
317 BasicBlock *Block = CB->getParent(); in getOneDebugLoc()
333 static InstructionCost computeBBInlineCost(BasicBlock *BB,
349 BasicBlock *EntryBlock = &F.front(); in computeOutliningColdRegionsInfo()
370 [&ORE](SmallVectorImpl<BasicBlock *> &BlockList) -> BasicBlock * { in computeOutliningColdRegionsInfo()
371 BasicBlock *ExitBlock = nullptr; in computeOutliningColdRegionsInfo()
373 for (BasicBlock *Succ : successors(Block)) { in computeOutliningColdRegionsInfo()
393 auto BBProfileCount = [BFI](BasicBlock *BB) { in computeOutliningColdRegionsInfo()
414 BasicBlock *CurrEntry = EntryBlock; in computeOutliningColdRegionsInfo()
415 std::vector<BasicBlock *> DFS; in computeOutliningColdRegionsInfo()
416 DenseMap<BasicBlock *, bool> VisitedMap; in computeOutliningColdRegionsInfo()
449 SmallVector<BasicBlock *, 8> DominateVector; in computeOutliningColdRegionsInfo()
462 BasicBlock *ExitBlock = nullptr; in computeOutliningColdRegionsInfo()
499 BasicBlock *ReturnBlock = ExitBlock->getSingleSuccessor(); in computeOutliningColdRegionsInfo()
518 BasicBlock *EntryBlock = &F.front(); in computeOutliningInfo()
524 auto IsSuccessor = [](BasicBlock *Succ, BasicBlock *BB) { in computeOutliningInfo()
528 auto IsReturnBlock = [](BasicBlock *BB) { in computeOutliningInfo()
533 auto GetReturnBlock = [&](BasicBlock *Succ1, BasicBlock *Succ2) { in computeOutliningInfo()
539 return std::make_tuple<BasicBlock *, BasicBlock *>(nullptr, nullptr); in computeOutliningInfo()
543 auto GetCommonSucc = [&](BasicBlock *Succ1, BasicBlock *Succ2) { in computeOutliningInfo()
549 return std::make_tuple<BasicBlock *, BasicBlock *>(nullptr, nullptr); in computeOutliningInfo()
555 BasicBlock *CurrEntry = EntryBlock; in computeOutliningInfo()
567 BasicBlock *Succ1 = *succ_begin(CurrEntry); in computeOutliningInfo()
568 BasicBlock *Succ2 = *(succ_begin(CurrEntry) + 1); in computeOutliningInfo()
570 BasicBlock *ReturnBlock, *NonReturnBlock; in computeOutliningInfo()
581 BasicBlock *CommSucc, *OtherSucc; in computeOutliningInfo()
598 DenseSet<BasicBlock *> Entries; in computeOutliningInfo()
599 for (BasicBlock *E : OutliningInfo->Entries) in computeOutliningInfo()
604 auto HasNonEntryPred = [Entries](BasicBlock *BB) { in computeOutliningInfo()
613 for (BasicBlock *E : OutliningInfo->Entries) { in computeOutliningInfo()
635 BasicBlock *Cand = OutliningInfo->NonReturnBlock; in computeOutliningInfo()
642 BasicBlock *Succ1 = *succ_begin(Cand); in computeOutliningInfo()
643 BasicBlock *Succ2 = *(succ_begin(Cand) + 1); in computeOutliningInfo()
645 BasicBlock *ReturnBlock, *NonReturnBlock; in computeOutliningInfo()
680 BasicBlock *OutliningCallBB = Cloner.OutlinedFunctions.back().second; in getOutliningCallBBRelativeFreq()
804 PartialInlinerImpl::computeBBInlineCost(BasicBlock *BB, in computeBBInlineCost()
869 BasicBlock* OutliningCallBB = FuncBBPair.second; in computeOutliningCosts()
877 for (BasicBlock &BB : *OutlinedFunc) in computeOutliningCosts()
935 BasicBlock *CallBB = CB->getParent(); in computeCallsiteToProfCountMap()
955 ClonedOI->ReturnBlock = cast<BasicBlock>(VMap[OI->ReturnBlock]); in FunctionCloner()
956 ClonedOI->NonReturnBlock = cast<BasicBlock>(VMap[OI->NonReturnBlock]); in FunctionCloner()
957 for (BasicBlock *BB : OI->Entries) in FunctionCloner()
958 ClonedOI->Entries.push_back(cast<BasicBlock>(VMap[BB])); in FunctionCloner()
960 for (BasicBlock *E : OI->ReturnBlockPreds) { in FunctionCloner()
961 BasicBlock *NewE = cast<BasicBlock>(VMap[E]); in FunctionCloner()
985 SmallVector<BasicBlock *, 8> Region; in FunctionCloner()
986 for (BasicBlock *BB : RegionInfo.Region) in FunctionCloner()
987 Region.push_back(cast<BasicBlock>(VMap[BB])); in FunctionCloner()
989 BasicBlock *NewEntryBlock = cast<BasicBlock>(VMap[RegionInfo.EntryBlock]); in FunctionCloner()
990 BasicBlock *NewExitBlock = cast<BasicBlock>(VMap[RegionInfo.ExitBlock]); in FunctionCloner()
991 BasicBlock *NewReturnBlock = nullptr; in FunctionCloner()
993 NewReturnBlock = cast<BasicBlock>(VMap[RegionInfo.ReturnBlock]); in FunctionCloner()
1004 auto GetFirstPHI = [](BasicBlock *BB) { in normalizeReturnBlock()
1005 BasicBlock::iterator I = BB->begin(); in normalizeReturnBlock()
1028 BasicBlock *PreReturn = ClonedOI->ReturnBlock; in normalizeReturnBlock()
1044 BasicBlock::iterator I = PreReturn->begin(); in normalizeReturnBlock()
1045 BasicBlock::iterator Ins = ClonedOI->ReturnBlock->begin(); in normalizeReturnBlock()
1059 for (BasicBlock *E : ClonedOI->ReturnBlockPreds) { in normalizeReturnBlock()
1084 [&](SmallVectorImpl<BasicBlock *> &Region) -> InstructionCost { in doMultiRegionFunctionOutlining()
1086 for (BasicBlock* BB : Region) in doMultiRegionFunctionOutlining()
1136 BasicBlock *OutliningCallBB = OCS->getParent(); in doMultiRegionFunctionOutlining()
1162 auto ToBeInlined = [&, this](BasicBlock *BB) { in doSingleRegionFunctionOutlining()
1178 std::vector<BasicBlock *> ToExtract; in doSingleRegionFunctionOutlining()
1183 for (BasicBlock *BB : depth_first(&ClonedFunc->getEntryBlock())) in doSingleRegionFunctionOutlining()
1202 BasicBlock *OutliningCallBB = in doSingleRegionFunctionOutlining()
1337 BasicBlock *Block; in tryPartialInline()