| /openbsd-src/gnu/llvm/llvm/lib/IR/ |
| H A D | BasicBlock.cpp | 29 ValueSymbolTable *BasicBlock::getValueSymbolTable() { in getValueSymbolTable() 35 LLVMContext &BasicBlock::getContext() const { in getContext() 39 template <> void llvm::invalidateParentIListOrdering(BasicBlock *BB) { in invalidateParentIListOrdering() 47 BasicBlock::BasicBlock(LLVMContext &C, const Twine &Name, Function *NewParent, in BasicBlock() function in BasicBlock 48 BasicBlock *InsertBefore) in BasicBlock() 60 void BasicBlock::insertInto(Function *NewParent, BasicBlock *InsertBefore) { in insertInto() 70 BasicBlock::~BasicBlock() { in ~BasicBlock() 96 void BasicBlock::setParent(Function *parent) { in setParent() 101 iterator_range<filter_iterator<BasicBlock::const_iterator, 103 BasicBlock::instructionsWithoutDebug(bool SkipPseudoOp) const { in instructionsWithoutDebug() [all …]
|
| H A D | Dominators.cpp | 73 template class llvm::DomTreeNodeBase<BasicBlock>; 74 template class llvm::DominatorTreeBase<BasicBlock, false>; // DomTreeBase 75 template class llvm::DominatorTreeBase<BasicBlock, true>; // PostDomTreeBase 77 template class llvm::cfg::Update<BasicBlock *>; 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); 122 bool DominatorTree::dominates(const BasicBlock *BB, const Use &U) const { in dominates() 144 const BasicBlock *UseBB = User->getParent(); in dominates() [all …]
|
| /openbsd-src/gnu/llvm/llvm/include/llvm/Transforms/Scalar/ |
| H A D | JumpThreading.h | 29 class BasicBlock; variable 53 using PredValueInfo = SmallVectorImpl<std::pair<Constant *, BasicBlock *>>; 54 using PredValueInfoTy = SmallVector<std::pair<Constant *, BasicBlock *>, 8>; 88 SmallPtrSet<const BasicBlock *, 16> LoopHeaders; 90 SmallSet<AssertingVH<const BasicBlock>, 16> LoopHeaders; 113 bool processBlock(BasicBlock *BB); 114 bool maybeMergeBasicBlockIntoOnlyPred(BasicBlock *BB); 115 void updateSSA(BasicBlock *BB, BasicBlock *NewBB, 117 DenseMap<Instruction *, Value *> cloneInstructions(BasicBlock::iterator BI, 118 BasicBlock::iterator BE, [all …]
|
| /openbsd-src/gnu/llvm/llvm/include/llvm/IR/ |
| H A D | BasicBlock.h | 55 class BasicBlock final : public Value, // Basic blocks are data objects also 56 public ilist_node_with_parent<BasicBlock, Function> { 62 friend class SymbolTableListTraits<BasicBlock>; 74 explicit BasicBlock(LLVMContext &C, const Twine &Name = "", 76 BasicBlock *InsertBefore = nullptr); 79 BasicBlock(const BasicBlock &) = delete; 80 BasicBlock &operator=(const BasicBlock &) = delete; 81 ~BasicBlock(); 95 friend BasicBlock::iterator Instruction::insertInto(BasicBlock *BB, 96 BasicBlock::iterator It); [all …]
|
| H A D | Dominators.h | 50 extern template class DomTreeNodeBase<BasicBlock>; 51 extern template class DominatorTreeBase<BasicBlock, false>; // DomTree 52 extern template class DominatorTreeBase<BasicBlock, true>; // PostDomTree 54 extern template class cfg::Update<BasicBlock *>; 57 using BBDomTree = DomTreeBase<BasicBlock>; 58 using BBPostDomTree = PostDomTreeBase<BasicBlock>; 60 using BBUpdates = ArrayRef<llvm::cfg::Update<BasicBlock *>>; 62 using BBDomTreeGraphDiff = GraphDiff<BasicBlock *, false>; 63 using BBPostDomTreeGraphDiff = GraphDiff<BasicBlock *, true>; 71 extern template void InsertEdge<BBDomTree>(BBDomTree &DT, BasicBlock *From, [all …]
|
| H A D | CFG.h | 104 using pred_iterator = PredIterator<BasicBlock, Value::user_iterator>; 106 PredIterator<const BasicBlock, Value::const_user_iterator>; 110 inline pred_iterator pred_begin(BasicBlock *BB) { return pred_iterator(BB); } in pred_begin() 111 inline const_pred_iterator pred_begin(const BasicBlock *BB) { in pred_begin() 114 inline pred_iterator pred_end(BasicBlock *BB) { return pred_iterator(BB, true);} in pred_end() 115 inline const_pred_iterator pred_end(const BasicBlock *BB) { in pred_end() 118 inline bool pred_empty(const BasicBlock *BB) { in pred_empty() 123 inline unsigned pred_size(const BasicBlock *BB) { in pred_size() 126 inline pred_range predecessors(BasicBlock *BB) { in predecessors() 129 inline const_pred_range predecessors(const BasicBlock *BB) { in predecessors() [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 78 const Twine &Name, BasicBlock *InsertAtEnd); 83 const Twine &Name, BasicBlock *InsertAtEnd); 88 const Twine &Name, BasicBlock *InsertAtEnd); 196 LoadInst(Type *Ty, Value *Ptr, const Twine &NameStr, BasicBlock *InsertAtEnd); 200 BasicBlock *InsertAtEnd); 204 Align Align, BasicBlock *InsertAtEnd); 211 BasicBlock *InsertAtEnd); 319 StoreInst(Value *Val, Value *Ptr, BasicBlock *InsertAtEnd); 321 StoreInst(Value *Val, Value *Ptr, bool isVolatile, BasicBlock *InsertAtEnd); [all …]
|
| /openbsd-src/gnu/llvm/llvm/include/llvm/Transforms/Utils/ |
| H A D | BasicBlockUtils.h | 48 void detachDeadBlocks(ArrayRef <BasicBlock *> BBs, 53 void DeleteDeadBlock(BasicBlock *BB, DomTreeUpdater *DTU = nullptr, 62 void DeleteDeadBlocks(ArrayRef <BasicBlock *> BBs, 76 bool FoldSingleEntryPHINodes(BasicBlock *BB, 83 bool DeleteDeadPHIs(BasicBlock *BB, const TargetLibraryInfo *TLI = nullptr, 95 bool MergeBlockIntoPredecessor(BasicBlock *BB, DomTreeUpdater *DTU = nullptr, 110 SmallPtrSetImpl<BasicBlock *> &MergeBlocks, Loop *L = nullptr, 116 bool RemoveRedundantDbgInstrs(BasicBlock *BB); 120 void ReplaceInstWithValue(BasicBlock::iterator &BI, Value *V); 126 void ReplaceInstWithInst(BasicBlock *BB, BasicBlock::iterator &BI, [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); 69 bool doesBlockContainClobberOfAddr(BasicBlock &BB, AllocaInst *Addr) const; 98 BasicBlock *AllocationBlock; 104 SetVector<BasicBlock *> Blocks; 110 SmallVector<BasicBlock *, 4> OldTargets; 131 CodeExtractor(ArrayRef<BasicBlock *> BBs, DominatorTree *DT = nullptr, 136 BasicBlock *AllocationBlock = nullptr, [all …]
|
| /openbsd-src/gnu/llvm/llvm/include/llvm/Analysis/ |
| H A D | MemorySSAUpdater.h | 44 class BasicBlock; variable 52 using CFGUpdate = cfg::Update<BasicBlock *>; 62 SmallPtrSet<BasicBlock *, 8> VisitedBlocks; 89 void removeEdge(BasicBlock *From, BasicBlock *To); 93 void removeDuplicatePhiEdgesBetween(const BasicBlock *From, 94 const BasicBlock *To); 96 void updatePhisWhenInsertingUniqueBackedgeBlock(BasicBlock *LoopHeader, 97 BasicBlock *LoopPreheader, 98 BasicBlock *BackedgeBlock); 104 ArrayRef<BasicBlock *> ExitBlocks, [all …]
|
| H A D | BranchProbabilityInfo.h | 151 BranchProbability getEdgeProbability(const BasicBlock *Src, 157 BranchProbability getEdgeProbability(const BasicBlock *Src, 158 const BasicBlock *Dst) const; 160 BranchProbability getEdgeProbability(const BasicBlock *Src, 167 bool isEdgeHot(const BasicBlock *Src, const BasicBlock *Dst) const; 174 raw_ostream &printEdgeProbability(raw_ostream &OS, const BasicBlock *Src, 175 const BasicBlock *Dst) const; 183 void setEdgeProbability(const BasicBlock *Src, 190 void copyEdgeProbabilities(BasicBlock *Src, BasicBlock *Dst); 202 void eraseBlock(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>; 27 ChildrenGetterTy(const GraphDiff<BasicBlock *, IsPostDom> *GD) : GD(GD) { 33 const GraphDiff<BasicBlock *, IsPostDom> *GD = nullptr; 39 class IDFCalculator final : public IDFCalculatorBase<BasicBlock, IsPostDom> { 42 typename llvm::IDFCalculatorBase<BasicBlock, IsPostDom>; 45 IDFCalculator(DominatorTreeBase<BasicBlock, IsPostDom> &DT) 48 IDFCalculator(DominatorTreeBase<BasicBlock, IsPostDom> &DT, [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; 45 using node_iterator = std::vector<BasicBlock*>::iterator; 47 inline Interval(BasicBlock *Header) : HeaderNode(Header) { in Interval() 51 inline BasicBlock *getHeaderNode() const { return HeaderNode; } in getHeaderNode() 54 std::vector<BasicBlock*> Nodes; 59 std::vector<BasicBlock*> Successors; 63 std::vector<BasicBlock*> Predecessors; [all …]
|
| /openbsd-src/gnu/llvm/llvm/lib/Transforms/Utils/ |
| H A D | FlattenCFG.cpp | 40 bool FlattenParallelAndOr(BasicBlock *BB, IRBuilder<> &Builder); 45 bool MergeIfRegion(BasicBlock *BB, IRBuilder<> &Builder); 52 bool CompareIfRegionBlock(BasicBlock *Block1, BasicBlock *Block2, 53 BasicBlock *Head2); 58 bool run(BasicBlock *BB); 136 bool FlattenCFGOpt::FlattenParallelAndOr(BasicBlock *BB, IRBuilder<> &Builder) { in FlattenParallelAndOr() 141 BasicBlock *LastCondBlock = nullptr; in FlattenParallelAndOr() 142 BasicBlock *FirstCondBlock = nullptr; in FlattenParallelAndOr() 143 BasicBlock *UnCondBlock = nullptr; in FlattenParallelAndOr() 147 SmallPtrSet<BasicBlock *, 16> Preds(pred_begin(BB), pred_end(BB)); in FlattenParallelAndOr() [all …]
|
| H A D | BasicBlockUtils.cpp | 62 ArrayRef<BasicBlock *> BBs, in detachDeadBlocks() 68 SmallPtrSet<BasicBlock *, 4> UniqueSuccessors; in detachDeadBlocks() 69 for (BasicBlock *Succ : successors(BB)) { in detachDeadBlocks() 95 void llvm::DeleteDeadBlock(BasicBlock *BB, DomTreeUpdater *DTU, in DeleteDeadBlock() 100 void llvm::DeleteDeadBlocks(ArrayRef <BasicBlock *> BBs, DomTreeUpdater *DTU, in DeleteDeadBlocks() 104 SmallPtrSet<BasicBlock *, 4> Dead(BBs.begin(), BBs.end()); in DeleteDeadBlocks() 107 for (BasicBlock *Pred : predecessors(BB)) in DeleteDeadBlocks() 117 for (BasicBlock *BB : BBs) in DeleteDeadBlocks() 126 df_iterator_default_set<BasicBlock*> Reachable; in EliminateUnreachableBlocks() 129 for (BasicBlock *BB : depth_first_ext(&F, Reachable)) in EliminateUnreachableBlocks() [all …]
|
| H A D | LoopUnrollRuntime.cpp | 73 BasicBlock *PrologExit, in ConnectProlog() 74 BasicBlock *OriginalLoopLatchExit, in ConnectProlog() 75 BasicBlock *PreHeader, BasicBlock *NewPreHeader, in ConnectProlog() 90 BasicBlock *Latch = L->getLoopLatch(); in ConnectProlog() 92 BasicBlock *PrologLatch = cast<BasicBlock>(VMap[Latch]); in ConnectProlog() 99 for (BasicBlock *Succ : successors(Latch)) { in ConnectProlog() 143 SmallVector<BasicBlock *, 4> PrologExitPreds; in ConnectProlog() 146 for (BasicBlock *PredBB : predecessors(PrologExit)) in ConnectProlog() 168 SmallVector<BasicBlock *, 4> Preds(predecessors(OriginalLoopLatchExit)); in ConnectProlog() 193 static void ConnectEpilog(Loop *L, Value *ModVal, BasicBlock *NewExit, in ConnectEpilog() [all …]
|
| /openbsd-src/gnu/llvm/llvm/lib/Transforms/Scalar/ |
| H A D | StructurizeCFG.cpp | 74 using BBValuePair = std::pair<BasicBlock *, Value *>; 77 using BBVector = SmallVector<BasicBlock *, 8>; 81 using BBSet = SmallPtrSet<BasicBlock *, 8>; 84 using BB2BBVecMap = MapVector<BasicBlock *, BBVector>; 86 using BBPhiMap = DenseMap<BasicBlock *, PhiMap>; 87 using BBPredicates = DenseMap<BasicBlock *, Value *>; 88 using PredMap = DenseMap<BasicBlock *, BBPredicates>; 89 using BB2BBMap = DenseMap<BasicBlock *, BasicBlock *>; 91 using BranchDebugLocMap = DenseMap<BasicBlock *, DebugLoc>; 153 BasicBlock *Result = nullptr; [all …]
|
| H A D | DFAJumpThreading.cpp | 133 std::vector<BasicBlock *> *NewBBs); 156 std::vector<BasicBlock *> NewBBs; in unfoldSelectInstrs() 221 BasicBlock *EndBlock, StringRef NewBBName, BasicBlock **NewBlock, in createBasicBlockAndSinkSelectInst() 223 std::vector<BasicBlock *> *NewBBs) { in createBasicBlockAndSinkSelectInst() 227 *NewBlock = BasicBlock::Create(SI->getContext(), NewBBName, in createBasicBlockAndSinkSelectInst() 245 std::vector<BasicBlock *> *NewBBs) { in unfold() 248 BasicBlock *StartBlock = SI->getParent(); in unfold() 249 BasicBlock *EndBlock = SIUse->getParent(); in unfold() 258 BasicBlock *TrueBlock = nullptr; in unfold() 259 BasicBlock *FalseBlock = nullptr; in unfold() [all …]
|
| H A D | LoopSink.cpp | 80 static BlockFrequency adjustedSumFreq(SmallPtrSetImpl<BasicBlock *> &BBs, in adjustedSumFreq() 83 for (BasicBlock *B : BBs) in adjustedSumFreq() 117 static SmallPtrSet<BasicBlock *, 2> 118 findBBsToSinkInto(const Loop &L, const SmallPtrSetImpl<BasicBlock *> &UseBBs, in findBBsToSinkInto() 119 const SmallVectorImpl<BasicBlock *> &ColdLoopBBs, in findBBsToSinkInto() 121 SmallPtrSet<BasicBlock *, 2> BBsToSinkInto; in findBBsToSinkInto() 126 SmallPtrSet<BasicBlock *, 2> BBsDominatedByColdestBB; in findBBsToSinkInto() 136 for (BasicBlock *ColdestBB : ColdLoopBBs) { in findBBsToSinkInto() 138 for (BasicBlock *SinkedBB : BBsToSinkInto) in findBBsToSinkInto() 145 for (BasicBlock *DominatedBB : BBsDominatedByColdestBB) { in findBBsToSinkInto() [all …]
|
| /openbsd-src/gnu/llvm/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() 41 SmallVector<std::pair<const BasicBlock *, const_succ_iterator>, 8> VisitStack; in FindFunctionBackedges() 42 SmallPtrSet<const BasicBlock*, 8> InStack; in FindFunctionBackedges() 48 std::pair<const BasicBlock *, const_succ_iterator> &Top = VisitStack.back(); in FindFunctionBackedges() 49 const BasicBlock *ParentBB = Top.first; in FindFunctionBackedges() 79 unsigned llvm::GetSuccessorNumber(const BasicBlock *BB, in GetSuccessorNumber() 80 const BasicBlock *Succ) { in GetSuccessorNumber() 101 bool llvm::isCriticalEdge(const Instruction *TI, const BasicBlock *Dest, in isCriticalEdge() [all …]
|
| H A D | MemorySSAUpdater.cpp | 37 BasicBlock *BB, in getPreviousDefRecursive() 38 DenseMap<BasicBlock *, TrackingVH<MemoryAccess>> &CachedPreviousDef) { in getPreviousDefRecursive() argument 49 if (BasicBlock *Pred = BB->getUniquePredecessor()) { in getPreviousDefRecursive() 140 DenseMap<BasicBlock *, TrackingVH<MemoryAccess>> CachedPreviousDef; in getPreviousDef() 173 BasicBlock *BB, in getPreviousDefFromEnd() 174 DenseMap<BasicBlock *, TrackingVH<MemoryAccess>> &CachedPreviousDef) { in getPreviousDefFromEnd() argument 264 SmallPtrSet<BasicBlock *, 16> Visited; in insertUse() 265 BasicBlock *StartBlock = MU->getBlock(); in insertUse() 285 static void setMemoryPhiValueForBlock(MemoryPhi *MP, const BasicBlock *BB, in setMemoryPhiValueForBlock() 293 for (const BasicBlock *BlockBB : llvm::drop_begin(MP->blocks(), i)) { in setMemoryPhiValueForBlock() [all …]
|
| /openbsd-src/gnu/llvm/clang/lib/Analysis/ |
| H A D | ThreadSafetyTIL.cpp | 58 unsigned BasicBlock::addPredecessor(BasicBlock *Pred) { in addPredecessor() 71 void BasicBlock::reservePredecessors(unsigned NumPreds) { in reservePredecessors() 152 unsigned BasicBlock::renumberInstrs(unsigned ID) { in renumberInstrs() 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() 266 static inline void computeNodeSize(BasicBlock *B, in computeNodeSize() [all …]
|
| /openbsd-src/gnu/llvm/llvm/lib/CodeGen/ |
| H A D | WinEHPrepare.cpp | 79 insertPHIStore(BasicBlock *PredBlock, Value *PredVal, AllocaInst *SpillSlot, 80 SmallVectorImpl<std::pair<BasicBlock *, Value *>> &Worklist); 83 DenseMap<BasicBlock *, Value *> &Loads, Function &F); 99 DenseMap<BasicBlock *, ColorVector> BlockColors; 100 MapVector<BasicBlock *, std::vector<BasicBlock *>> FuncletBlocks; 133 const BasicBlock *BB) { in addUnwindMapEntry() 168 static BasicBlock *getCleanupRetUnwindDest(const CleanupPadInst *CleanupPad) { in getCleanupRetUnwindDest() 178 DenseMap<BasicBlock *, ColorVector> BlockColors = colorEHFunclets(*F); in calculateStateNumbersForInvokes() 179 for (BasicBlock &BB : *F) { in calculateStateNumbersForInvokes() 186 BasicBlock *FuncletEntryBB = BBColors.front(); in calculateStateNumbersForInvokes() [all …]
|
| /openbsd-src/gnu/llvm/llvm/lib/Transforms/IPO/ |
| H A D | PartialInlining.cpp | 157 SmallVector<BasicBlock *, 4> Entries; 160 BasicBlock *ReturnBlock = nullptr; 163 BasicBlock *NonReturnBlock = nullptr; 166 SmallVector<BasicBlock *, 4> ReturnBlockPreds; 174 OutlineRegionInfo(ArrayRef<BasicBlock *> Region, in OutlineRegionInfo() 175 BasicBlock *EntryBlock, BasicBlock *ExitBlock, in OutlineRegionInfo() 176 BasicBlock *ReturnBlock) in OutlineRegionInfo() 179 SmallVector<BasicBlock *, 8> Region; 180 BasicBlock *EntryBlock; 181 BasicBlock *ExitBlock; [all …]
|