| /minix3/external/bsd/llvm/dist/llvm/include/llvm/Analysis/ |
| H A D | BranchProbabilityInfo.h | 58 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 D | PostDominators.h | 26 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 D | LoopIterator.h | 41 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 D | DominanceFrontier.h | 137 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 D | Interval.h | 28 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 D | LazyValueInfo.h | 57 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 D | CFG.h | 23 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 D | BasicBlockUtils.h | 36 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 D | CodeExtractor.h | 22 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 D | BasicBlock.cpp | 26 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 D | Dominators.cpp | 65 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 D | BasicBlock.h | 33 : 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 D | PredIteratorCache.h | 29 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 D | CFG.h | 84 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 D | Dominators.h | 39 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 D | CFG.cpp | 28 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 D | FlattenCFG.cpp | 31 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 D | BasicBlockUtils.cpp | 36 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 D | LoopUnrollRuntime.cpp | 59 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 D | LowerSwitch.cpp | 55 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 D | LoopSimplify.cpp | 75 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 D | StructurizeCFG.cpp | 30 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 D | MergedLoadStoreMotion.cpp | 131 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 D | LoopDeletion.cpp | 55 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 D | ThreadSafetyTIL.cpp | 59 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 …]
|