/netbsd-src/external/apache2/llvm/dist/llvm/include/llvm/Transforms/Scalar/ |
H A D | JumpThreading.h | 32 class BasicBlock; variable 55 using PredValueInfo = SmallVectorImpl<std::pair<Constant *, BasicBlock *>>; 56 using PredValueInfoTy = SmallVector<std::pair<Constant *, BasicBlock *>, 8>; 89 SmallPtrSet<const BasicBlock *, 16> LoopHeaders; 91 SmallSet<AssertingVH<const BasicBlock>, 16> LoopHeaders; 115 bool processBlock(BasicBlock *BB); 116 bool maybeMergeBasicBlockIntoOnlyPred(BasicBlock *BB); 117 void updateSSA(BasicBlock *BB, BasicBlock *NewBB, 119 DenseMap<Instruction *, Value *> cloneInstructions(BasicBlock::iterator BI, 120 BasicBlock::iterator BE, [all …]
|
/netbsd-src/external/apache2/llvm/dist/llvm/lib/IR/ |
H A D | BasicBlock.cpp | 26 ValueSymbolTable *BasicBlock::getValueSymbolTable() { in getValueSymbolTable() 32 LLVMContext &BasicBlock::getContext() const { in getContext() 36 template <> void llvm::invalidateParentIListOrdering(BasicBlock *BB) { in invalidateParentIListOrdering() 44 BasicBlock::BasicBlock(LLVMContext &C, const Twine &Name, Function *NewParent, in BasicBlock() function in BasicBlock 45 BasicBlock *InsertBefore) in BasicBlock() 57 void BasicBlock::insertInto(Function *NewParent, BasicBlock *InsertBefore) { in insertInto() 67 BasicBlock::~BasicBlock() { in ~BasicBlock() 93 void BasicBlock::setParent(Function *parent) { in setParent() 98 iterator_range<filter_iterator<BasicBlock::const_iterator, 100 BasicBlock::instructionsWithoutDebug(bool SkipPseudoOp) const { in instructionsWithoutDebug() [all …]
|
/netbsd-src/external/apache2/llvm/dist/llvm/include/llvm/Transforms/Utils/ |
H A D | BasicBlockUtils.h | 49 void DetatchDeadBlocks(ArrayRef <BasicBlock *> BBs, 54 void DeleteDeadBlock(BasicBlock *BB, DomTreeUpdater *DTU = nullptr, 63 void DeleteDeadBlocks(ArrayRef <BasicBlock *> BBs, 77 bool FoldSingleEntryPHINodes(BasicBlock *BB, 84 bool DeleteDeadPHIs(BasicBlock *BB, const TargetLibraryInfo *TLI = nullptr, 94 bool MergeBlockIntoPredecessor(BasicBlock *BB, DomTreeUpdater *DTU = nullptr, 108 SmallPtrSetImpl<BasicBlock *> &MergeBlocks, Loop *L = nullptr, 114 bool RemoveRedundantDbgInstrs(BasicBlock *BB, bool RemovePseudoOp = false); 118 void ReplaceInstWithValue(BasicBlock::InstListType &BIL, 119 BasicBlock::iterator &BI, Value *V); [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; 99 SetVector<BasicBlock *> Blocks; 119 CodeExtractor(ArrayRef<BasicBlock *> BBs, DominatorTree *DT = nullptr, 187 BasicBlock *&ExitBlock) const; 197 BasicBlock *findOrCreateBlockForHoisting(BasicBlock *CommonExitBlock); 209 Instruction *Addr, BasicBlock *ExitBlock) const; [all …]
|
/netbsd-src/external/apache2/llvm/dist/llvm/include/llvm/IR/ |
H A D | BasicBlock.h | 58 class BasicBlock final : public Value, // Basic blocks are data objects also 59 public ilist_node_with_parent<BasicBlock, Function> { 65 friend class SymbolTableListTraits<BasicBlock>; 77 explicit BasicBlock(LLVMContext &C, const Twine &Name = "", 79 BasicBlock *InsertBefore = nullptr); 82 BasicBlock(const BasicBlock &) = delete; 83 BasicBlock &operator=(const BasicBlock &) = delete; 84 ~BasicBlock(); 100 static BasicBlock *Create(LLVMContext &Context, const Twine &Name = "", 102 BasicBlock *InsertBefore = nullptr) { [all …]
|
H A D | Dominators.h | 35 extern template class DomTreeNodeBase<BasicBlock>; 36 extern template class DominatorTreeBase<BasicBlock, false>; // DomTree 37 extern template class DominatorTreeBase<BasicBlock, true>; // PostDomTree 39 extern template class cfg::Update<BasicBlock *>; 42 using BBDomTree = DomTreeBase<BasicBlock>; 43 using BBPostDomTree = PostDomTreeBase<BasicBlock>; 45 using BBUpdates = ArrayRef<llvm::cfg::Update<BasicBlock *>>; 47 using BBDomTreeGraphDiff = GraphDiff<BasicBlock *, false>; 48 using BBPostDomTreeGraphDiff = GraphDiff<BasicBlock *, true>; 56 extern template void InsertEdge<BBDomTree>(BBDomTree &DT, BasicBlock *From, [all …]
|
H A D | CFG.h | 34 class BasicBlock; variable 105 using pred_iterator = PredIterator<BasicBlock, Value::user_iterator>; 107 PredIterator<const BasicBlock, Value::const_user_iterator>; 111 inline pred_iterator pred_begin(BasicBlock *BB) { return pred_iterator(BB); } in pred_begin() 112 inline const_pred_iterator pred_begin(const BasicBlock *BB) { in pred_begin() 115 inline pred_iterator pred_end(BasicBlock *BB) { return pred_iterator(BB, true);} in pred_end() 116 inline const_pred_iterator pred_end(const BasicBlock *BB) { in pred_end() 119 inline bool pred_empty(const BasicBlock *BB) { in pred_empty() 124 inline unsigned pred_size(const BasicBlock *BB) { in pred_size() 127 inline pred_range predecessors(BasicBlock *BB) { in predecessors() [all …]
|
H A D | Instructions.h | 81 const Twine &Name, BasicBlock *InsertAtEnd); 86 const Twine &Name, BasicBlock *InsertAtEnd); 91 const Twine &Name, BasicBlock *InsertAtEnd); 193 LoadInst(Type *Ty, Value *Ptr, const Twine &NameStr, BasicBlock *InsertAtEnd); 197 BasicBlock *InsertAtEnd); 201 Align Align, BasicBlock *InsertAtEnd); 208 BasicBlock *InsertAtEnd); 321 StoreInst(Value *Val, Value *Ptr, BasicBlock *InsertAtEnd); 323 StoreInst(Value *Val, Value *Ptr, bool isVolatile, BasicBlock *InsertAtEnd); 327 BasicBlock *InsertAtEnd); [all …]
|
/netbsd-src/external/apache2/llvm/dist/llvm/include/llvm/Analysis/ |
H A D | MemorySSAUpdater.h | 46 class BasicBlock; variable 54 using CFGUpdate = cfg::Update<BasicBlock *>; 64 SmallPtrSet<BasicBlock *, 8> VisitedBlocks; 91 void removeEdge(BasicBlock *From, BasicBlock *To); 95 void removeDuplicatePhiEdgesBetween(const BasicBlock *From, 96 const BasicBlock *To); 98 void updatePhisWhenInsertingUniqueBackedgeBlock(BasicBlock *LoopHeader, 99 BasicBlock *LoopPreheader, 100 BasicBlock *BackedgeBlock); 106 ArrayRef<BasicBlock *> ExitBlocks, [all …]
|
H A D | BranchProbabilityInfo.h | 153 BranchProbability getEdgeProbability(const BasicBlock *Src, 159 BranchProbability getEdgeProbability(const BasicBlock *Src, 160 const BasicBlock *Dst) const; 162 BranchProbability getEdgeProbability(const BasicBlock *Src, 169 bool isEdgeHot(const BasicBlock *Src, const BasicBlock *Dst) const; 175 const BasicBlock *getHotSucc(const BasicBlock *BB) const; 182 raw_ostream &printEdgeProbability(raw_ostream &OS, const BasicBlock *Src, 183 const BasicBlock *Dst) const; 191 void setEdgeProbability(const BasicBlock *Src, 198 void copyEdgeProbabilities(BasicBlock *Src, BasicBlock *Dst); [all …]
|
H A D | DomTreeUpdater.h | 70 bool isBBPendingDeletion(BasicBlock *DelBB) const; 159 LLVM_ATTRIBUTE_DEPRECATED(void insertEdge(BasicBlock *From, BasicBlock *To), 170 LLVM_ATTRIBUTE_DEPRECATED(void insertEdgeRelaxed(BasicBlock *From, 171 BasicBlock *To), 181 LLVM_ATTRIBUTE_DEPRECATED(void deleteEdge(BasicBlock *From, BasicBlock *To), 192 LLVM_ATTRIBUTE_DEPRECATED(void deleteEdgeRelaxed(BasicBlock *From, 193 BasicBlock *To), 203 void deleteBB(BasicBlock *DelBB); 213 void callbackDeleteBB(BasicBlock *DelBB, 214 std::function<void(BasicBlock *)> Callback); [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 | CFG.h | 23 class BasicBlock; variable 37 SmallVectorImpl<std::pair<const BasicBlock *, const BasicBlock *> > & 43 unsigned GetSuccessorNumber(const BasicBlock *BB, const BasicBlock *Succ); 51 bool isCriticalEdge(const Instruction *TI, const BasicBlock *Succ, 71 const SmallPtrSetImpl<BasicBlock *> *ExclusionSet = nullptr, 81 const BasicBlock *From, const BasicBlock *To, 82 const SmallPtrSetImpl<BasicBlock *> *ExclusionSet = nullptr, 92 bool isPotentiallyReachableFromMany(SmallVectorImpl<BasicBlock *> &Worklist, 93 BasicBlock *StopBB, 107 SmallVectorImpl<BasicBlock *> &Worklist, BasicBlock *StopBB, [all …]
|
/netbsd-src/external/apache2/llvm/dist/llvm/lib/Transforms/Utils/ |
H A D | BasicBlockUtils.cpp | 56 ArrayRef<BasicBlock *> BBs, in DetatchDeadBlocks() 62 SmallPtrSet<BasicBlock *, 4> UniqueSuccessors; in DetatchDeadBlocks() 63 for (BasicBlock *Succ : successors(BB)) { in DetatchDeadBlocks() 89 void llvm::DeleteDeadBlock(BasicBlock *BB, DomTreeUpdater *DTU, in DeleteDeadBlock() 94 void llvm::DeleteDeadBlocks(ArrayRef <BasicBlock *> BBs, DomTreeUpdater *DTU, in DeleteDeadBlocks() 98 SmallPtrSet<BasicBlock *, 4> Dead(BBs.begin(), BBs.end()); in DeleteDeadBlocks() 101 for (BasicBlock *Pred : predecessors(BB)) in DeleteDeadBlocks() 111 for (BasicBlock *BB : BBs) in DeleteDeadBlocks() 120 df_iterator_default_set<BasicBlock*> Reachable; in EliminateUnreachableBlocks() 123 for (BasicBlock *BB : depth_first_ext(&F, Reachable)) in EliminateUnreachableBlocks() [all …]
|
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 | LoopUnrollRuntime.cpp | 71 BasicBlock *PrologExit, in ConnectProlog() 72 BasicBlock *OriginalLoopLatchExit, in ConnectProlog() 73 BasicBlock *PreHeader, BasicBlock *NewPreHeader, in ConnectProlog() 87 BasicBlock *Latch = L->getLoopLatch(); in ConnectProlog() 89 BasicBlock *PrologLatch = cast<BasicBlock>(VMap[Latch]); in ConnectProlog() 96 for (BasicBlock *Succ : successors(Latch)) { in ConnectProlog() 139 SmallVector<BasicBlock *, 4> PrologExitPreds; in ConnectProlog() 142 for (BasicBlock *PredBB : predecessors(PrologExit)) in ConnectProlog() 164 SmallVector<BasicBlock *, 4> Preds(predecessors(OriginalLoopLatchExit)); in ConnectProlog() 186 static void ConnectEpilog(Loop *L, Value *ModVal, BasicBlock *NewExit, in ConnectEpilog() [all …]
|
H A D | CloneFunction.cpp | 43 BasicBlock *llvm::CloneBasicBlock(const BasicBlock *BB, ValueToValueMapTy &VMap, in CloneBasicBlock() 48 BasicBlock *NewBB = BasicBlock::Create(BB->getContext(), "", F); in CloneBasicBlock() 171 for (const BasicBlock &BB : *OldFunc) { in CloneFunctionInto() 174 BasicBlock *CBB = CloneBasicBlock(&BB, VMap, NameSuffix, NewFunc, CodeInfo, in CloneFunctionInto() 188 const_cast<BasicBlock *>(&BB)); in CloneFunctionInto() 240 BB = cast<BasicBlock>(VMap[&OldFunc->front()])->getIterator(), in CloneFunctionInto() 339 void CloneBlock(const BasicBlock *BB, BasicBlock::const_iterator StartingInst, 340 std::vector<const BasicBlock *> &ToClone); 347 const BasicBlock *BB, BasicBlock::const_iterator StartingInst, in CloneBlock() 348 std::vector<const BasicBlock *> &ToClone) { in CloneBlock() [all …]
|
/netbsd-src/external/apache2/llvm/dist/llvm/lib/Transforms/Scalar/ |
H A D | StructurizeCFG.cpp | 77 using BBValuePair = std::pair<BasicBlock *, Value *>; 80 using BBVector = SmallVector<BasicBlock *, 8>; 84 using BBSet = SmallPtrSet<BasicBlock *, 8>; 87 using BB2BBVecMap = MapVector<BasicBlock *, BBVector>; 89 using BBPhiMap = DenseMap<BasicBlock *, PhiMap>; 90 using BBPredicates = DenseMap<BasicBlock *, Value *>; 91 using PredMap = DenseMap<BasicBlock *, BBPredicates>; 92 using BB2BBMap = DenseMap<BasicBlock *, BasicBlock *>; 154 BasicBlock *Result = nullptr; 158 void addBlock(BasicBlock *BB, bool Remember) { in addBlock() [all …]
|
H A D | SimpleLoopUnswitch.cpp | 174 static bool areLoopExitPHIsLoopInvariant(Loop &L, BasicBlock &ExitingBB, in areLoopExitPHIsLoopInvariant() 175 BasicBlock &ExitBB) { in areLoopExitPHIsLoopInvariant() 192 static void buildPartialUnswitchConditionalBranch(BasicBlock &BB, in buildPartialUnswitchConditionalBranch() 195 BasicBlock &UnswitchedSucc, in buildPartialUnswitchConditionalBranch() 196 BasicBlock &NormalSucc) { in buildPartialUnswitchConditionalBranch() 212 static void rewritePHINodesForUnswitchedExitBlock(BasicBlock &UnswitchedBB, in rewritePHINodesForUnswitchedExitBlock() 213 BasicBlock &OldExitingBB, in rewritePHINodesForUnswitchedExitBlock() 214 BasicBlock &OldPH) { in rewritePHINodesForUnswitchedExitBlock() 234 static void rewritePHINodesForExitAndUnswitchedBlocks(BasicBlock &ExitBB, in rewritePHINodesForExitAndUnswitchedBlocks() 235 BasicBlock &UnswitchedBB, in rewritePHINodesForExitAndUnswitchedBlocks() [all …]
|
H A D | LoopSink.cpp | 94 static BlockFrequency adjustedSumFreq(SmallPtrSetImpl<BasicBlock *> &BBs, in adjustedSumFreq() 97 for (BasicBlock *B : BBs) in adjustedSumFreq() 131 static SmallPtrSet<BasicBlock *, 2> 132 findBBsToSinkInto(const Loop &L, const SmallPtrSetImpl<BasicBlock *> &UseBBs, in findBBsToSinkInto() 133 const SmallVectorImpl<BasicBlock *> &ColdLoopBBs, in findBBsToSinkInto() 135 SmallPtrSet<BasicBlock *, 2> BBsToSinkInto; in findBBsToSinkInto() 140 SmallPtrSet<BasicBlock *, 2> BBsDominatedByColdestBB; in findBBsToSinkInto() 150 for (BasicBlock *ColdestBB : ColdLoopBBs) { in findBBsToSinkInto() 152 for (BasicBlock *SinkedBB : BBsToSinkInto) in findBBsToSinkInto() 159 for (BasicBlock *DominatedBB : BBsDominatedByColdestBB) { in findBBsToSinkInto() [all …]
|
/netbsd-src/external/apache2/llvm/dist/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 | 44 BasicBlock *BB, in getPreviousDefRecursive() 45 DenseMap<BasicBlock *, TrackingVH<MemoryAccess>> &CachedPreviousDef) { in getPreviousDefRecursive() argument 56 if (BasicBlock *Pred = BB->getUniquePredecessor()) { in getPreviousDefRecursive() 147 DenseMap<BasicBlock *, TrackingVH<MemoryAccess>> CachedPreviousDef; in getPreviousDef() 180 BasicBlock *BB, in getPreviousDefFromEnd() 181 DenseMap<BasicBlock *, TrackingVH<MemoryAccess>> &CachedPreviousDef) { in getPreviousDefFromEnd() argument 270 SmallPtrSet<BasicBlock *, 16> Visited; in insertUse() 271 BasicBlock *StartBlock = MU->getBlock(); in insertUse() 291 static void setMemoryPhiValueForBlock(MemoryPhi *MP, const BasicBlock *BB, in setMemoryPhiValueForBlock() 364 SmallPtrSet<BasicBlock *, 2> DefiningBlocks; in insertDef() [all …]
|
/netbsd-src/external/apache2/llvm/dist/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 …]
|
/netbsd-src/external/apache2/llvm/dist/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 …]
|
/netbsd-src/external/apache2/llvm/dist/llvm/lib/Target/AMDGPU/ |
H A D | AMDGPUUnifyDivergentExitNodes.cpp | 69 BasicBlock *unifyReturnBlockSet(Function &F, DomTreeUpdater &DTU, 70 ArrayRef<BasicBlock *> ReturningBlocks, 118 BasicBlock &BB) { in isUniformlyReached() 119 SmallVector<BasicBlock *, 8> Stack(predecessors(&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() 138 for (BasicBlock &BB : F) { in removeDoneExport() 151 BasicBlock *AMDGPUUnifyDivergentExitNodes::unifyReturnBlockSet( in unifyReturnBlockSet() 152 Function &F, DomTreeUpdater &DTU, ArrayRef<BasicBlock *> ReturningBlocks, in unifyReturnBlockSet() [all …]
|