Home
last modified time | relevance | path

Searched refs:BasicBlock (Results 1 – 25 of 666) sorted by relevance

12345678910>>...27

/netbsd-src/external/apache2/llvm/dist/llvm/include/llvm/Transforms/Scalar/
H A DJumpThreading.h32 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 DBasicBlock.cpp26 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 DBasicBlockUtils.h49 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 DCodeExtractor.h26 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 DBasicBlock.h58 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 DDominators.h35 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 DCFG.h34 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 DInstructions.h81 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 DMemorySSAUpdater.h46 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 DBranchProbabilityInfo.h153 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 DDomTreeUpdater.h70 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 DIteratedDominanceFrontier.h17 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 DCFG.h23 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 DBasicBlockUtils.cpp56 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 DFlattenCFG.cpp40 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 DLoopUnrollRuntime.cpp71 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 DCloneFunction.cpp43 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 DStructurizeCFG.cpp77 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 DSimpleLoopUnswitch.cpp174 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 DLoopSink.cpp94 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 DCFG.cpp35 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 DMemorySSAUpdater.cpp44 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 DWinEHPrepare.cpp79 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 DThreadSafetyTIL.cpp58 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 DAMDGPUUnifyDivergentExitNodes.cpp69 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 …]

12345678910>>...27