Home
last modified time | relevance | path

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

12345678910>>...30

/freebsd/contrib/llvm-project/llvm/include/llvm/IR/
H A DBasicBlock.h61 class BasicBlock final : public Value, // Basic blocks are data objects also
62 public ilist_node_with_parent<BasicBlock, Function> {
65 ilist_parent<BasicBlock>>;
74 friend class SymbolTableListTraits<BasicBlock>;
157 LLVM_ABI explicit BasicBlock(LLVMContext &C, const Twine &Name = "",
159 BasicBlock *InsertBefore = nullptr);
162 BasicBlock(const BasicBlock &) = delete;
163 BasicBlock &operator=(const BasicBlock &) = delete;
164 LLVM_ABI ~BasicBlock();
177 friend BasicBlock::iterator Instruction::eraseFromParent();
[all …]
H A DCFG.h105 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()
130 inline const_pred_range predecessors(const BasicBlock *BB) { in predecessors()
[all …]
H A DDominators.h47 extern template class LLVM_TEMPLATE_ABI DomTreeNodeBase<BasicBlock>;
49 DominatorTreeBase<BasicBlock, false>; // DomTree
51 DominatorTreeBase<BasicBlock, true>; // PostDomTree
53 extern template class cfg::Update<BasicBlock *>;
56 using BBDomTree = DomTreeBase<BasicBlock>;
57 using BBPostDomTree = PostDomTreeBase<BasicBlock>;
59 using BBUpdates = ArrayRef<llvm::cfg::Update<BasicBlock *>>;
61 using BBDomTreeGraphDiff = GraphDiff<BasicBlock *, false>;
62 using BBPostDomTreeGraphDiff = GraphDiff<BasicBlock *, true>;
72 InsertEdge<BBDomTree>(BBDomTree &DT, BasicBlock *From, BasicBlock *To);
[all …]
/freebsd/contrib/llvm-project/llvm/include/llvm/Transforms/Scalar/
H A DJumpThreading.h33 class BasicBlock; variable
56 using PredValueInfo = SmallVectorImpl<std::pair<Constant *, BasicBlock *>>;
57 using PredValueInfoTy = SmallVector<std::pair<Constant *, BasicBlock *>, 8>;
93 SmallSet<AssertingVH<const BasicBlock>, 16> LoopHeaders;
95 SmallPtrSet<const BasicBlock *, 16> LoopHeaders;
100 SmallPtrSet<BasicBlock *, 16> Unreachable;
119 LLVM_ABI bool processBlock(BasicBlock *BB);
120 LLVM_ABI bool maybeMergeBasicBlockIntoOnlyPred(BasicBlock *BB);
121 LLVM_ABI void updateSSA(BasicBlock *BB, BasicBlock *NewBB,
124 BasicBlock::iterator BI,
[all …]
/freebsd/contrib/llvm-project/llvm/lib/IR/
H A DBasicBlock.cpp33 DbgMarker *BasicBlock::createMarker(Instruction *I) { in createMarker()
42 DbgMarker *BasicBlock::createMarker(InstListType::iterator It) { in createMarker()
53 void BasicBlock::convertToNewDbgValues() { in convertToNewDbgValues()
89 void BasicBlock::convertFromNewDbgValues() { in convertFromNewDbgValues()
114 void BasicBlock::dumpDbgValues() const { in dumpDbgValues()
125 ValueSymbolTable *BasicBlock::getValueSymbolTable() { in getValueSymbolTable()
131 LLVMContext &BasicBlock::getContext() const { in getContext()
135 template <> void llvm::invalidateParentIListOrdering(BasicBlock *BB) { in invalidateParentIListOrdering()
142 Instruction, ilist_iterator_bits<true>, ilist_parent<BasicBlock>>;
144 BasicBlock::BasicBlock(LLVMContext &C, const Twine &Name, Function *NewParent, in BasicBlock() function in BasicBlock
[all …]
H A DDominators.cpp54 for (const BasicBlock *Succ : successors(Start)) { in isSingleEdge()
74 template class LLVM_EXPORT_TEMPLATE llvm::DomTreeNodeBase<BasicBlock>;
76 llvm::DominatorTreeBase<BasicBlock, false>; // DomTreeBase
78 llvm::DominatorTreeBase<BasicBlock, true>; // PostDomTreeBase
80 template class llvm::cfg::Update<BasicBlock *>;
96 DomTreeBuilder::BBDomTree &DT, BasicBlock *From, BasicBlock *To);
99 DomTreeBuilder::BBPostDomTree &DT, BasicBlock *From, BasicBlock *To);
103 DomTreeBuilder::BBDomTree &DT, BasicBlock *From, BasicBlock *To);
106 DomTreeBuilder::BBPostDomTree &DT, BasicBlock *From, BasicBlock *To);
135 bool DominatorTree::dominates(const BasicBlock *BB, const Use &U) const { in dominates()
[all …]
/freebsd/contrib/llvm-project/llvm/include/llvm/Transforms/Utils/
H A DBasicBlockUtils.h51 detachDeadBlocks(ArrayRef<BasicBlock *> BBs,
56 LLVM_ABI void DeleteDeadBlock(BasicBlock *BB, DomTreeUpdater *DTU = nullptr,
65 LLVM_ABI void DeleteDeadBlocks(ArrayRef<BasicBlock *> BBs,
81 FoldSingleEntryPHINodes(BasicBlock *BB,
88 LLVM_ABI bool DeleteDeadPHIs(BasicBlock *BB,
102 BasicBlock *BB, DomTreeUpdater *DTU = nullptr, LoopInfo *LI = nullptr,
115 SmallPtrSetImpl<BasicBlock *> &MergeBlocks, Loop *L = nullptr,
121 LLVM_ABI bool RemoveRedundantDbgInstrs(BasicBlock *BB);
125 LLVM_ABI void ReplaceInstWithValue(BasicBlock::iterator &BI, Value *V);
131 LLVM_ABI void ReplaceInstWithInst(BasicBlock *BB, BasicBlock::iterator &BI,
[all …]
H A DCodeExtractor.h27 class BasicBlock; variable
52 DenseMap<BasicBlock *, DenseSet<Value *>> BaseMemAddrs;
56 DenseSet<BasicBlock *> SideEffectingBlocks;
58 void findSideEffectInfoForBlock(BasicBlock &BB);
70 LLVM_ABI bool doesBlockContainClobberOfAddr(BasicBlock &BB,
100 BasicBlock *AllocationBlock;
106 SetVector<BasicBlock *> Blocks;
125 SmallVector<BasicBlock *> ExtractedFuncRetVals;
154 CodeExtractor(ArrayRef<BasicBlock *> BBs, DominatorTree *DT = nullptr,
159 BasicBlock *AllocationBlock = nullptr,
[all …]
H A DControlFlowUtils.h21 class BasicBlock; variable
99 BasicBlock *BB;
100 BasicBlock *Succ0;
101 BasicBlock *Succ1;
103 BranchDescriptor(BasicBlock *BB, BasicBlock *Succ0, BasicBlock *Succ1) in BranchDescriptor()
107 void addBranch(BasicBlock *BB, BasicBlock *Succ0, BasicBlock *Succ1) { in addBranch()
115 std::pair<BasicBlock *, bool>
116 finalize(DomTreeUpdater *DTU, SmallVectorImpl<BasicBlock *> &GuardBlocks,
/freebsd/contrib/llvm-project/llvm/include/llvm/Analysis/
H A DMemorySSAUpdater.h45 class BasicBlock; variable
53 using CFGUpdate = cfg::Update<BasicBlock *>;
63 SmallPtrSet<BasicBlock *, 8> VisitedBlocks;
90 LLVM_ABI void removeEdge(BasicBlock *From, BasicBlock *To);
94 LLVM_ABI void removeDuplicatePhiEdgesBetween(const BasicBlock *From,
95 const BasicBlock *To);
98 updatePhisWhenInsertingUniqueBackedgeBlock(BasicBlock *LoopHeader,
99 BasicBlock *LoopPreheader,
100 BasicBlock *BackedgeBlock);
106 ArrayRef<BasicBlock *> ExitBlocks,
[all …]
H A DBranchProbabilityInfo.h159 getEdgeProbability(const BasicBlock *Src, unsigned IndexInSuccessors) const;
164 LLVM_ABI BranchProbability getEdgeProbability(const BasicBlock *Src,
165 const BasicBlock *Dst) const;
167 LLVM_ABI BranchProbability getEdgeProbability(const BasicBlock *Src,
174 LLVM_ABI bool isEdgeHot(const BasicBlock *Src, const BasicBlock *Dst) const;
182 const BasicBlock *Src,
183 const BasicBlock *Dst) const;
192 setEdgeProbability(const BasicBlock *Src,
199 LLVM_ABI void copyEdgeProbabilities(BasicBlock *Src, BasicBlock *Dst);
202 LLVM_ABI void swapSuccEdgesProbabilities(const BasicBlock *Src);
[all …]
H A DCFG.h24 class BasicBlock; variable
38 SmallVectorImpl<std::pair<const BasicBlock *, const BasicBlock *>> &Result);
43 LLVM_ABI unsigned GetSuccessorNumber(const BasicBlock *BB,
44 const BasicBlock *Succ);
52 LLVM_ABI bool isCriticalEdge(const Instruction *TI, const BasicBlock *Succ,
72 const SmallPtrSetImpl<BasicBlock *> *ExclusionSet = nullptr,
82 const BasicBlock *From, const BasicBlock *To,
83 const SmallPtrSetImpl<BasicBlock *> *ExclusionSet = nullptr,
96 SmallVectorImpl<BasicBlock *> &Worklist, const BasicBlock *StopBB,
97 const SmallPtrSetImpl<BasicBlock *> *ExclusionSet,
[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 …]
/freebsd/contrib/llvm-project/llvm/lib/Analysis/
H A DCFG.cpp36 SmallVectorImpl<std::pair<const BasicBlock*,const BasicBlock*> > &Result) { in FindFunctionBackedges() argument
37 const BasicBlock *BB = &F.getEntryBlock(); in FindFunctionBackedges()
41 SmallPtrSet<const BasicBlock*, 8> Visited; in FindFunctionBackedges()
42 SmallVector<std::pair<const BasicBlock *, const_succ_iterator>, 8> VisitStack; in FindFunctionBackedges()
43 SmallPtrSet<const BasicBlock*, 8> InStack; in FindFunctionBackedges()
49 std::pair<const BasicBlock *, const_succ_iterator> &Top = VisitStack.back(); in FindFunctionBackedges()
50 const BasicBlock *ParentBB = Top.first; in FindFunctionBackedges()
80 unsigned llvm::GetSuccessorNumber(const BasicBlock *BB, in GetSuccessorNumber()
81 const BasicBlock *Succ) { in GetSuccessorNumber()
102 bool llvm::isCriticalEdge(const Instruction *TI, const BasicBlock *Dest, in isCriticalEdge()
[all …]
H A DMemorySSAUpdater.cpp37 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 …]
/freebsd/contrib/llvm-project/llvm/lib/Target/SPIRV/
H A DSPIRVStructurizer.cpp38 using BlockSet = std::unordered_set<BasicBlock *>;
39 using Edge = std::pair<BasicBlock *, BasicBlock *>;
43 static void partialOrderVisit(BasicBlock &Start, in partialOrderVisit()
44 std::function<bool(BasicBlock *)> Op) { in partialOrderVisit()
52 getRegionForHeader(const ConvergenceRegion *Node, BasicBlock *BB) { in getRegionForHeader()
66 static BasicBlock *getExitFor(const ConvergenceRegion *CR) { in getExitFor()
67 std::unordered_set<BasicBlock *> ExitTargets; in getExitFor()
68 for (BasicBlock *Exit : CR->Exits) { in getExitFor()
69 for (BasicBlock *Successor : successors(Exit)) { in getExitFor()
84 static BasicBlock *getDesignatedMergeBlock(Instruction *I) { in getDesignatedMergeBlock()
[all …]
H A DSPIRVMergeRegionExitTargets.cpp43 std::unordered_set<BasicBlock *> gatherSuccessors(BasicBlock *BB) { in gatherSuccessors()
44 std::unordered_set<BasicBlock *> output; in gatherSuccessors()
68 BasicBlock *BB, in createExitVariable()
69 const DenseMap<BasicBlock *, ConstantInt *> &TargetToValue) { in createExitVariable() argument
79 BasicBlock *LHSTarget = BI->getSuccessor(0); in createExitVariable()
80 BasicBlock *RHSTarget = in createExitVariable()
96 void replaceBranchTargets(BasicBlock *BB, in replaceBranchTargets()
97 const SmallPtrSet<BasicBlock *, 4> &ToReplace, in replaceBranchTargets() argument
98 BasicBlock *NewTarget) { in replaceBranchTargets()
123 BasicBlock::iterator Position) { in CreateVariable()
[all …]
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Utils/
H A DBasicBlockUtils.cpp62 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(llvm::from_range, BBs); 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 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(llvm::from_range, predecessors(BB)); in FlattenParallelAndOr()
[all …]
H A DLoopUnrollRuntime.cpp83 BasicBlock *PrologExit, in ConnectProlog()
84 BasicBlock *OriginalLoopLatchExit, in ConnectProlog()
85 BasicBlock *PreHeader, BasicBlock *NewPreHeader, in ConnectProlog()
100 BasicBlock *Latch = L->getLoopLatch(); in ConnectProlog()
102 BasicBlock *PrologLatch = cast<BasicBlock>(VMap[Latch]); in ConnectProlog()
109 for (BasicBlock *Succ : successors(Latch)) { in ConnectProlog()
153 SmallVector<BasicBlock *, 4> PrologExitPreds; in ConnectProlog()
156 for (BasicBlock *PredBB : predecessors(PrologExit)) in ConnectProlog()
178 SmallVector<BasicBlock *, 4> Preds(predecessors(OriginalLoopLatchExit)); in ConnectProlog()
210 static void ConnectEpilog(Loop *L, Value *ModVal, BasicBlock *NewExit, in ConnectEpilog()
[all …]
/freebsd/contrib/llvm-project/llvm/lib/SandboxIR/
H A DBasicBlock.cpp43 BasicBlock *BBIterator::getNodeParent() const { in getNodeParent()
44 llvm::BasicBlock *Parent = const_cast<BBIterator *>(this)->It.getNodeParent(); in getNodeParent()
45 return cast<BasicBlock>(Ctx->getValue(Parent)); in getNodeParent()
48 BasicBlock::iterator::pointer
49 BasicBlock::iterator::getInstr(llvm::BasicBlock::iterator It) const { in getInstr()
53 Function *BasicBlock::getParent() const { in getParent()
54 auto *BB = cast<llvm::BasicBlock>(Val); in getParent()
62 void BasicBlock::buildBasicBlockFromLLVMIR(llvm::BasicBlock *LLVMBB) { in buildBasicBlockFromLLVMIR()
68 if (isa<llvm::BasicBlock>(Op)) in buildBasicBlockFromLLVMIR()
78 BasicBlock::iterator BasicBlock::begin() const { in begin()
[all …]
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Scalar/
H A DStructurizeCFG.cpp76 using BBValuePair = std::pair<BasicBlock *, Value *>;
79 using BBVector = SmallVector<BasicBlock *, 8>;
83 using BBSet = SmallPtrSet<BasicBlock *, 8>;
86 using BB2BBVecMap = MapVector<BasicBlock *, BBVector>;
88 using BBPhiMap = DenseMap<BasicBlock *, PhiMap>;
128 using BBPredicates = DenseMap<BasicBlock *, PredInfo>;
129 using PredMap = DenseMap<BasicBlock *, BBPredicates>;
130 using BB2BBMap = DenseMap<BasicBlock *, BasicBlock *>;
192 BasicBlock *Result = nullptr;
196 void addBlock(BasicBlock *BB, bool Remember) { in addBlock()
[all …]
H A DLoopSink.cpp78 static BlockFrequency adjustedSumFreq(SmallPtrSetImpl<BasicBlock *> &BBs, in adjustedSumFreq()
81 for (BasicBlock *B : BBs) in adjustedSumFreq()
115 static SmallPtrSet<BasicBlock *, 2>
116 findBBsToSinkInto(const Loop &L, const SmallPtrSetImpl<BasicBlock *> &UseBBs, in findBBsToSinkInto()
117 const SmallVectorImpl<BasicBlock *> &ColdLoopBBs, in findBBsToSinkInto()
119 SmallPtrSet<BasicBlock *, 2> BBsToSinkInto; in findBBsToSinkInto()
124 SmallPtrSet<BasicBlock *, 2> BBsDominatedByColdestBB; in findBBsToSinkInto()
134 for (BasicBlock *ColdestBB : ColdLoopBBs) { in findBBsToSinkInto()
136 for (BasicBlock *SinkedBB : BBsToSinkInto) in findBBsToSinkInto()
143 for (BasicBlock *DominatedBB : BBsDominatedByColdestBB) { in findBBsToSinkInto()
[all …]
/freebsd/contrib/llvm-project/clang/lib/Analysis/
H A DThreadSafetyTIL.cpp57 unsigned BasicBlock::addPredecessor(BasicBlock *Pred) { in addPredecessor()
70 void BasicBlock::reservePredecessors(unsigned NumPreds) { in reservePredecessors()
151 unsigned BasicBlock::renumberInstrs(unsigned ID) { in renumberInstrs()
164 unsigned BasicBlock::topologicalSort(SimpleArray<BasicBlock *> &Blocks, in topologicalSort()
188 unsigned BasicBlock::topologicalFinalSort(SimpleArray<BasicBlock *> &Blocks, in topologicalFinalSort()
207 void BasicBlock::computeDominator() { in computeDominator()
208 BasicBlock *Candidate = nullptr; in computeDominator()
234 void BasicBlock::computePostDominator() { in computePostDominator()
235 BasicBlock *Candidate = nullptr; in computePostDominator()
265 static inline void computeNodeSize(BasicBlock *B, in computeNodeSize()
[all …]
/freebsd/contrib/llvm-project/llvm/lib/Transforms/IPO/
H A DPartialInlining.cpp156 SmallVector<BasicBlock *, 4> Entries;
159 BasicBlock *ReturnBlock = nullptr;
162 BasicBlock *NonReturnBlock = nullptr;
165 SmallVector<BasicBlock *, 4> ReturnBlockPreds;
173 OutlineRegionInfo(ArrayRef<BasicBlock *> Region, BasicBlock *EntryBlock, in OutlineRegionInfo()
174 BasicBlock *ExitBlock, BasicBlock *ReturnBlock) in OutlineRegionInfo()
177 SmallVector<BasicBlock *, 8> Region;
178 BasicBlock *EntryBlock;
179 BasicBlock *ExitBlock;
180 BasicBlock *ReturnBlock;
[all …]

12345678910>>...30