Home
last modified time | relevance | path

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

12345678910>>...28

/freebsd/contrib/llvm-project/llvm/include/llvm/IR/
H A DBasicBlock.h165 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 DDominators.h46 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 DCFG.h118 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 DPredIteratorCache.h29 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 DInstructions.h46 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 DJumpThreading.h31 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 DBasicBlockUtils.h127 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 DCodeExtractor.h26 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 DLoopConstrainer.h18 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 DBasicBlock.cpp248 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 DDominators.cpp90 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 DMemorySSAUpdater.h44 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 DBranchProbabilityInfo.h174 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 DIteratedDominanceFrontier.h17 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 DInterval.h27 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 DFlattenCFG.cpp52 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 DBasicBlockUtils.cpp750 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 DStructurizeCFG.cpp90 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 DLoopSink.cpp81 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 DDFAJumpThreading.cpp175 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 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()
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 DMemorySSAUpdater.cpp37 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 DThreadSafetyTIL.cpp58 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 DBlockCoverageInference.h26 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 DPartialInlining.cpp174 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 …]

12345678910>>...28