| /freebsd/contrib/llvm-project/llvm/lib/Transforms/Instrumentation/ |
| H A D | BlockCoverageInference.cpp | 57 for (auto &BB : F) { in BlockCoverageInference() local 59 if (shouldInstrumentBlock(BB)) in BlockCoverageInference() 65 BlockCoverageInference::getDependencies(const BasicBlock &BB) const { in getDependencies() 66 assert(BB.getParent() == &F); in getDependencies() 68 auto It = PredecessorDependencies.find(&BB); in getDependencies() 71 It = SuccessorDependencies.find(&BB); in getDependencies() 80 for (auto &BB : F) { in getInstrumentedBlocksHash() local 81 if (shouldInstrumentBlock(BB)) { in getInstrumentedBlocksHash() 91 bool BlockCoverageInference::shouldInstrumentBlock(const BasicBlock &BB) const { in shouldInstrumentBlock() 92 assert(BB.getParent() == &F); in shouldInstrumentBlock() [all …]
|
| /freebsd/contrib/llvm-project/llvm/lib/Target/Mips/ |
| H A D | Mips16ISelLowering.cpp | 173 MachineBasicBlock *BB) const { in EmitInstrWithCustomInserter() 176 return MipsTargetLowering::EmitInstrWithCustomInserter(MI, BB); in EmitInstrWithCustomInserter() 178 return emitSel16(Mips::BeqzRxImm16, MI, BB); in EmitInstrWithCustomInserter() 180 return emitSel16(Mips::BnezRxImm16, MI, BB); in EmitInstrWithCustomInserter() 182 return emitSeliT16(Mips::Bteqz16, Mips::CmpiRxImmX16, MI, BB); in EmitInstrWithCustomInserter() 184 return emitSeliT16(Mips::Bteqz16, Mips::SltiRxImmX16, MI, BB); in EmitInstrWithCustomInserter() 186 return emitSeliT16(Mips::Bteqz16, Mips::SltiuRxImmX16, MI, BB); in EmitInstrWithCustomInserter() 188 return emitSeliT16(Mips::Btnez16, Mips::CmpiRxImmX16, MI, BB); in EmitInstrWithCustomInserter() 190 return emitSeliT16(Mips::Btnez16, Mips::SltiRxImmX16, MI, BB); in EmitInstrWithCustomInserter() 192 return emitSeliT16(Mips::Btnez16, Mips::SltiuRxImmX16, MI, BB); in EmitInstrWithCustomInserter() [all …]
|
| /freebsd/contrib/llvm-project/llvm/lib/Transforms/Scalar/ |
| H A D | ADCE.cpp | 103 BasicBlock *BB = nullptr; member 131 bool isLive(BasicBlock *BB) { return BlockInfo[BB].Live; } in isLive() argument 169 void markLive(BlockInfoType &BB); 170 void markLive(BasicBlock *BB) { markLive(BlockInfo[BB]); } in markLive() argument 197 void makeUnconditional(BasicBlock *BB, BasicBlock *Target); 230 for (auto &BB : F) { in initialize() local 231 NumInsts += BB.size(); in initialize() 232 auto &Info = BlockInfo[&BB]; in initialize() 233 Info.BB = &BB; in initialize() 234 Info.Terminator = BB.getTerminator(); in initialize() [all …]
|
| H A D | JumpThreading.cpp | 148 static void updatePredecessorProfileMetadata(PHINode *PN, BasicBlock *BB) { in updatePredecessorProfileMetadata() argument 149 BranchInst *CondBr = dyn_cast<BranchInst>(BB->getTerminator()); in updatePredecessorProfileMetadata() 203 auto PredOutEdge = GetPredOutEdge(PN->getIncomingBlock(i), BB); in updatePredecessorProfileMetadata() 316 for (auto &BB : *F) in runImpl() 317 if (!DT.isReachableFromEntry(&BB)) in runImpl() 318 Unreachable.insert(&BB); in runImpl() 327 for (auto &BB : *F) { in runImpl() 328 if (Unreachable.count(&BB)) in runImpl() 330 while (processBlock(&BB)) // Thread all of the branches we can over BB. in runImpl() 336 if (&BB == &F->getEntryBlock() || DTU->isBBPendingDeletion(&BB)) in runImpl() [all …]
|
| H A D | LoopSimplifyCFG.cpp | 50 static BasicBlock *getOnlyLiveSuccessor(BasicBlock *BB) { in getOnlyLiveSuccessor() argument 51 Instruction *TI = BB->getTerminator(); in getOnlyLiveSuccessor() 77 static void removeBlockFromLoops(BasicBlock *BB, Loop *FirstLoop, in removeBlockFromLoops() argument 81 assert(FirstLoop->contains(BB) && "Must be a loop block!"); in removeBlockFromLoops() 84 Current->removeBlockFromLoop(BB); in removeBlockFromLoops() 92 for (BasicBlock *BB : BBs) { in getInnermostLoopFor() 93 Loop *BBL = LI.getLoopFor(BB); in getInnermostLoopFor() 162 for (const BasicBlock *BB : S) in dump() local 163 dbgs() << "\t" << BB->getName() << "\n"; in dump() 168 for (const BasicBlock *BB : S) in dump() local [all …]
|
| /freebsd/contrib/llvm-project/llvm/include/llvm/IR/ |
| H A D | CFG.h | 111 inline pred_iterator pred_begin(BasicBlock *BB) { return pred_iterator(BB); } in pred_begin() argument 112 inline const_pred_iterator pred_begin(const BasicBlock *BB) { in pred_begin() argument 113 return const_pred_iterator(BB); in pred_begin() 115 inline pred_iterator pred_end(BasicBlock *BB) { return pred_iterator(BB, true);} in pred_end() argument 116 inline const_pred_iterator pred_end(const BasicBlock *BB) { in pred_end() argument 117 return const_pred_iterator(BB, true); in pred_end() 119 inline bool pred_empty(const BasicBlock *BB) { in pred_empty() argument 120 return pred_begin(BB) == pred_end(BB); in pred_empty() 124 inline unsigned pred_size(const BasicBlock *BB) { in pred_size() argument 125 return std::distance(pred_begin(BB), pred_end(BB)); in pred_size() [all …]
|
| H A D | InstIterator.h | 38 BB_i_t BB; // BasicBlocksType::iterator variable 54 : BBs(II.BBs), BB(II.BB), BI(II.BI) {} in InstIterator() 58 : BBs(II.BBs), BB(II.BB), BI(II.BI) {} in InstIterator() 61 : BBs(&m.getBasicBlockList()), BB(BBs->begin()) { // begin ctor in InstIterator() 62 if (BB != BBs->end()) { in InstIterator() 63 BI = BB->begin(); in InstIterator() 69 : BBs(&m.getBasicBlockList()), BB(BBs->end()) { // end ctor in InstIterator() 73 inline BBIty &getBasicBlockIterator() { return BB; } in getBasicBlockIterator() 80 return BB == y.BB && (BB == BBs->end() || BI == y.BI); 96 while (BB == BBs->end() || BI == BB->begin()) { [all …]
|
| /freebsd/contrib/llvm-project/llvm/lib/CodeGen/ |
| H A D | MachineSSAUpdater.cpp | 65 bool MachineSSAUpdater::HasValueForBlock(MachineBasicBlock *BB) const { in HasValueForBlock() 66 return getAvailableVals(AV).count(BB); in HasValueForBlock() 71 void MachineSSAUpdater::AddAvailableValue(MachineBasicBlock *BB, Register V) { in AddAvailableValue() argument 72 getAvailableVals(AV)[BB] = V; in AddAvailableValue() 77 Register MachineSSAUpdater::GetValueAtEndOfBlock(MachineBasicBlock *BB) { in GetValueAtEndOfBlock() argument 78 return GetValueAtEndOfBlockInternal(BB); in GetValueAtEndOfBlock() 82 Register LookForIdenticalPHI(MachineBasicBlock *BB, in LookForIdenticalPHI() argument 84 if (BB->empty()) in LookForIdenticalPHI() 87 MachineBasicBlock::iterator I = BB->begin(); in LookForIdenticalPHI() 94 while (I != BB->end() && I->isPHI()) { in LookForIdenticalPHI() [all …]
|
| H A D | WasmEHPrepare.cpp | 118 void prepareEHPad(BasicBlock *BB, bool NeedPersonality, unsigned Index = 0); 178 auto *BB = WL.pop_back_val(); in eraseDeadBBsAndChildren() local 179 if (!pred_empty(BB)) in eraseDeadBBsAndChildren() 181 WL.append(succ_begin(BB), succ_end(BB)); in eraseDeadBBsAndChildren() 182 DeleteDeadBlock(BB); in eraseDeadBBsAndChildren() 208 auto *BB = ThrowI->getParent(); in prepareThrows() local 209 SmallVector<BasicBlock *, 4> Succs(successors(BB)); in prepareThrows() 210 BB->erase(std::next(BasicBlock::iterator(ThrowI)), BB->end()); in prepareThrows() 211 IRB.SetInsertPoint(BB); in prepareThrows() 225 for (BasicBlock &BB : F) { in prepareEHPads() [all …]
|
| H A D | IfConversion.cpp | 152 MachineBasicBlock *BB = nullptr; member 286 bool MeetIfcvtSizeLimit(MachineBasicBlock &BB, in MeetIfcvtSizeLimit() argument 289 return Cycle > 0 && TII->isProfitableToIfCvt(BB, Cycle, Extra, in MeetIfcvtSizeLimit() 296 const MachineFunction &MF = *TBBInfo.BB->getParent(); in MeetIfcvtSizeLimit() 298 MachineBasicBlock::iterator TIB = TBBInfo.BB->begin(); in MeetIfcvtSizeLimit() 299 MachineBasicBlock::iterator FIB = FBBInfo.BB->begin(); in MeetIfcvtSizeLimit() 300 MachineBasicBlock::iterator TIE = TBBInfo.BB->end(); in MeetIfcvtSizeLimit() 301 MachineBasicBlock::iterator FIE = FBBInfo.BB->end(); in MeetIfcvtSizeLimit() 305 *TBBInfo.BB, *FBBInfo.BB, in MeetIfcvtSizeLimit() 313 for (auto &I : make_range(TBBInfo.BB->begin(), TIB)) { in MeetIfcvtSizeLimit() [all …]
|
| H A D | UnreachableBlockElim.cpp | 142 for (MachineBasicBlock *BB : depth_first_ext(&F, Reachable)) in run() 143 (void)BB/* Mark all reachable blocks */; in run() 148 for (MachineBasicBlock &BB : F) { in run() 150 if (!Reachable.count(&BB)) { in run() 151 DeadBlocks.push_back(&BB); in run() 154 if (MLI) MLI->removeBlock(&BB); in run() 155 if (MDT && MDT->getNode(&BB)) MDT->eraseNode(&BB); in run() 157 while (!BB.succ_empty()) { in run() 158 MachineBasicBlock* succ = *BB.succ_begin(); in run() 163 Phi.getOperand(i).getMBB() == &BB) { in run() [all …]
|
| /freebsd/contrib/llvm-project/llvm/lib/Target/SPIRV/ |
| H A D | SPIRVStructurizer.cpp | 52 getRegionForHeader(const ConvergenceRegion *Node, BasicBlock *BB) { in getRegionForHeader() argument 53 if (Node->Entry == BB) in getRegionForHeader() 57 const auto *CR = getRegionForHeader(Child, BB); in getRegionForHeader() 123 static bool hasLoopMergeInstruction(BasicBlock &BB) { in hasLoopMergeInstruction() argument 124 for (auto &I : BB) in hasLoopMergeInstruction() 140 for (BasicBlock &BB : F) { in getHeaderBlocks() 141 for (Instruction &I : BB) { in getHeaderBlocks() 143 Output.insert(&BB); in getHeaderBlocks() 153 for (BasicBlock &BB : F) { in getMergeBlocks() 154 for (Instruction &I : BB) { in getMergeBlocks() [all …]
|
| /freebsd/contrib/llvm-project/llvm/lib/Analysis/ |
| H A D | CFG.cpp | 37 const BasicBlock *BB = &F.getEntryBlock(); in FindFunctionBackedges() local 38 if (succ_empty(BB)) in FindFunctionBackedges() 45 Visited.insert(BB); in FindFunctionBackedges() 46 VisitStack.push_back(std::make_pair(BB, succ_begin(BB))); in FindFunctionBackedges() 47 InStack.insert(BB); in FindFunctionBackedges() 55 BB = *I++; in FindFunctionBackedges() 56 if (Visited.insert(BB).second) { in FindFunctionBackedges() 61 if (InStack.count(BB)) in FindFunctionBackedges() 62 Result.push_back(std::make_pair(ParentBB, BB)); in FindFunctionBackedges() 67 InStack.insert(BB); in FindFunctionBackedges() [all …]
|
| H A D | BranchProbabilityInfo.cpp | 227 for (const auto *BB : Scc) { in SccInfo() local 228 LLVM_DEBUG(dbgs() << " " << BB->getName()); in SccInfo() 229 SccNums[BB] = SccNum; in SccInfo() 230 calculateSccBlockType(BB, SccNum); in SccInfo() 236 int BranchProbabilityInfo::SccInfo::getSCCNum(const BasicBlock *BB) const { in getSCCNum() 237 auto SccIt = SccNums.find(BB); in getSCCNum() 247 const auto *BB = MapIt.first; in getSccEnterBlocks() local 248 if (isSCCHeader(BB, SccNum)) in getSccEnterBlocks() 249 for (const auto *Pred : predecessors(BB)) in getSccEnterBlocks() 251 Enters.push_back(const_cast<BasicBlock *>(BB)); in getSccEnterBlocks() [all …]
|
| H A D | InstructionPrecedenceTracking.cpp | 40 const BasicBlock *BB) { in getFirstSpecialInstruction() argument 47 validate(BB); in getFirstSpecialInstruction() 50 auto [It, Inserted] = FirstSpecialInsts.try_emplace(BB); in getFirstSpecialInstruction() 52 for (const auto &I : *BB) { in getFirstSpecialInstruction() 64 const BasicBlock *BB) { in hasSpecialInstructions() argument 65 return getFirstSpecialInstruction(BB) != nullptr; in hasSpecialInstructions() 76 void InstructionPrecedenceTracking::validate(const BasicBlock *BB) const { in validate() 77 auto It = FirstSpecialInsts.find(BB); in validate() 82 for (const Instruction &Insn : *BB) in validate() 102 const BasicBlock *BB) { in insertInstructionTo() argument [all …]
|
| /freebsd/contrib/llvm-project/llvm/lib/Transforms/Utils/ |
| H A D | BasicBlockUtils.cpp | 65 for (auto *BB : BBs) { in detachDeadBlocks() local 69 for (BasicBlock *Succ : successors(BB)) { in detachDeadBlocks() 70 Succ->removePredecessor(BB, KeepOneInputPHIs); in detachDeadBlocks() 72 Updates->push_back({DominatorTree::Delete, BB, Succ}); in detachDeadBlocks() 76 while (!BB->empty()) { in detachDeadBlocks() 77 Instruction &I = BB->back(); in detachDeadBlocks() 85 BB->back().eraseFromParent(); in detachDeadBlocks() 87 new UnreachableInst(BB->getContext(), BB); in detachDeadBlocks() 88 assert(BB->size() == 1 && in detachDeadBlocks() 89 isa<UnreachableInst>(BB->getTerminator()) && in detachDeadBlocks() [all …]
|
| H A D | SSAUpdaterBulk.cpp | 51 void SSAUpdaterBulk::AddAvailableValue(unsigned Var, BasicBlock *BB, Value *V) { in AddAvailableValue() argument 55 << BB->getName() << "\n"); in AddAvailableValue() 56 Rewrites[Var].Defines.emplace_back(BB, V); in AddAvailableValue() 84 BasicBlock *BB = LiveInBlockWorklist.pop_back_val(); in ComputeLiveInBlocks() local 88 if (!LiveInBlocks.insert(BB).second) in ComputeLiveInBlocks() 94 for (BasicBlock *P : PredCache.get(BB)) { in ComputeLiveInBlocks() 144 for (auto [BB, V] : R.Defines) in RewriteAllUses() 145 BBInfos[BB].LiveOutValue = V; in RewriteAllUses() 158 auto ComputeValue = [&](BasicBlock *BB, bool IsLiveOut) -> Value * { in RewriteAllUses() argument 159 auto *BBInfo = &BBInfos[BB]; in RewriteAllUses() [all …]
|
| /freebsd/contrib/llvm-project/llvm/include/llvm/Analysis/ |
| H A D | EHUtils.h | 26 auto GetStatus = [&](BlockT *BB) { in computeEHOnlyBlocks() 27 auto It = Statuses.find(BB); in computeEHOnlyBlocks() 31 auto CheckPredecessors = [&](BlockT *BB, Status Stat) { in computeEHOnlyBlocks() 32 for (auto *PredBB : predecessors(BB)) { in computeEHOnlyBlocks() 42 auto AddSuccesors = [&](BlockT *BB) { in computeEHOnlyBlocks() 43 for (auto *SuccBB : successors(BB)) { in computeEHOnlyBlocks() 54 for (auto &BB : F) { in computeEHOnlyBlocks() 55 if (BB.isEHPad()) { in computeEHOnlyBlocks() 56 AddSuccesors(&BB); in computeEHOnlyBlocks() 57 Statuses[&BB] = EH; in computeEHOnlyBlocks() [all …]
|
| H A D | RegionInfoImpl.h | 55 void RegionBase<Tr>::replaceEntry(BlockT *BB) { in replaceEntry() argument 56 this->entry.setPointer(BB); in replaceEntry() 60 void RegionBase<Tr>::replaceExit(BlockT *BB) { in replaceExit() argument 62 exit = BB; in replaceExit() 103 BlockT *BB = const_cast<BlockT *>(B); in contains() local 105 if (!DT->getNode(BB)) in contains() 114 return (DT->dominates(entry, BB) && in contains() 115 !(DT->dominates(exit, BB) && DT->dominates(entry, exit))); in contains() 132 for (BlockT *BB : ExitingBlocks) { in contains() 133 if (!contains(BB)) in contains() [all …]
|
| /freebsd/contrib/llvm-project/llvm/lib/Transforms/IPO/ |
| H A D | HotColdSplitting.cpp | 102 bool blockEndsInUnreachable(const BasicBlock &BB) { in blockEndsInUnreachable() argument 103 if (!succ_empty(&BB)) in blockEndsInUnreachable() 105 if (BB.empty()) in blockEndsInUnreachable() 107 const Instruction *I = BB.getTerminator(); in blockEndsInUnreachable() 111 void analyzeProfMetadata(BasicBlock *BB, in analyzeProfMetadata() argument 115 BranchInst *CondBr = dyn_cast<BranchInst>(BB->getTerminator()); in analyzeProfMetadata() 137 bool unlikelyExecuted(BasicBlock &BB) { in unlikelyExecuted() argument 139 if (BB.isEHPad() || isa<ResumeInst>(BB.getTerminator())) in unlikelyExecuted() 144 for (Instruction &I : BB) in unlikelyExecuted() 152 if (blockEndsInUnreachable(BB)) { in unlikelyExecuted() [all …]
|
| /freebsd/contrib/llvm-project/llvm/lib/Target/AMDGPU/ |
| H A D | AMDGPUUnifyDivergentExitNodes.cpp | 118 static bool isUniformlyReached(const UniformityInfo &UA, BasicBlock &BB) { in isUniformlyReached() argument 119 SmallVector<BasicBlock *, 8> Stack(predecessors(&BB)); in isUniformlyReached() 159 for (BasicBlock *BB : ReturningBlocks) { in unifyReturnBlockSet() 163 PN->addIncoming(BB->getTerminator()->getOperand(0), BB); in unifyReturnBlockSet() 166 BB->getTerminator()->eraseFromParent(); in unifyReturnBlockSet() 167 BranchInst::Create(NewRetBlock, BB); in unifyReturnBlockSet() 168 Updates.emplace_back(DominatorTree::Insert, BB, NewRetBlock); in unifyReturnBlockSet() 175 for (BasicBlock *BB : ReturningBlocks) { in unifyReturnBlockSet() 177 simplifyCFG(BB, *TTI, RequireAndPreserveDomTree ? &DTU : nullptr, in unifyReturnBlockSet() 212 PDT.roots(), [&](auto BB) { return !isUniformlyReached(UA, *BB); }); in run() argument [all …]
|
| /freebsd/contrib/llvm-project/llvm/include/llvm/Transforms/Scalar/ |
| H A D | JumpThreading.h | 119 LLVM_ABI bool processBlock(BasicBlock *BB); 120 LLVM_ABI bool maybeMergeBasicBlockIntoOnlyPred(BasicBlock *BB); 121 LLVM_ABI void updateSSA(BasicBlock *BB, BasicBlock *NewBB, 127 LLVM_ABI bool tryThreadEdge(BasicBlock *BB, 130 LLVM_ABI void threadEdge(BasicBlock *BB, 134 BasicBlock *BB, const SmallVectorImpl<BasicBlock *> &PredBBs); 137 Value *V, BasicBlock *BB, jumpthreading::PredValueInfo &Result, 141 computeValueKnownInPredecessors(Value *V, BasicBlock *BB, 146 return computeValueKnownInPredecessorsImpl(V, BB, Result, Preference, 150 LLVM_ABI Constant *evaluateOnPredecessorEdge(BasicBlock *BB, [all …]
|
| /freebsd/contrib/llvm-project/llvm/tools/llvm-stress/ |
| H A D | llvm-stress.cpp | 160 : BB(Block), PT(PT), Ran(R), Context(BB->getContext()) { in Modifier() 311 BasicBlock *BB; member 326 LoadModifier(BasicBlock *BB, PieceTable *PT, Random *R) in LoadModifier() 327 : Modifier(BB, PT, R) {} in LoadModifier() 333 Value *V = new LoadInst(Ty, Ptr, "L", BB->getTerminator()->getIterator()); in Act() 339 StoreModifier(BasicBlock *BB, PieceTable *PT, Random *R) in StoreModifier() 340 : Modifier(BB, PT, R) {} in StoreModifier() 353 new StoreInst(Val, Ptr, BB->getTerminator()->getIterator()); in Act() 358 BinModifier(BasicBlock *BB, PieceTable *PT, Random *R) in BinModifier() 359 : Modifier(BB, PT, R) {} in BinModifier() [all …]
|
| /freebsd/contrib/llvm-project/llvm/lib/SandboxIR/ |
| H A D | BasicBlock.cpp | 17 auto ItE = BB->end(); in operator ++() 30 assert(It != BB->begin() && "Already at begin!"); in operator --() 31 if (It == BB->end()) { in operator --() 38 assert(std::prev(It, Num - 1) != BB->begin() && "Already at begin!"); in operator --() 54 auto *BB = cast<llvm::BasicBlock>(Val); in getParent() local 55 auto *F = BB->getParent(); in getParent() 79 llvm::BasicBlock *BB = cast<llvm::BasicBlock>(Val); in begin() local 80 llvm::BasicBlock::iterator It = BB->begin(); in begin() 81 if (!BB->empty()) { in begin() 82 auto *V = Ctx.getValue(&*BB->begin()); in begin() [all …]
|
| /freebsd/contrib/llvm-project/llvm/lib/IR/ |
| H A D | SafepointIRVerifier.cpp | 85 const BasicBlock* BB = PN->getParent(); in hasLiveIncomingEdge() local 87 for (const_pred_iterator PredIt(BB), End(BB, true); PredIt != End; ++PredIt) { in hasLiveIncomingEdge() 100 bool isDeadBlock(const BasicBlock *BB) const { in isDeadBlock() 101 return DeadBlocks.count(BB); in isDeadBlock() 114 bool hasLiveIncomingEdges(const BasicBlock *BB) const { in hasLiveIncomingEdges() 116 for (const_pred_iterator PredIt(BB), End(BB, true); PredIt != End; ++PredIt) { in hasLiveIncomingEdges() 129 for (const BasicBlock &BB : F) in processFunction() local 130 if (!DT.isReachableFromEntry(&BB)) in processFunction() 131 DeadBlocks.insert(&BB); in processFunction() 135 for (const BasicBlock *BB : RPOT) { in processFunction() local [all …]
|