| /freebsd-13.1/contrib/llvm-project/llvm/include/llvm/Transforms/Scalar/ |
| H A D | JumpThreading.h | 32 class BasicBlock; variable 117 void updateSSA(BasicBlock *BB, BasicBlock *NewBB, 126 void threadEdge(BasicBlock *BB, const SmallVectorImpl<BasicBlock *> &PredBBs, 129 BasicBlock *BB, const SmallVectorImpl<BasicBlock *> &PredBBs); 145 Constant *evaluateOnPredecessorEdge(BasicBlock *BB, BasicBlock *PredPredBB, 148 void threadThroughTwoBasicBlocks(BasicBlock *PredPredBB, BasicBlock *PredBB, 149 BasicBlock *BB, BasicBlock *SuccBB); 159 void unfoldSelectInstr(BasicBlock *Pred, BasicBlock *BB, SelectInst *SI, 170 BasicBlock *splitBlockPreds(BasicBlock *BB, ArrayRef<BasicBlock *> Preds, 172 void updateBlockFreqAndEdgeWeight(BasicBlock *PredBB, BasicBlock *BB, [all …]
|
| /freebsd-13.1/contrib/llvm-project/llvm/lib/IR/ |
| H A D | BasicBlock.cpp | 67 BasicBlock::~BasicBlock() { in ~BasicBlock() 129 iplist<BasicBlock>::iterator BasicBlock::eraseFromParent() { in eraseFromParent() 133 void BasicBlock::moveBefore(BasicBlock *MovePos) { in moveBefore() 138 void BasicBlock::moveAfter(BasicBlock *MovePos) { in moveAfter() 264 const BasicBlock *BasicBlock::getSinglePredecessor() const { in getSinglePredecessor() 272 const BasicBlock *BasicBlock::getUniquePredecessor() const { in getUniquePredecessor() 294 const BasicBlock *BasicBlock::getSingleSuccessor() const { in getSingleSuccessor() 302 const BasicBlock *BasicBlock::getUniqueSuccessor() const { in getUniqueSuccessor() 316 iterator_range<BasicBlock::phi_iterator> BasicBlock::phis() { in phis() 321 void BasicBlock::removePredecessor(BasicBlock *Pred, in removePredecessor() [all …]
|
| /freebsd-13.1/contrib/llvm-project/llvm/include/llvm/Transforms/Utils/ |
| H A D | BasicBlockUtils.h | 217 inline BasicBlock * 243 inline BasicBlock * 244 SplitCriticalEdge(BasicBlock *Src, BasicBlock *Dst, 265 BasicBlock *SplitEdge(BasicBlock *From, BasicBlock *To, 275 void updatePhiNodes(BasicBlock *DestBB, BasicBlock *OldPred, 280 BasicBlock *ehAwareSplitEdge(BasicBlock *BB, BasicBlock *Succ, 310 BasicBlock *SplitBlock(BasicBlock *Old, Instruction *SplitPt, 320 BasicBlock *splitBlockBefore(BasicBlock *Old, Instruction *SplitPt, 340 BasicBlock *SplitBlockPredecessors(BasicBlock *BB, ArrayRef<BasicBlock *> Preds, 360 BasicBlock *SplitBlockPredecessors(BasicBlock *BB, ArrayRef<BasicBlock *> Preds, [all …]
|
| H A D | CodeExtractor.h | 26 class BasicBlock; variable 51 DenseMap<BasicBlock *, DenseSet<Value *>> BaseMemAddrs; 55 DenseSet<BasicBlock *> SideEffectingBlocks; 57 void findSideEffectInfoForBlock(BasicBlock &BB); 99 SetVector<BasicBlock *> Blocks; 187 BasicBlock *&ExitBlock) const; 197 BasicBlock *findOrCreateBlockForHoisting(BasicBlock *CommonExitBlock); 211 void severSplitPHINodesOfEntry(BasicBlock *&Header); 217 BasicBlock *header, 218 BasicBlock *newRootNode, BasicBlock *newHeader, [all …]
|
| H A D | MatrixUtils.h | 20 class BasicBlock; variable 55 BasicBlock *ColumnLoopHeader = nullptr; 58 BasicBlock *RowLoopHeader = nullptr; 60 BasicBlock *RowLoopLatch = nullptr; 62 BasicBlock *InnerLoopHeader = nullptr; 64 BasicBlock *InnerLoopLatch = nullptr; 78 BasicBlock *CreateTiledLoops(BasicBlock *Start, BasicBlock *End, 87 static BasicBlock *CreateLoop(BasicBlock *Preheader, BasicBlock *Exit,
|
| /freebsd-13.1/contrib/llvm-project/llvm/include/llvm/IR/ |
| H A D | BasicBlock.h | 82 BasicBlock(const BasicBlock &) = delete; 83 BasicBlock &operator=(const BasicBlock &) = delete; 84 ~BasicBlock(); 245 return const_cast<BasicBlock *>( in getSinglePredecessor() 257 return const_cast<BasicBlock *>( in getUniquePredecessor() 272 BasicBlock *getSingleSuccessor() { in getSingleSuccessor() 318 friend BasicBlock; variable 368 return &BasicBlock::InstList; in getSublistAccess() 454 void replacePhiUsesWith(BasicBlock *Old, BasicBlock *New); 458 void replaceSuccessorsPhiUsesWith(BasicBlock *Old, BasicBlock *New); [all …]
|
| H A D | Dominators.h | 35 extern template class DomTreeNodeBase<BasicBlock>; 39 extern template class cfg::Update<BasicBlock *>; 42 using BBDomTree = DomTreeBase<BasicBlock>; 43 using BBPostDomTree = PostDomTreeBase<BasicBlock>; 84 const BasicBlock *Start; 85 const BasicBlock *End; 88 BasicBlockEdge(const BasicBlock *Start_, const BasicBlock *End_) : in BasicBlockEdge() 91 BasicBlockEdge(const std::pair<BasicBlock *, BasicBlock *> &Pair) in BasicBlockEdge() argument 94 BasicBlockEdge(const std::pair<const BasicBlock *, const BasicBlock *> &Pair) in BasicBlockEdge() argument 97 const BasicBlock *getStart() const { in getStart() [all …]
|
| H A D | CFG.h | 34 class BasicBlock; variable 119 inline bool pred_empty(const BasicBlock *BB) { in pred_empty() 281 inline bool succ_empty(const BasicBlock *BB) { in succ_empty() 287 inline succ_range successors(BasicBlock *BB) { in successors() 301 template <> struct GraphTraits<BasicBlock*> { 302 using NodeRef = BasicBlock *; 311 using NodeRef = const BasicBlock *; 326 using NodeRef = BasicBlock *; 335 using NodeRef = const BasicBlock *; 368 public GraphTraits<const BasicBlock*> { [all …]
|
| H A D | PredIteratorCache.h | 29 mutable DenseMap<BasicBlock *, BasicBlock **> BlockToPredsMap; 30 mutable DenseMap<BasicBlock *, unsigned> BlockToPredCountMap; 42 BasicBlock **GetPreds(BasicBlock *BB) { in GetPreds() 43 BasicBlock **&Entry = BlockToPredsMap[BB]; in GetPreds() 47 SmallVector<BasicBlock *, 32> PredCache(predecessors(BB)); in GetPreds() 52 Entry = Memory.Allocate<BasicBlock *>(PredCache.size()); in GetPreds() 57 unsigned GetNumPreds(BasicBlock *BB) const { in GetNumPreds() 65 size_t size(BasicBlock *BB) const { return GetNumPreds(BB); } in size() 66 ArrayRef<BasicBlock *> get(BasicBlock *BB) { in get()
|
| H A D | Instructions.h | 3046 BranchInst(BasicBlock *IfTrue, BasicBlock *IfFalse, Value *Cond, 3048 BranchInst(BasicBlock *IfTrue, BasicBlock *InsertAtEnd); 3049 BranchInst(BasicBlock *IfTrue, BasicBlock *IfFalse, Value *Cond, 3068 ptrdiff_t, BasicBlock *, BasicBlock *> { 3071 BasicBlock *operator*() const { return cast<BasicBlock>(*I); } 3084 const BasicBlock *operator*() const { return cast<BasicBlock>(*I); } 3093 static BranchInst *Create(BasicBlock *IfTrue, BasicBlock *IfFalse, 3102 static BranchInst *Create(BasicBlock *IfTrue, BasicBlock *IfFalse, 3619 ptrdiff_t, BasicBlock *, BasicBlock *> { 3622 BasicBlock *operator*() const { return cast<BasicBlock>(*I); } [all …]
|
| /freebsd-13.1/contrib/llvm-project/llvm/include/llvm/Analysis/ |
| H A D | MemorySSAUpdater.h | 46 class BasicBlock; variable 91 void removeEdge(BasicBlock *From, BasicBlock *To); 111 void updateForClonedBlockIntoPred(BasicBlock *BB, BasicBlock *P1, 119 ArrayRef<BasicBlock *> ExitBlocks, 147 void moveAllAfterSpliceBlocks(BasicBlock *From, BasicBlock *To, 163 void moveAllAfterMergeBlocks(BasicBlock *From, BasicBlock *To, 171 BasicBlock *Old, BasicBlock *New, ArrayRef<BasicBlock *> Preds, 252 void moveAllAccesses(BasicBlock *From, BasicBlock *To, Instruction *Start); 256 getPreviousDefFromEnd(BasicBlock *, 259 getPreviousDefRecursive(BasicBlock *, [all …]
|
| H A D | BranchProbabilityInfo.h | 169 bool isEdgeHot(const BasicBlock *Src, const BasicBlock *Dst) const; 185 void setEdgeProbability(const BasicBlock *Src, 192 void copyEdgeProbabilities(BasicBlock *Src, BasicBlock *Dst); 204 void eraseBlock(const BasicBlock *BB); 218 using SccMap = DenseMap<const BasicBlock *, int>; 238 int getSCCNum(const BasicBlock *BB) const; 277 BPI->eraseBlock(cast<BasicBlock>(getValPtr())); in deleted() 295 BasicBlock *getBlock() { return const_cast<BasicBlock *>(BB); } in getBlock() 307 const BasicBlock *const BB = nullptr; 407 bool calcMetadataWeights(const BasicBlock *BB); [all …]
|
| H A D | DomTreeUpdater.h | 70 bool isBBPendingDeletion(BasicBlock *DelBB) const; 159 LLVM_ATTRIBUTE_DEPRECATED(void insertEdge(BasicBlock *From, BasicBlock *To), 181 LLVM_ATTRIBUTE_DEPRECATED(void deleteEdge(BasicBlock *From, BasicBlock *To), 203 void deleteBB(BasicBlock *DelBB); 213 void callbackDeleteBB(BasicBlock *DelBB, 248 CallBackOnDeletion(BasicBlock *V, in CallBackOnDeletion() 253 BasicBlock *DelBB = nullptr; 254 std::function<void(BasicBlock *)> Callback_; 268 SmallPtrSet<BasicBlock *, 8> DeletedBBs; 278 void validateDeleteBB(BasicBlock *DelBB); [all …]
|
| H A D | IteratedDominanceFrontier.h | 17 class BasicBlock; variable 22 template <bool IsPostDom> struct ChildrenGetterTy<BasicBlock, IsPostDom> { 23 using NodeRef = BasicBlock *; 24 using ChildrenTy = SmallVector<BasicBlock *, 8>; 33 const GraphDiff<BasicBlock *, IsPostDom> *GD = nullptr; 42 typename llvm::IDFCalculatorBase<BasicBlock, IsPostDom>; 45 IDFCalculator(DominatorTreeBase<BasicBlock, IsPostDom> &DT) 48 IDFCalculator(DominatorTreeBase<BasicBlock, IsPostDom> &DT, 49 const GraphDiff<BasicBlock *, IsPostDom> *GD) 65 typename ChildrenGetterTy<BasicBlock, IsPostDom>::ChildrenTy [all …]
|
| H A D | Interval.h | 27 class BasicBlock; variable 40 BasicBlock *HeaderNode; 43 using succ_iterator = std::vector<BasicBlock*>::iterator; 44 using pred_iterator = std::vector<BasicBlock*>::iterator; 54 std::vector<BasicBlock*> Nodes; 59 std::vector<BasicBlock*> Successors; 63 std::vector<BasicBlock*> Predecessors; 66 inline bool contains(BasicBlock *BB) const { in contains() 67 for (BasicBlock *Node : Nodes) in contains() 76 inline bool isSuccessor(BasicBlock *BB) const { in isSuccessor() [all …]
|
| /freebsd-13.1/contrib/llvm-project/llvm/lib/Transforms/Utils/ |
| H A D | FlattenCFG.cpp | 52 bool CompareIfRegionBlock(BasicBlock *Block1, BasicBlock *Block2, 58 bool run(BasicBlock *BB); 141 BasicBlock *LastCondBlock = nullptr; in FlattenParallelAndOr() 142 BasicBlock *FirstCondBlock = nullptr; in FlattenParallelAndOr() 143 BasicBlock *UnCondBlock = nullptr; in FlattenParallelAndOr() 150 BasicBlock *Pred = *PI; in FlattenParallelAndOr() 235 BasicBlock *PS1 = TBB->getSuccessor(0); in FlattenParallelAndOr() 280 BasicBlock *CB; in FlattenParallelAndOr() 323 bool FlattenCFGOpt::CompareIfRegionBlock(BasicBlock *Block1, BasicBlock *Block2, in CompareIfRegionBlock() 413 BasicBlock *IfTrue2, *IfFalse2; in MergeIfRegion() [all …]
|
| H A D | BasicBlockUtils.cpp | 493 BasicBlock *llvm::SplitEdge(BasicBlock *BB, BasicBlock *Succ, DominatorTree *DT, in SplitEdge() 542 void llvm::updatePhiNodes(BasicBlock *DestBB, BasicBlock *OldPred, in updatePhiNodes() 564 BasicBlock *llvm::ehAwareSplitEdge(BasicBlock *BB, BasicBlock *Succ, in ehAwareSplitEdge() 814 BasicBlock *llvm::SplitBlock(BasicBlock *Old, Instruction *SplitPt, in SplitBlock() 988 static void UpdatePHINodes(BasicBlock *OrigBB, BasicBlock *NewBB, in UpdatePHINodes() 1081 BasicBlock *NewBB = BasicBlock::Create( in SplitBlockPredecessorsImpl() 1148 BasicBlock *llvm::SplitBlockPredecessors(BasicBlock *BB, in SplitBlockPredecessors() 1156 BasicBlock *llvm::SplitBlockPredecessors(BasicBlock *BB, in SplitBlockPredecessors() 1175 BasicBlock *NewBB1 = BasicBlock::Create(OrigBB->getContext(), in SplitLandingPadPredecessorsImpl() 1602 static std::tuple<Value *, BasicBlock *, BasicBlock *> [all …]
|
| H A D | LoopUnrollRuntime.cpp | 73 BasicBlock *PreHeader, BasicBlock *NewPreHeader, in ConnectProlog() 89 BasicBlock *PrologLatch = cast<BasicBlock>(VMap[Latch]); in ConnectProlog() 187 BasicBlock *Exit, BasicBlock *PreHeader, in ConnectEpilog() 188 BasicBlock *EpilogPreHeader, BasicBlock *NewPreHeader, in ConnectEpilog() 193 BasicBlock *EpilogLatch = cast<BasicBlock>(VMap[Latch]); in ConnectEpilog() 306 BasicBlock *InsertBot, BasicBlock *Preheader, in CloneLoopBlocks() 355 BasicBlock *FirstLoopBB = cast<BasicBlock>(VMap[Header]); in CloneLoopBlocks() 393 BasicBlock *NewLatch = cast<BasicBlock>(VMap[Latch]); in CloneLoopBlocks() 466 Loop *L, SmallVectorImpl<BasicBlock *> &OtherExits, BasicBlock *LatchExit, in canProfitablyUnrollMultiExitLoop() 697 BasicBlock *NewPreHeader; in UnrollRuntimeLoopRemainder() [all …]
|
| /freebsd-13.1/contrib/llvm-project/llvm/lib/Analysis/ |
| H A D | CFG.cpp | 35 SmallVectorImpl<std::pair<const BasicBlock*,const BasicBlock*> > &Result) { in FindFunctionBackedges() argument 36 const BasicBlock *BB = &F.getEntryBlock(); in FindFunctionBackedges() 40 SmallPtrSet<const BasicBlock*, 8> Visited; in FindFunctionBackedges() 42 SmallPtrSet<const BasicBlock*, 8> InStack; in FindFunctionBackedges() 49 const BasicBlock *ParentBB = Top.first; in FindFunctionBackedges() 80 const BasicBlock *Succ) { in GetSuccessorNumber() 113 const BasicBlock *FirstPred = *I; in isCriticalEdge() 138 SmallVectorImpl<BasicBlock *> &Worklist, BasicBlock *StopBB, in isPotentiallyReachableFromMany() 212 const BasicBlock *A, const BasicBlock *B, in isPotentiallyReachable() 229 SmallVector<BasicBlock*, 32> Worklist; in isPotentiallyReachable() [all …]
|
| H A D | MemorySSAUpdater.cpp | 44 BasicBlock *BB, in getPreviousDefRecursive() 180 BasicBlock *BB, in getPreviousDefFromEnd() 532 void MemorySSAUpdater::removeEdge(BasicBlock *From, BasicBlock *To) { in removeEdge() 606 void MemorySSAUpdater::cloneUsesAndDefs(BasicBlock *BB, BasicBlock *NewBB, in cloneUsesAndDefs() 639 BasicBlock *Header, BasicBlock *Preheader, BasicBlock *BEBlock) { in updatePhisWhenInsertingUniqueBackedgeBlock() 732 BasicBlock *NewBlock = cast_or_null<BasicBlock>(VMap.lookup(BB)); in updateForClonedLoop() 758 BasicBlock *BB, BasicBlock *P1, const ValueToValueMapTy &VM) { in updateForClonedBlockIntoPred() 912 [&](const SmallSetVector<BasicBlock *, 2> &BBSet) -> BasicBlock * { in applyInsertUpdates() argument 922 [&](BasicBlock *PrevIDom, BasicBlock *CurrIDom, in applyInsertUpdates() 1212 void MemorySSAUpdater::moveAllAccesses(BasicBlock *From, BasicBlock *To, in moveAllAccesses() [all …]
|
| /freebsd-13.1/contrib/llvm-project/llvm/lib/Transforms/Scalar/ |
| H A D | StructurizeCFG.cpp | 92 using BB2BBMap = DenseMap<BasicBlock *, BasicBlock *>; 279 void delPhiValues(BasicBlock *From, BasicBlock *To); 281 void addPhiValues(BasicBlock *From, BasicBlock *To); 292 BasicBlock *getNextFlow(BasicBlock *Dominator); 296 BasicBlock *needPostfix(BasicBlock *Flow, bool ExitUseAllowed); 435 BasicBlock *BB = N->getNodeAs<BasicBlock>(); in analyzeLoops() 591 void StructurizeCFG::delPhiValues(BasicBlock *From, BasicBlock *To) { in delPhiValues() 723 BasicBlock *BB = Node->getNodeAs<BasicBlock>(); in changeExit() 733 BasicBlock *StructurizeCFG::getNextFlow(BasicBlock *Dominator) { in getNextFlow() 737 BasicBlock *Flow = BasicBlock::Create(Context, FlowBlockName, in getNextFlow() [all …]
|
| H A D | LoopSink.cpp | 97 for (BasicBlock *B : BBs) in adjustedSumFreq() 131 static SmallPtrSet<BasicBlock *, 2> 135 SmallPtrSet<BasicBlock *, 2> BBsToSinkInto; in findBBsToSinkInto() 150 for (BasicBlock *ColdestBB : ColdLoopBBs) { in findBBsToSinkInto() 167 for (BasicBlock *BB : BBsToSinkInto) { in findBBsToSinkInto() 191 SmallPtrSet<BasicBlock *, 2> BBs; in sinkInstruction() 225 llvm::sort(SortedBBsToSinkInto, [&](BasicBlock *A, BasicBlock *B) { in sinkInstruction() 311 SmallVector<BasicBlock *, 10> ColdLoopBBs; in sinkLoopInvariantInstructions() 314 for (BasicBlock *B : L.blocks()) in sinkLoopInvariantInstructions() 319 llvm::stable_sort(ColdLoopBBs, [&](BasicBlock *A, BasicBlock *B) { in sinkLoopInvariantInstructions() [all …]
|
| /freebsd-13.1/contrib/llvm-project/clang/lib/Analysis/ |
| H A D | ThreadSafetyTIL.cpp | 58 unsigned BasicBlock::addPredecessor(BasicBlock *Pred) { in addPredecessor() 165 unsigned BasicBlock::topologicalSort(SimpleArray<BasicBlock *> &Blocks, in topologicalSort() 189 unsigned BasicBlock::topologicalFinalSort(SimpleArray<BasicBlock *> &Blocks, in topologicalFinalSort() 208 void BasicBlock::computeDominator() { in computeDominator() 209 BasicBlock *Candidate = nullptr; in computeDominator() 235 void BasicBlock::computePostDominator() { in computePostDominator() 236 BasicBlock *Candidate = nullptr; in computePostDominator() 267 BasicBlock::TopologyNode BasicBlock::*TN) { in computeNodeSize() 268 BasicBlock::TopologyNode *N = &(B->*TN); in computeNodeSize() 278 BasicBlock::TopologyNode BasicBlock::*TN) { in computeNodeID() [all …]
|
| /freebsd-13.1/contrib/llvm-project/llvm/lib/Target/AMDGPU/ |
| H A D | AMDGPUUnifyDivergentExitNodes.cpp | 118 BasicBlock &BB) { in isUniformlyReached() 120 SmallPtrSet<BasicBlock *, 8> Visited; in isUniformlyReached() 123 BasicBlock *Top = Stack.pop_back_val(); in isUniformlyReached() 127 for (BasicBlock *Pred : predecessors(Top)) { in isUniformlyReached() 142 BasicBlock *NewRetBlock = BasicBlock::Create(F.getContext(), Name, &F); in unifyReturnBlockSet() 159 for (BasicBlock *BB : ReturningBlocks) { in unifyReturnBlockSet() 175 for (BasicBlock *BB : ReturningBlocks) { in unifyReturnBlockSet() 200 SmallVector<BasicBlock *, 4> ReturningBlocks; in runOnFunction() 204 BasicBlock *DummyReturnBB = nullptr; in runOnFunction() 209 for (BasicBlock *BB : PDT.roots()) { in runOnFunction() [all …]
|
| /freebsd-13.1/contrib/llvm-project/llvm/lib/CodeGen/ |
| H A D | WinEHPrepare.cpp | 100 MapVector<BasicBlock *, std::vector<BasicBlock *>> FuncletBlocks; 179 for (BasicBlock &BB : *F) { in calculateStateNumbersForInvokes() 188 BasicBlock *FuncletUnwindDest; in calculateStateNumbersForInvokes() 221 static const BasicBlock *getEHPadFromPredecessor(const BasicBlock *BB, in getEHPadFromPredecessor() 457 for (const BasicBlock &BB : *Fn) { in calculateSEHStateNumbers() 611 const BasicBlock *UnwindDest; in calculateClrEHStateNumbers() 706 for (BasicBlock &BB : F) { in colorFunclets() 757 std::vector<std::pair<BasicBlock *, BasicBlock *>> Orig2Clone; in cloneCommonBlocks() 772 BasicBlock *CBB = in cloneCommonBlocks() 1039 for (BasicBlock &BB : F) { in verifyPreparedFunclets() [all …]
|