/freebsd/contrib/llvm-project/llvm/include/llvm/IR/ |
H A D | BasicBlock.h | 165 BasicBlock(const BasicBlock &) = delete; 166 BasicBlock &operator=(const BasicBlock &) = delete; 167 ~BasicBlock(); 181 friend BasicBlock::iterator Instruction::insertInto(BasicBlock *BB, 536 void spliceDebugInfo(BasicBlock::iterator ToIt, BasicBlock *FromBB, 620 void splice(BasicBlock::iterator ToIt, BasicBlock *FromBB) { in splice() 626 void splice(BasicBlock::iterator ToIt, BasicBlock *FromBB, in splice() 637 void splice(BasicBlock::iterator ToIt, BasicBlock *FromBB, 643 BasicBlock::iterator erase(BasicBlock::iterator FromIt, BasicBlock::iterator ToIt); 653 void replacePhiUsesWith(BasicBlock *Old, BasicBlock *New); [all …]
|
H A D | Dominators.h | 46 extern template class DomTreeNodeBase<BasicBlock>; 50 extern template class cfg::Update<BasicBlock *>; 53 using BBDomTree = DomTreeBase<BasicBlock>; 92 using DomTreeNode = DomTreeNodeBase<BasicBlock>; 95 const BasicBlock *Start; 96 const BasicBlock *End; 99 BasicBlockEdge(const BasicBlock *Start_, const BasicBlock *End_) : in BasicBlockEdge() 102 BasicBlockEdge(const std::pair<BasicBlock *, BasicBlock *> &Pair) in BasicBlockEdge() argument 105 BasicBlockEdge(const std::pair<const BasicBlock *, const BasicBlock *> &Pair) in BasicBlockEdge() argument 108 const BasicBlock *getStart() const { in getStart() [all …]
|
H A D | CFG.h | 118 inline bool pred_empty(const BasicBlock *BB) { in pred_empty() 126 inline pred_range predecessors(BasicBlock *BB) { in predecessors() 280 inline bool succ_empty(const BasicBlock *BB) { in succ_empty() 286 inline succ_range successors(BasicBlock *BB) { in successors() 300 template <> struct GraphTraits<BasicBlock*> { 301 using NodeRef = BasicBlock *; 310 using NodeRef = const BasicBlock *; 325 using NodeRef = BasicBlock *; 334 using NodeRef = const BasicBlock *; 367 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 | 46 class BasicBlock; variable 3167 BranchInst(BasicBlock *IfTrue, BasicBlock *IfFalse, Value *Cond, 3169 BranchInst(BasicBlock *IfTrue, BasicBlock *InsertAtEnd); 3170 BranchInst(BasicBlock *IfTrue, BasicBlock *IfFalse, Value *Cond, 3189 ptrdiff_t, BasicBlock *, BasicBlock *> { 3192 BasicBlock *operator*() const { return cast<BasicBlock>(*I); } 3205 const BasicBlock *operator*() const { return cast<BasicBlock>(*I); } 3214 static BranchInst *Create(BasicBlock *IfTrue, BasicBlock *IfFalse, 3223 static BranchInst *Create(BasicBlock *IfTrue, BasicBlock *IfFalse, 3734 ptrdiff_t, BasicBlock *, BasicBlock *> { [all …]
|
/freebsd/contrib/llvm-project/llvm/include/llvm/Transforms/Scalar/ |
H A D | JumpThreading.h | 31 class BasicBlock; variable 116 void updateSSA(BasicBlock *BB, BasicBlock *NewBB, 125 void threadEdge(BasicBlock *BB, const SmallVectorImpl<BasicBlock *> &PredBBs, 128 BasicBlock *BB, const SmallVectorImpl<BasicBlock *> &PredBBs); 144 Constant *evaluateOnPredecessorEdge(BasicBlock *BB, BasicBlock *PredPredBB, 147 void threadThroughTwoBasicBlocks(BasicBlock *PredPredBB, BasicBlock *PredBB, 148 BasicBlock *BB, BasicBlock *SuccBB); 158 void unfoldSelectInstr(BasicBlock *Pred, BasicBlock *BB, SelectInst *SI, 169 BasicBlock *splitBlockPreds(BasicBlock *BB, ArrayRef<BasicBlock *> Preds, 171 void updateBlockFreqAndEdgeWeight(BasicBlock *PredBB, BasicBlock *BB, [all …]
|
/freebsd/contrib/llvm-project/llvm/include/llvm/Transforms/Utils/ |
H A D | BasicBlockUtils.h | 127 void ReplaceInstWithInst(BasicBlock *BB, BasicBlock::iterator &BI, 230 SplitCriticalEdge(BasicBlock *Src, BasicBlock *Dst, 251 BasicBlock *SplitEdge(BasicBlock *From, BasicBlock *To, 261 void updatePhiNodes(BasicBlock *DestBB, BasicBlock *OldPred, 266 BasicBlock *ehAwareSplitEdge(BasicBlock *BB, BasicBlock *Succ, 283 BasicBlock *SplitBlock(BasicBlock *Old, BasicBlock::iterator SplitPt, DominatorTree *DT, 302 BasicBlock *SplitBlock(BasicBlock *Old, BasicBlock::iterator SplitPt, 318 BasicBlock *splitBlockBefore(BasicBlock *Old, BasicBlock::iterator SplitPt, 343 BasicBlock *SplitBlockPredecessors(BasicBlock *BB, ArrayRef<BasicBlock *> Preds, 363 BasicBlock *SplitBlockPredecessors(BasicBlock *BB, ArrayRef<BasicBlock *> Preds, [all …]
|
H A D | CodeExtractor.h | 26 class BasicBlock; variable 55 DenseSet<BasicBlock *> SideEffectingBlocks; 57 void findSideEffectInfoForBlock(BasicBlock &BB); 98 BasicBlock *AllocationBlock; 104 SetVector<BasicBlock *> Blocks; 110 SmallVector<BasicBlock *, 4> OldTargets; 221 BasicBlock *&ExitBlock) const; 231 BasicBlock *findOrCreateBlockForHoisting(BasicBlock *CommonExitBlock); 257 BasicBlock *header, 258 BasicBlock *newRootNode, BasicBlock *newHeader, [all …]
|
H A D | LoopConstrainer.h | 18 class BasicBlock; variable 37 BasicBlock *Header = nullptr; 38 BasicBlock *Latch = nullptr; 43 BasicBlock *LatchExit = nullptr; 69 Result.Latch = cast<BasicBlock>(Map(Latch)); in map() 113 std::vector<BasicBlock *> Blocks; 125 BasicBlock *PseudoExit = nullptr; 126 BasicBlock *ExitSelector = nullptr; 172 BasicBlock *createPreheader(const LoopStructure &LS, BasicBlock *OldPreheader, 200 BasicBlock *OriginalPreheader = nullptr; [all …]
|
/freebsd/contrib/llvm-project/llvm/lib/IR/ |
H A D | BasicBlock.cpp | 248 BasicBlock::~BasicBlock() { in ~BasicBlock() 315 iplist<BasicBlock>::iterator BasicBlock::eraseFromParent() { in eraseFromParent() 323 void BasicBlock::moveAfter(BasicBlock *MovePos) { in moveAfter() 489 const BasicBlock *BasicBlock::getSinglePredecessor() const { in getSinglePredecessor() 519 const BasicBlock *BasicBlock::getSingleSuccessor() const { in getSingleSuccessor() 527 const BasicBlock *BasicBlock::getUniqueSuccessor() const { in getUniqueSuccessor() 546 void BasicBlock::removePredecessor(BasicBlock *Pred, in removePredecessor() 676 BasicBlock::iterator BasicBlock::erase(BasicBlock::iterator FromIt, in erase() 681 void BasicBlock::replacePhiUsesWith(BasicBlock *Old, BasicBlock *New) { in replacePhiUsesWith() 837 void BasicBlock::spliceDebugInfo(BasicBlock::iterator Dest, BasicBlock *Src, in spliceDebugInfo() [all …]
|
H A D | Dominators.cpp | 90 DomTreeBuilder::BBDomTree &DT, BasicBlock *From, BasicBlock *To); 92 DomTreeBuilder::BBPostDomTree &DT, BasicBlock *From, BasicBlock *To); 95 DomTreeBuilder::BBDomTree &DT, BasicBlock *From, BasicBlock *To); 97 DomTreeBuilder::BBPostDomTree &DT, BasicBlock *From, BasicBlock *To); 145 const BasicBlock *DefBB = Def->getParent(); in dominates() 204 const BasicBlock *Start = BBE.getStart(); in dominates() 205 const BasicBlock *End = BBE.getEnd(); in dominates() 260 const BasicBlock *UseBB; in dominates() 282 const BasicBlock *UseBB; in dominates() 346 BasicBlock *BB1 = I1->getParent(); in findNearestCommonDominator() [all …]
|
/freebsd/contrib/llvm-project/llvm/include/llvm/Analysis/ |
H A D | MemorySSAUpdater.h | 44 class BasicBlock; variable 89 void removeEdge(BasicBlock *From, BasicBlock *To); 109 void updateForClonedBlockIntoPred(BasicBlock *BB, BasicBlock *P1, 117 ArrayRef<BasicBlock *> ExitBlocks, 145 void moveAllAfterSpliceBlocks(BasicBlock *From, BasicBlock *To, 161 void moveAllAfterMergeBlocks(BasicBlock *From, BasicBlock *To, 169 BasicBlock *Old, BasicBlock *New, ArrayRef<BasicBlock *> Preds, 247 void moveAllAccesses(BasicBlock *From, BasicBlock *To, Instruction *Start); 251 getPreviousDefFromEnd(BasicBlock *, 254 getPreviousDefRecursive(BasicBlock *, [all …]
|
H A D | BranchProbabilityInfo.h | 174 bool isEdgeHot(const BasicBlock *Src, const BasicBlock *Dst) const; 190 void setEdgeProbability(const BasicBlock *Src, 197 void copyEdgeProbabilities(BasicBlock *Src, BasicBlock *Dst); 212 void eraseBlock(const BasicBlock *BB); 226 using SccMap = DenseMap<const BasicBlock *, int>; 246 int getSCCNum(const BasicBlock *BB) const; 285 BPI->eraseBlock(cast<BasicBlock>(getValPtr())); in deleted() 305 BasicBlock *getBlock() { return const_cast<BasicBlock *>(BB); } in getBlock() 317 const BasicBlock *const BB = nullptr; 418 bool calcMetadataWeights(const BasicBlock *BB); [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/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() 148 for (BasicBlock *Pred : Preds) { in FlattenParallelAndOr() 233 BasicBlock *PS1 = TBB->getSuccessor(0); in FlattenParallelAndOr() 278 BasicBlock *CB; in FlattenParallelAndOr() 320 bool FlattenCFGOpt::CompareIfRegionBlock(BasicBlock *Block1, BasicBlock *Block2, in CompareIfRegionBlock() 414 BasicBlock *IfTrue2, *IfFalse2; in MergeIfRegion() [all …]
|
H A D | BasicBlockUtils.cpp | 750 BasicBlock *llvm::SplitEdge(BasicBlock *BB, BasicBlock *Succ, DominatorTree *DT, in SplitEdge() 821 BasicBlock *llvm::ehAwareSplitEdge(BasicBlock *BB, BasicBlock *Succ, in ehAwareSplitEdge() 1016 static BasicBlock *SplitBlockImpl(BasicBlock *Old, BasicBlock::iterator SplitPt, in SplitBlockImpl() 1072 BasicBlock *llvm::SplitBlock(BasicBlock *Old, BasicBlock::iterator SplitPt, in SplitBlock() 1079 BasicBlock *llvm::SplitBlock(BasicBlock *Old, BasicBlock::iterator SplitPt, in SplitBlock() 1087 BasicBlock *llvm::splitBlockBefore(BasicBlock *Old, BasicBlock::iterator SplitPt, in splitBlockBefore() 1337 BasicBlock *NewBB = BasicBlock::Create( in SplitBlockPredecessorsImpl() 1406 BasicBlock *llvm::SplitBlockPredecessors(BasicBlock *BB, in SplitBlockPredecessors() 1414 BasicBlock *llvm::SplitBlockPredecessors(BasicBlock *BB, in SplitBlockPredecessors() 1933 static std::tuple<Value *, BasicBlock *, BasicBlock *> [all …]
|
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Scalar/ |
H A D | StructurizeCFG.cpp | 90 using BB2BBMap = DenseMap<BasicBlock *, BasicBlock *>; 284 void delPhiValues(BasicBlock *From, BasicBlock *To); 286 void addPhiValues(BasicBlock *From, BasicBlock *To); 300 BasicBlock *getNextFlow(BasicBlock *Dominator); 304 BasicBlock *needPostfix(BasicBlock *Flow, bool ExitUseAllowed); 442 BasicBlock *BB = N->getNodeAs<BasicBlock>(); in analyzeLoops() 628 void StructurizeCFG::delPhiValues(BasicBlock *From, BasicBlock *To) { in delPhiValues() 839 BasicBlock *BB = Node->getNodeAs<BasicBlock>(); in changeExit() 850 BasicBlock *StructurizeCFG::getNextFlow(BasicBlock *Dominator) { in getNextFlow() 854 BasicBlock *Flow = BasicBlock::Create(Context, FlowBlockName, in getNextFlow() [all …]
|
H A D | LoopSink.cpp | 81 for (BasicBlock *B : BBs) in adjustedSumFreq() 115 static SmallPtrSet<BasicBlock *, 2> 119 SmallPtrSet<BasicBlock *, 2> BBsToSinkInto; in findBBsToSinkInto() 134 for (BasicBlock *ColdestBB : ColdLoopBBs) { in findBBsToSinkInto() 136 for (BasicBlock *SinkedBB : BBsToSinkInto) in findBBsToSinkInto() 151 for (BasicBlock *BB : BBsToSinkInto) { in findBBsToSinkInto() 175 SmallPtrSet<BasicBlock *, 2> BBs; in sinkInstruction() 224 llvm::sort(SortedBBsToSinkInto, [&](BasicBlock *A, BasicBlock *B) { in sinkInstruction() 307 SmallVector<BasicBlock *, 10> ColdLoopBBs; in sinkLoopInvariantInstructions() 310 for (BasicBlock *B : L.blocks()) in sinkLoopInvariantInstructions() [all …]
|
H A D | DFAJumpThreading.cpp | 175 BasicBlock *EndBlock, StringRef NewBBName, BasicBlock **NewBlock, in createBasicBlockAndSinkSelectInst() 244 BasicBlock *TT = EndBlock; in unfold() 245 BasicBlock *FT = EndBlock; in unfold() 309 BasicBlock *BB; 708 BasicBlock *SwitchBlock; 996 BasicBlock *cloneBlockAndUpdatePredecessor(BasicBlock *BB, BasicBlock *PrevBB, in cloneBlockAndUpdatePredecessor() 1038 void updateSuccessorPhis(BasicBlock *BB, BasicBlock *ClonedBB, in updateSuccessorPhis() 1091 void updatePredecessor(BasicBlock *PrevBB, BasicBlock *OldBB, in updatePredecessor() 1203 BasicBlock *getClonedBB(BasicBlock *BB, const APInt &NextState, in getClonedBB() 1231 bool isPredecessor(BasicBlock *BB, BasicBlock *IncomingBB) { in isPredecessor() [all …]
|
/freebsd/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() 134 SmallVectorImpl<BasicBlock *> &Worklist, const BasicBlock *StopBB, in isPotentiallyReachableFromMany() 208 const BasicBlock *A, const BasicBlock *B, in isPotentiallyReachable() 225 SmallVector<BasicBlock*, 32> Worklist; in isPotentiallyReachable() [all …]
|
H A D | MemorySSAUpdater.cpp | 37 BasicBlock *BB, in getPreviousDefRecursive() 173 BasicBlock *BB, in getPreviousDefFromEnd() 531 void MemorySSAUpdater::removeEdge(BasicBlock *From, BasicBlock *To) { in removeEdge() 596 void MemorySSAUpdater::cloneUsesAndDefs(BasicBlock *BB, BasicBlock *NewBB, in cloneUsesAndDefs() 629 BasicBlock *Header, BasicBlock *Preheader, BasicBlock *BEBlock) { in updatePhisWhenInsertingUniqueBackedgeBlock() 706 BasicBlock *NewBlock = cast_or_null<BasicBlock>(VMap.lookup(BB)); in updateForClonedLoop() 732 BasicBlock *BB, BasicBlock *P1, const ValueToValueMapTy &VM) { in updateForClonedBlockIntoPred() 891 [&](const SmallSetVector<BasicBlock *, 2> &BBSet) -> BasicBlock * { in applyInsertUpdates() argument 901 [&](BasicBlock *PrevIDom, BasicBlock *CurrIDom, in applyInsertUpdates() 1187 void MemorySSAUpdater::moveAllAccesses(BasicBlock *From, BasicBlock *To, in moveAllAccesses() [all …]
|
/freebsd/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/contrib/llvm-project/llvm/include/llvm/Transforms/Instrumentation/ |
H A D | BlockCoverageInference.h | 26 class BasicBlock; variable 33 using BlockSet = SmallSetVector<const BasicBlock *, 4>; 38 bool shouldInstrumentBlock(const BasicBlock &BB) const; 42 BlockSet getDependencies(const BasicBlock &BB) const; 56 const DenseMap<const BasicBlock *, bool> *Coverage = nullptr) const; 64 DenseMap<const BasicBlock *, BlockSet> PredecessorDependencies; 68 DenseMap<const BasicBlock *, BlockSet> SuccessorDependencies; 75 void getReachableAvoiding(const BasicBlock &Start, const BasicBlock &Avoid, 78 static std::string getBlockNames(ArrayRef<const BasicBlock *> BBs); 80 return getBlockNames(ArrayRef<const BasicBlock *>(BBs.begin(), BBs.end())); in getBlockNames()
|
/freebsd/contrib/llvm-project/llvm/lib/Transforms/IPO/ |
H A D | PartialInlining.cpp | 174 BasicBlock *EntryBlock, BasicBlock *ExitBlock, in OutlineRegionInfo() 180 BasicBlock *ExitBlock; 370 [&ORE](SmallVectorImpl<BasicBlock *> &BlockList) -> BasicBlock * { in computeOutliningColdRegionsInfo() 524 auto IsSuccessor = [](BasicBlock *Succ, 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() 961 BasicBlock *NewE = cast<BasicBlock>(VMap[E]); in FunctionCloner() 990 BasicBlock *NewExitBlock = cast<BasicBlock>(VMap[RegionInfo.ExitBlock]); in FunctionCloner() [all …]
|