Home
last modified time | relevance | path

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

12345678910>>...17

/minix3/external/bsd/llvm/dist/llvm/include/llvm/Analysis/
H A DBranchProbabilityInfo.h58 BranchProbability getEdgeProbability(const BasicBlock *Src,
64 BranchProbability getEdgeProbability(const BasicBlock *Src,
65 const BasicBlock *Dst) const;
71 bool isEdgeHot(const BasicBlock *Src, const BasicBlock *Dst) const;
77 BasicBlock *getHotSucc(BasicBlock *BB) const;
84 raw_ostream &printEdgeProbability(raw_ostream &OS, const BasicBlock *Src,
85 const BasicBlock *Dst) const;
93 uint32_t getEdgeWeight(const BasicBlock *Src,
100 uint32_t getEdgeWeight(const BasicBlock *Src, const BasicBlock *Dst) const;
102 uint32_t getEdgeWeight(const BasicBlock *Src,
[all …]
H A DPostDominators.h26 DominatorTreeBase<BasicBlock>* DT;
30 DT = new DominatorTreeBase<BasicBlock>(true); in PostDominatorTree()
41 inline const std::vector<BasicBlock*> &getRoots() const { in getRoots()
49 inline DomTreeNode *operator[](BasicBlock *BB) const {
53 inline DomTreeNode *getNode(BasicBlock *BB) const { in getNode()
61 inline bool dominates(const BasicBlock* A, const BasicBlock* B) const { in dominates()
69 inline bool properlyDominates(BasicBlock* A, BasicBlock* B) const { in properlyDominates()
73 inline BasicBlock *findNearestCommonDominator(BasicBlock *A, BasicBlock *B) { in findNearestCommonDominator()
77 inline const BasicBlock *findNearestCommonDominator(const BasicBlock *A, in findNearestCommonDominator()
78 const BasicBlock *B) { in findNearestCommonDominator()
[all …]
H A DLoopIterator.h41 typedef std::vector<BasicBlock*>::const_iterator POIterator;
42 typedef std::vector<BasicBlock*>::const_reverse_iterator RPOIterator;
52 DenseMap<BasicBlock*, unsigned> PostNumbers;
53 std::vector<BasicBlock*> PostBlocks;
84 bool hasPreorder(BasicBlock *BB) const { return PostNumbers.count(BB); } in hasPreorder()
87 bool hasPostorder(BasicBlock *BB) const { in hasPostorder()
88 DenseMap<BasicBlock*, unsigned>::const_iterator I = PostNumbers.find(BB); in hasPostorder()
93 unsigned getPostorder(BasicBlock *BB) const { in getPostorder()
94 DenseMap<BasicBlock*, unsigned>::const_iterator I = PostNumbers.find(BB); in getPostorder()
101 unsigned getRPO(BasicBlock *BB) const { in getRPO()
[all …]
H A DDominanceFrontier.h137 ForwardDominanceFrontierBase<BasicBlock> Base;
140 typedef DominatorTreeBase<BasicBlock> DomTreeT;
141 typedef DomTreeNodeBase<BasicBlock> DomTreeNodeT;
142 typedef DominanceFrontierBase<BasicBlock>::DomSetType DomSetType;
143 typedef DominanceFrontierBase<BasicBlock>::iterator iterator;
144 typedef DominanceFrontierBase<BasicBlock>::const_iterator const_iterator;
150 ForwardDominanceFrontierBase<BasicBlock> &getBase() { return Base; } in getBase()
152 inline const std::vector<BasicBlock *> &getRoots() const { in getRoots()
156 BasicBlock *getRoot() const { return Base.getRoot(); } in getRoot()
168 iterator find(BasicBlock *B) { return Base.find(B); } in find()
[all …]
H A DInterval.h28 class BasicBlock; variable
41 BasicBlock *HeaderNode;
43 typedef std::vector<BasicBlock*>::iterator succ_iterator;
44 typedef std::vector<BasicBlock*>::iterator pred_iterator;
45 typedef std::vector<BasicBlock*>::iterator node_iterator;
47 inline Interval(BasicBlock *Header) : HeaderNode(Header) { in Interval()
51 inline BasicBlock *getHeaderNode() const { return HeaderNode; } in getHeaderNode()
55 std::vector<BasicBlock*> Nodes;
61 std::vector<BasicBlock*> Successors;
66 std::vector<BasicBlock*> Predecessors;
[all …]
H A DLazyValueInfo.h57 BasicBlock *FromBB, BasicBlock *ToBB,
68 Constant *getConstant(Value *V, BasicBlock *BB, Instruction *CxtI = nullptr);
72 Constant *getConstantOnEdge(Value *V, BasicBlock *FromBB, BasicBlock *ToBB,
77 void threadEdge(BasicBlock *PredBB, BasicBlock *OldSucc, BasicBlock *NewSucc);
80 void eraseBlock(BasicBlock *BB);
H A DCFG.h23 class BasicBlock; variable
37 SmallVectorImpl<std::pair<const BasicBlock *, const BasicBlock *> > &
43 unsigned GetSuccessorNumber(BasicBlock *BB, BasicBlock *Succ);
77 bool isPotentiallyReachable(const BasicBlock *From, const BasicBlock *To,
/minix3/external/bsd/llvm/dist/llvm/include/llvm/Transforms/Utils/
H A DBasicBlockUtils.h36 void DeleteDeadBlock(BasicBlock *BB);
42 void FoldSingleEntryPHINodes(BasicBlock *BB, Pass *P = nullptr);
49 bool DeleteDeadPHIs(BasicBlock *BB, const TargetLibraryInfo *TLI = nullptr);
53 bool MergeBlockIntoPredecessor(BasicBlock *BB, Pass *P = nullptr);
58 void ReplaceInstWithValue(BasicBlock::InstListType &BIL,
59 BasicBlock::iterator &BI, Value *V);
65 void ReplaceInstWithInst(BasicBlock::InstListType &BIL,
66 BasicBlock::iterator &BI, Instruction *I);
91 BasicBlock *SplitCriticalEdge(TerminatorInst *TI, unsigned SuccNum,
97 inline BasicBlock *SplitCriticalEdge(BasicBlock *BB, succ_iterator SI,
[all …]
H A DCodeExtractor.h22 class BasicBlock; variable
52 SetVector<BasicBlock *> Blocks;
61 CodeExtractor(BasicBlock *BB, bool AggregateArgs = false);
69 CodeExtractor(ArrayRef<BasicBlock *> BBs, DominatorTree *DT = nullptr,
108 void severSplitPHINodes(BasicBlock *&Header);
113 BasicBlock *header,
114 BasicBlock *newRootNode, BasicBlock *newHeader,
120 BasicBlock *newHeader,
/minix3/external/bsd/llvm/dist/llvm/lib/IR/
H A DBasicBlock.cpp26 ValueSymbolTable *BasicBlock::getValueSymbolTable() { in getValueSymbolTable()
32 const DataLayout *BasicBlock::getDataLayout() const { in getDataLayout()
36 LLVMContext &BasicBlock::getContext() const { in getContext()
42 template class llvm::SymbolTableListTraits<Instruction, BasicBlock>;
45 BasicBlock::BasicBlock(LLVMContext &C, const Twine &Name, Function *NewParent, in BasicBlock() function in BasicBlock
46 BasicBlock *InsertBefore) in BasicBlock()
58 void BasicBlock::insertInto(Function *NewParent, BasicBlock *InsertBefore) { in insertInto()
68 BasicBlock::~BasicBlock() { in ~BasicBlock()
92 void BasicBlock::setParent(Function *parent) { in setParent()
97 void BasicBlock::removeFromParent() { in removeFromParent()
[all …]
H A DDominators.cpp65 TEMPLATE_INSTANTIATION(class llvm::DomTreeNodeBase<BasicBlock>);
66 TEMPLATE_INSTANTIATION(class llvm::DominatorTreeBase<BasicBlock>);
69 TEMPLATE_INSTANTIATION(void llvm::Calculate<Function LLVM_COMMA BasicBlock *>(
70 DominatorTreeBase<GraphTraits<BasicBlock *>::NodeType> &DT LLVM_COMMA
73 void llvm::Calculate<Function LLVM_COMMA Inverse<BasicBlock *> >(
74 DominatorTreeBase<GraphTraits<Inverse<BasicBlock *> >::NodeType> &DT
83 const BasicBlock *UseBB = User->getParent(); in dominates()
84 const BasicBlock *DefBB = Def->getParent(); in dominates()
109 BasicBlock::const_iterator I = DefBB->begin(); in dominates()
119 const BasicBlock *UseBB) const { in dominates()
[all …]
/minix3/external/bsd/llvm/dist/llvm/include/llvm/IR/
H A DBasicBlock.h33 : public SymbolTableListTraits<Instruction, BasicBlock> {
73 class BasicBlock : public Value, // Basic blocks are data objects also
74 public ilist_node<BasicBlock> {
83 friend class SymbolTableListTraits<BasicBlock, Function>;
85 BasicBlock(const BasicBlock &) LLVM_DELETED_FUNCTION;
86 void operator=(const BasicBlock &) LLVM_DELETED_FUNCTION;
93 explicit BasicBlock(LLVMContext &C, const Twine &Name = "",
95 BasicBlock *InsertBefore = nullptr);
111 static BasicBlock *Create(LLVMContext &Context, const Twine &Name = "",
113 BasicBlock *InsertBefore = nullptr) {
[all …]
H A DPredIteratorCache.h29 DenseMap<BasicBlock*, BasicBlock**> BlockToPredsMap;
30 DenseMap<BasicBlock*, unsigned> BlockToPredCountMap;
42 BasicBlock **GetPreds(BasicBlock *BB) { in GetPreds()
43 BasicBlock **&Entry = BlockToPredsMap[BB]; in GetPreds()
46 SmallVector<BasicBlock*, 32> PredCache(pred_begin(BB), pred_end(BB)); in GetPreds()
51 Entry = Memory.Allocate<BasicBlock*>(PredCache.size()); in GetPreds()
56 unsigned GetNumPreds(BasicBlock *BB) { in GetNumPreds()
H A DCFG.h84 typedef PredIterator<BasicBlock, Value::user_iterator> pred_iterator;
85 typedef PredIterator<const BasicBlock,
88 inline pred_iterator pred_begin(BasicBlock *BB) { return pred_iterator(BB); } in pred_begin()
89 inline const_pred_iterator pred_begin(const BasicBlock *BB) { in pred_begin()
92 inline pred_iterator pred_end(BasicBlock *BB) { return pred_iterator(BB, true);} in pred_end()
93 inline const_pred_iterator pred_end(const BasicBlock *BB) { in pred_end()
96 inline bool pred_empty(const BasicBlock *BB) { in pred_empty()
247 typedef SuccIterator<TerminatorInst*, BasicBlock> succ_iterator;
249 const BasicBlock> succ_const_iterator;
251 inline succ_iterator succ_begin(BasicBlock *BB) { in succ_begin()
[all …]
H A DDominators.h39 EXTERN_TEMPLATE_INSTANTIATION(class DomTreeNodeBase<BasicBlock>);
40 EXTERN_TEMPLATE_INSTANTIATION(class DominatorTreeBase<BasicBlock>);
43 EXTERN_TEMPLATE_INSTANTIATION(void Calculate<Function LLVM_COMMA BasicBlock *>(
44 DominatorTreeBase<GraphTraits<BasicBlock *>::NodeType> &DT LLVM_COMMA
47 void Calculate<Function LLVM_COMMA Inverse<BasicBlock *> >(
48 DominatorTreeBase<GraphTraits<Inverse<BasicBlock *> >::NodeType> &DT
52 typedef DomTreeNodeBase<BasicBlock> DomTreeNode;
55 const BasicBlock *Start;
56 const BasicBlock *End;
58 BasicBlockEdge(const BasicBlock *Start_, const BasicBlock *End_) : in BasicBlockEdge()
[all …]
/minix3/external/bsd/llvm/dist/llvm/lib/Analysis/
H A DCFG.cpp28 SmallVectorImpl<std::pair<const BasicBlock*,const BasicBlock*> > &Result) { in FindFunctionBackedges() argument
29 const BasicBlock *BB = &F.getEntryBlock(); in FindFunctionBackedges()
33 SmallPtrSet<const BasicBlock*, 8> Visited; in FindFunctionBackedges()
34 SmallVector<std::pair<const BasicBlock*, succ_const_iterator>, 8> VisitStack; in FindFunctionBackedges()
35 SmallPtrSet<const BasicBlock*, 8> InStack; in FindFunctionBackedges()
41 std::pair<const BasicBlock*, succ_const_iterator> &Top = VisitStack.back(); in FindFunctionBackedges()
42 const BasicBlock *ParentBB = Top.first; in FindFunctionBackedges()
72 unsigned llvm::GetSuccessorNumber(BasicBlock *BB, BasicBlock *Succ) { in GetSuccessorNumber()
92 const BasicBlock *Dest = TI->getSuccessor(SuccNum); in isCriticalEdge()
97 const BasicBlock *FirstPred = *I; in isCriticalEdge()
[all …]
/minix3/external/bsd/llvm/dist/llvm/lib/Transforms/Utils/
H A DFlattenCFG.cpp31 bool FlattenParallelAndOr(BasicBlock *BB, IRBuilder<> &Builder,
36 bool MergeIfRegion(BasicBlock *BB, IRBuilder<> &Builder, Pass *P = nullptr);
42 bool CompareIfRegionBlock(BasicBlock *Head1, BasicBlock *Head2,
43 BasicBlock *Block1, BasicBlock *Block2);
47 bool run(BasicBlock *BB);
125 bool FlattenCFGOpt::FlattenParallelAndOr(BasicBlock *BB, IRBuilder<> &Builder, in FlattenParallelAndOr()
131 BasicBlock *LastCondBlock = nullptr; in FlattenParallelAndOr()
132 BasicBlock *FirstCondBlock = nullptr; in FlattenParallelAndOr()
133 BasicBlock *UnCondBlock = nullptr; in FlattenParallelAndOr()
137 SmallPtrSet<BasicBlock *, 16> Preds(pred_begin(BB), pred_end(BB)); in FlattenParallelAndOr()
[all …]
H A DBasicBlockUtils.cpp36 void llvm::DeleteDeadBlock(BasicBlock *BB) { in DeleteDeadBlock()
68 void llvm::FoldSingleEntryPHINodes(BasicBlock *BB, Pass *P) { in FoldSingleEntryPHINodes()
98 bool llvm::DeleteDeadPHIs(BasicBlock *BB, const TargetLibraryInfo *TLI) { in DeleteDeadPHIs()
102 for (BasicBlock::iterator I = BB->begin(); in DeleteDeadPHIs()
116 bool llvm::MergeBlockIntoPredecessor(BasicBlock *BB, Pass *P) { in MergeBlockIntoPredecessor()
121 BasicBlock *PredBB = BB->getUniquePredecessor(); in MergeBlockIntoPredecessor()
130 BasicBlock *OnlySucc = BB; in MergeBlockIntoPredecessor()
141 for (BasicBlock::iterator BI = BB->begin(), BE = BB->end(); BI != BE; ++BI) { in MergeBlockIntoPredecessor()
199 void llvm::ReplaceInstWithValue(BasicBlock::InstListType &BIL, in ReplaceInstWithValue()
200 BasicBlock::iterator &BI, Value *V) { in ReplaceInstWithValue()
[all …]
H A DLoopUnrollRuntime.cpp59 BasicBlock *LastPrologBB, BasicBlock *PrologEnd, in ConnectProlog()
60 BasicBlock *OrigPH, BasicBlock *NewPH, in ConnectProlog()
62 BasicBlock *Latch = L->getLoopLatch(); in ConnectProlog()
72 for (BasicBlock::iterator BBI = (*SBI)->begin(); in ConnectProlog()
121 BasicBlock *Exit = L->getUniqueExitBlock(); in ConnectProlog()
124 SmallVector<BasicBlock*, 4> Preds(pred_begin(Exit), pred_end(Exit)); in ConnectProlog()
128 SmallVector<BasicBlock*, 2> NewBBs; in ConnectProlog()
143 BasicBlock *InsertTop, BasicBlock *InsertBot, in CloneLoopBlocks()
144 std::vector<BasicBlock *> &NewBlocks, in CloneLoopBlocks()
147 BasicBlock *Preheader = L->getLoopPreheader(); in CloneLoopBlocks()
[all …]
H A DLowerSwitch.cpp55 BasicBlock* BB;
58 BasicBlock *bb = nullptr) : in CaseRange()
67 BasicBlock *switchConvert(CaseItr Begin, CaseItr End,
69 Value *Val, BasicBlock *Predecessor,
70 BasicBlock *OrigBlock, BasicBlock *Default);
71 BasicBlock *newLeafBlock(CaseRange &Leaf, Value *Val, BasicBlock *OrigBlock,
72 BasicBlock *Default);
104 BasicBlock *Cur = I++; // Advance over block so we don't traverse new blocks in runOnFunction()
143 static void fixPhis(BasicBlock *SuccBB, BasicBlock *OrigBB, BasicBlock *NewBB, in fixPhis()
145 for (BasicBlock::iterator I = SuccBB->begin(), IE = SuccBB->getFirstNonPHI(); in fixPhis()
[all …]
H A DLoopSimplify.cpp75 static void placeSplitBlockCarefully(BasicBlock *NewBB, in placeSplitBlockCarefully()
76 SmallVectorImpl<BasicBlock *> &SplitPreds, in placeSplitBlockCarefully()
91 BasicBlock *FoundBB = nullptr; in placeSplitBlockCarefully()
113 BasicBlock *llvm::InsertPreheaderForLoop(Loop *L, Pass *PP) { in InsertPreheaderForLoop()
114 BasicBlock *Header = L->getHeader(); in InsertPreheaderForLoop()
117 SmallVector<BasicBlock*, 8> OutsideBlocks; in InsertPreheaderForLoop()
120 BasicBlock *P = *PI; in InsertPreheaderForLoop()
133 BasicBlock *PreheaderBB; in InsertPreheaderForLoop()
138 SmallVector<BasicBlock*, 2> NewBBs; in InsertPreheaderForLoop()
160 static BasicBlock *rewriteLoopExitBlock(Loop *L, BasicBlock *Exit, Pass *PP) { in rewriteLoopExitBlock()
[all …]
/minix3/external/bsd/llvm/dist/llvm/lib/Transforms/Scalar/
H A DStructurizeCFG.cpp30 typedef std::pair<BasicBlock *, Value *> BBValuePair;
33 typedef SmallVector<BasicBlock*, 8> BBVector;
37 typedef SmallPtrSet<BasicBlock *, 8> BBSet;
40 typedef MapVector<BasicBlock *, BBVector> BB2BBVecMap;
43 typedef DenseMap<BasicBlock *, PhiMap> BBPhiMap;
44 typedef DenseMap<BasicBlock *, Value *> BBPredicates;
45 typedef DenseMap<BasicBlock *, BBPredicates> PredMap;
46 typedef DenseMap<BasicBlock *, BasicBlock*> BB2BBMap;
61 BasicBlock *Result;
73 void addBlock(BasicBlock *BB, bool Remember = true) { in addBlock()
[all …]
H A DMergedLoadStoreMotion.cpp131 BasicBlock *getDiamondTail(BasicBlock *BB);
132 bool isDiamondHead(BasicBlock *BB);
137 LoadInst *canHoistFromBlock(BasicBlock *BB, LoadInst *LI);
138 void hoistInstruction(BasicBlock *BB, Instruction *HoistCand,
141 bool hoistLoad(BasicBlock *BB, LoadInst *HoistCand, LoadInst *ElseInst);
142 bool mergeLoads(BasicBlock *BB);
144 StoreInst *canSinkFromBlock(BasicBlock *BB, StoreInst *SI);
145 PHINode *getPHIOperand(BasicBlock *BB, StoreInst *S0, StoreInst *S1);
149 bool sinkStore(BasicBlock *BB, StoreInst *SinkCand, StoreInst *ElseInst);
150 bool mergeStores(BasicBlock *BB);
[all …]
H A DLoopDeletion.cpp55 bool isLoopDead(Loop *L, SmallVectorImpl<BasicBlock *> &exitingBlocks,
56 SmallVectorImpl<BasicBlock *> &exitBlocks,
57 bool &Changed, BasicBlock *Preheader);
81 SmallVectorImpl<BasicBlock *> &exitingBlocks, in isLoopDead()
82 SmallVectorImpl<BasicBlock *> &exitBlocks, in isLoopDead()
83 bool &Changed, BasicBlock *Preheader) { in isLoopDead()
84 BasicBlock *exitBlock = exitBlocks[0]; in isLoopDead()
91 BasicBlock::iterator BI = exitBlock->begin(); in isLoopDead()
117 for (BasicBlock::iterator BI = (*LI)->begin(), BE = (*LI)->end(); in isLoopDead()
139 BasicBlock *preheader = L->getLoopPreheader(); in runOnLoop()
[all …]
/minix3/external/bsd/llvm/dist/clang/lib/Analysis/
H A DThreadSafetyTIL.cpp59 unsigned BasicBlock::addPredecessor(BasicBlock *Pred) { in addPredecessor()
73 void BasicBlock::reservePredecessors(unsigned NumPreds) { in reservePredecessors()
158 int BasicBlock::renumberInstrs(int ID) { in renumberInstrs()
171 int BasicBlock::topologicalSort(SimpleArray<BasicBlock*>& Blocks, int ID) { in topologicalSort()
194 int BasicBlock::topologicalFinalSort(SimpleArray<BasicBlock*>& Blocks, int ID) { in topologicalFinalSort()
212 void BasicBlock::computeDominator() { in computeDominator()
213 BasicBlock *Candidate = nullptr; in computeDominator()
239 void BasicBlock::computePostDominator() { in computePostDominator()
240 BasicBlock *Candidate = nullptr; in computePostDominator()
272 static inline void computeNodeSize(BasicBlock *B, in computeNodeSize()
[all …]

12345678910>>...17