| /trueos/contrib/llvm/include/llvm/Analysis/ |
| HD | RegionInfo.h | 71 PointerIntPair<BasicBlock*, 1, bool> entry; 86 inline RegionNode(Region* Parent, BasicBlock* Entry, bool isSubRegion = 0) 105 inline BasicBlock* getEntry() const { return entry.getPointer(); } in getEntry() 129 inline BasicBlock* RegionNode::getNodeAs<BasicBlock>() const { 213 BasicBlock *exit; 220 typedef std::map<BasicBlock*, RegionNode*> BBNodeMapT; 227 void verifyBBInRegion(BasicBlock* BB) const; 232 void verifyWalk(BasicBlock* BB, std::set<BasicBlock*>* visitedBB) const; 247 Region(BasicBlock *Entry, BasicBlock *Exit, RegionInfo* RI, 255 BasicBlock *getEntry() const { return RegionNode::getEntry(); } in getEntry() [all …]
|
| HD | BranchProbabilityInfo.h | 57 BranchProbability getEdgeProbability(const BasicBlock *Src, 63 BranchProbability getEdgeProbability(const BasicBlock *Src, 64 const BasicBlock *Dst) const; 70 bool isEdgeHot(const BasicBlock *Src, const BasicBlock *Dst) const; 76 BasicBlock *getHotSucc(BasicBlock *BB) const; 83 raw_ostream &printEdgeProbability(raw_ostream &OS, const BasicBlock *Src, 84 const BasicBlock *Dst) const; 92 uint32_t getEdgeWeight(const BasicBlock *Src, 99 uint32_t getEdgeWeight(const BasicBlock *Src, const BasicBlock *Dst) const; 107 void setEdgeWeight(const BasicBlock *Src, unsigned IndexInSuccessors, [all …]
|
| HD | 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 …]
|
| HD | 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()
|
| HD | 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() 54 inline BasicBlock *getHeaderNode() const { return HeaderNode; } in getHeaderNode() 58 std::vector<BasicBlock*> Nodes; 64 std::vector<BasicBlock*> Successors; 69 std::vector<BasicBlock*> Predecessors; [all …]
|
| /trueos/contrib/llvm/include/llvm/Transforms/Utils/ |
| HD | BasicBlockUtils.h | 35 void DeleteDeadBlock(BasicBlock *BB); 42 void FoldSingleEntryPHINodes(BasicBlock *BB, Pass *P = 0); 49 bool DeleteDeadPHIs(BasicBlock *BB, const TargetLibraryInfo *TLI = 0); 53 bool MergeBlockIntoPredecessor(BasicBlock *BB, Pass *P = 0); 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, 96 inline BasicBlock *SplitCriticalEdge(BasicBlock *BB, succ_iterator SI, [all …]
|
| /trueos/contrib/llvm/lib/IR/ |
| HD | BasicBlock.cpp | 27 ValueSymbolTable *BasicBlock::getValueSymbolTable() { in getValueSymbolTable() 33 LLVMContext &BasicBlock::getContext() const { in getContext() 39 template class llvm::SymbolTableListTraits<Instruction, BasicBlock>; 42 BasicBlock::BasicBlock(LLVMContext &C, const Twine &Name, Function *NewParent, in BasicBlock() function in BasicBlock 43 BasicBlock *InsertBefore) in BasicBlock() 61 BasicBlock::~BasicBlock() { in ~BasicBlock() 85 void BasicBlock::setParent(Function *parent) { in setParent() 96 void BasicBlock::removeFromParent() { in removeFromParent() 100 void BasicBlock::eraseFromParent() { in eraseFromParent() 106 void BasicBlock::moveBefore(BasicBlock *MovePos) { in moveBefore() [all …]
|
| HD | Dominators.cpp | 64 TEMPLATE_INSTANTIATION(class llvm::DomTreeNodeBase<BasicBlock>); 65 TEMPLATE_INSTANTIATION(class llvm::DominatorTreeBase<BasicBlock>); 101 const BasicBlock *UseBB = User->getParent(); in dominates() 102 const BasicBlock *DefBB = Def->getParent(); in dominates() 127 BasicBlock::const_iterator I = DefBB->begin(); in dominates() 137 const BasicBlock *UseBB) const { in dominates() 138 const BasicBlock *DefBB = Def->getParent(); in dominates() 157 BasicBlock *NormalDest = II->getNormalDest(); in dominates() 163 const BasicBlock *UseBB) const { in dominates() 171 const BasicBlock *Start = BBE.getStart(); in dominates() [all …]
|
| /trueos/contrib/llvm/include/llvm/IR/ |
| HD | BasicBlock.h | 32 : public SymbolTableListTraits<Instruction, BasicBlock> { 72 class BasicBlock : public Value, // Basic blocks are data objects also 73 public ilist_node<BasicBlock> { 82 friend class SymbolTableListTraits<BasicBlock, Function>; 84 BasicBlock(const BasicBlock &) LLVM_DELETED_FUNCTION; 85 void operator=(const BasicBlock &) LLVM_DELETED_FUNCTION; 92 explicit BasicBlock(LLVMContext &C, const Twine &Name = "", 93 Function *Parent = 0, BasicBlock *InsertBefore = 0); 109 static BasicBlock *Create(LLVMContext &Context, const Twine &Name = "", 110 Function *Parent = 0,BasicBlock *InsertBefore = 0) { [all …]
|
| HD | Instructions.h | 65 const Twine &Name, BasicBlock *InsertAtEnd); 68 AllocaInst(Type *Ty, const Twine &Name, BasicBlock *InsertAtEnd); 73 const Twine &Name, BasicBlock *InsertAtEnd); 142 LoadInst(Value *Ptr, const Twine &NameStr, BasicBlock *InsertAtEnd); 146 BasicBlock *InsertAtEnd); 150 unsigned Align, BasicBlock *InsertAtEnd); 158 BasicBlock *InsertAtEnd); 161 LoadInst(Value *Ptr, const char *NameStr, BasicBlock *InsertAtEnd); 165 BasicBlock *InsertAtEnd); 266 StoreInst(Value *Val, Value *Ptr, BasicBlock *InsertAtEnd); [all …]
|
| HD | Function.h | 34 template<> struct ilist_traits<BasicBlock> 35 : public SymbolTableListTraits<BasicBlock, Function> { 39 BasicBlock *createSentinel() const { 40 return static_cast<BasicBlock*>(&Sentinel); 42 static void destroySentinel(BasicBlock*) {} 44 BasicBlock *provideInitialHead() const { return createSentinel(); } 45 BasicBlock *ensureHead(BasicBlock*) const { return createSentinel(); } 46 static void noteHead(BasicBlock*, BasicBlock*) {} 50 mutable ilist_half_node<BasicBlock> Sentinel; 74 typedef iplist<BasicBlock> BasicBlockListType; [all …]
|
| /trueos/contrib/llvm/lib/Transforms/Utils/ |
| HD | FlattenCFG.cpp | 30 bool FlattenParallelAndOr(BasicBlock *BB, IRBuilder<> &Builder, Pass *P = 0); 34 bool MergeIfRegion(BasicBlock *BB, IRBuilder<> &Builder, Pass *P = 0); 40 bool CompareIfRegionBlock(BasicBlock *Head1, BasicBlock *Head2, 41 BasicBlock *Block1, BasicBlock *Block2); 45 bool run(BasicBlock *BB); 123 bool FlattenCFGOpt::FlattenParallelAndOr(BasicBlock *BB, IRBuilder<> &Builder, in FlattenParallelAndOr() 129 BasicBlock *LastCondBlock = NULL; in FlattenParallelAndOr() 130 BasicBlock *FirstCondBlock = NULL; in FlattenParallelAndOr() 131 BasicBlock *UnCondBlock = NULL; in FlattenParallelAndOr() 135 SmallPtrSet<BasicBlock *, 16> Preds(pred_begin(BB), pred_end(BB)); in FlattenParallelAndOr() [all …]
|
| HD | LoopSimplify.cpp | 103 BasicBlock *RewriteLoopExitBlock(Loop *L, BasicBlock *Exit); 105 BasicBlock *Preheader); 106 BasicBlock *InsertUniqueBackedgeBlock(Loop *L, BasicBlock *Preheader); 110 static void PlaceSplitBlockCarefully(BasicBlock *NewBB, 111 SmallVectorImpl<BasicBlock*> &SplitPreds, 157 SmallPtrSet<BasicBlock*, 4> BadPreds; in ProcessLoop() 160 BasicBlock *P = *PI; in ProcessLoop() 166 for (SmallPtrSet<BasicBlock*, 4>::iterator I = BadPreds.begin(), in ProcessLoop() 187 SmallVector<BasicBlock*, 8> ExitingBlocks; in ProcessLoop() 189 for (SmallVectorImpl<BasicBlock *>::iterator I = ExitingBlocks.begin(), in ProcessLoop() [all …]
|
| HD | 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() 197 void llvm::ReplaceInstWithValue(BasicBlock::InstListType &BIL, in ReplaceInstWithValue() 198 BasicBlock::iterator &BI, Value *V) { in ReplaceInstWithValue() [all …]
|
| HD | LowerSwitch.cpp | 52 BasicBlock* BB; 54 CaseRange(Constant *low = 0, Constant *high = 0, BasicBlock *bb = 0) : in CaseRange() 63 BasicBlock* switchConvert(CaseItr Begin, CaseItr End, Value* Val, 64 BasicBlock* OrigBlock, BasicBlock* Default); 65 BasicBlock* newLeafBlock(CaseRange& Leaf, Value* Val, 66 BasicBlock* OrigBlock, BasicBlock* Default); 98 BasicBlock *Cur = I++; // Advance over block so we don't traverse new blocks in runOnFunction() 130 BasicBlock* LowerSwitch::switchConvert(CaseItr Begin, CaseItr End, in switchConvert() 131 Value* Val, BasicBlock* OrigBlock, in switchConvert() 132 BasicBlock* Default) in switchConvert() [all …]
|
| HD | LoopUnrollRuntime.cpp | 57 BasicBlock *LastPrologBB, BasicBlock *PrologEnd, in ConnectProlog() 58 BasicBlock *OrigPH, BasicBlock *NewPH, in ConnectProlog() 60 BasicBlock *Latch = L->getLoopLatch(); in ConnectProlog() 70 for (BasicBlock::iterator BBI = (*SBI)->begin(); in ConnectProlog() 112 BasicBlock *Exit = L->getUniqueExitBlock(); in ConnectProlog() 115 SmallVector<BasicBlock*, 4> Preds(pred_begin(Exit), pred_end(Exit)); in ConnectProlog() 119 SmallVector<BasicBlock*, 2> NewBBs; in ConnectProlog() 138 BasicBlock *InsertTop, in CloneLoopBlocks() 139 BasicBlock *InsertBot, in CloneLoopBlocks() 140 std::vector<BasicBlock *> &NewBlocks, in CloneLoopBlocks() [all …]
|
| HD | CloneFunction.cpp | 37 BasicBlock *llvm::CloneBasicBlock(const BasicBlock *BB, in CloneBasicBlock() 41 BasicBlock *NewBB = BasicBlock::Create(BB->getContext(), "", F); in CloneBasicBlock() 47 for (BasicBlock::const_iterator II = BB->begin(), IE = BB->end(); in CloneBasicBlock() 118 const BasicBlock &BB = *BI; in CloneFunctionInto() 121 BasicBlock *CBB = CloneBasicBlock(&BB, VMap, NameSuffix, NewFunc, CodeInfo); in CloneFunctionInto() 134 const_cast<BasicBlock*>(&BB)); in CloneFunctionInto() 145 for (Function::iterator BB = cast<BasicBlock>(VMap[OldFunc->begin()]), in CloneFunctionInto() 148 for (BasicBlock::iterator II = BB->begin(); II != BB->end(); ++II) in CloneFunctionInto() 223 void CloneBlock(const BasicBlock *BB, 224 std::vector<const BasicBlock*> &ToClone); [all …]
|
| HD | CodeExtractor.cpp | 50 static bool isBlockValidForExtraction(const BasicBlock &BB) { in isBlockValidForExtraction() 56 for (BasicBlock::const_iterator I = BB.begin(), E = BB.end(); I != E; ++I) { in isBlockValidForExtraction() 70 static SetVector<BasicBlock *> buildExtractionBlockSet(IteratorT BBBegin, in buildExtractionBlockSet() 72 SetVector<BasicBlock *> Result; in buildExtractionBlockSet() 89 for (SetVector<BasicBlock *>::iterator I = llvm::next(Result.begin()), in buildExtractionBlockSet() 103 static SetVector<BasicBlock *> 104 buildExtractionBlockSet(ArrayRef<BasicBlock *> BBs) { in buildExtractionBlockSet() 109 static SetVector<BasicBlock *> 113 return buildExtractionBlockSet(RN.getNodeAs<BasicBlock>()); in buildExtractionBlockSet() 120 CodeExtractor::CodeExtractor(BasicBlock *BB, bool AggregateArgs) in CodeExtractor() [all …]
|
| /trueos/contrib/llvm/lib/Analysis/ |
| HD | CFG.cpp | 29 SmallVectorImpl<std::pair<const BasicBlock*,const BasicBlock*> > &Result) { in FindFunctionBackedges() argument 30 const BasicBlock *BB = &F.getEntryBlock(); in FindFunctionBackedges() 34 SmallPtrSet<const BasicBlock*, 8> Visited; in FindFunctionBackedges() 35 SmallVector<std::pair<const BasicBlock*, succ_const_iterator>, 8> VisitStack; in FindFunctionBackedges() 36 SmallPtrSet<const BasicBlock*, 8> InStack; in FindFunctionBackedges() 42 std::pair<const BasicBlock*, succ_const_iterator> &Top = VisitStack.back(); in FindFunctionBackedges() 43 const BasicBlock *ParentBB = Top.first; in FindFunctionBackedges() 73 unsigned llvm::GetSuccessorNumber(BasicBlock *BB, BasicBlock *Succ) { in GetSuccessorNumber() 93 const BasicBlock *Dest = TI->getSuccessor(SuccNum); in isCriticalEdge() 98 const BasicBlock *FirstPred = *I; in isCriticalEdge() [all …]
|
| HD | RegionInfo.cpp | 53 Region::Region(BasicBlock *Entry, BasicBlock *Exit, RegionInfo* RInfo, in Region() 71 void Region::replaceEntry(BasicBlock *BB) { in replaceEntry() 75 void Region::replaceExit(BasicBlock *BB) { in replaceExit() 80 void Region::replaceEntryRecursive(BasicBlock *NewEntry) { in replaceEntryRecursive() 82 BasicBlock *OldEntry = getEntry(); in replaceEntryRecursive() 96 void Region::replaceExitRecursive(BasicBlock *NewExit) { in replaceExitRecursive() 98 BasicBlock *OldExit = getExit(); in replaceExitRecursive() 112 bool Region::contains(const BasicBlock *B) const { in contains() 113 BasicBlock *BB = const_cast<BasicBlock*>(B); in contains() 118 BasicBlock *entry = getEntry(), *exit = getExit(); in contains() [all …]
|
| /trueos/contrib/llvm/lib/Transforms/Scalar/ |
| HD | StructurizeCFG.cpp | 28 typedef std::pair<BasicBlock *, Value *> BBValuePair; 31 typedef SmallVector<BasicBlock*, 8> BBVector; 35 typedef SmallPtrSet<BasicBlock *, 8> BBSet; 38 typedef MapVector<BasicBlock *, BBVector> BB2BBVecMap; 41 typedef DenseMap<BasicBlock *, PhiMap> BBPhiMap; 42 typedef DenseMap<BasicBlock *, Value *> BBPredicates; 43 typedef DenseMap<BasicBlock *, BBPredicates> PredMap; 44 typedef DenseMap<BasicBlock *, BasicBlock*> BB2BBMap; 59 BasicBlock *Result; 71 void addBlock(BasicBlock *BB, bool Remember = true) { in addBlock() [all …]
|
| HD | JumpThreading.cpp | 52 typedef SmallVectorImpl<std::pair<Constant*, BasicBlock*> > PredValueInfo; 53 typedef SmallVector<std::pair<Constant*, BasicBlock*>, 8> PredValueInfoTy; 83 SmallPtrSet<BasicBlock*, 16> LoopHeaders; 85 SmallSet<AssertingVH<BasicBlock>, 16> LoopHeaders; 87 DenseSet<std::pair<Value*, BasicBlock*> > RecursionSet; 91 DenseSet<std::pair<Value*, BasicBlock*> > &TheSet; 92 std::pair<Value*, BasicBlock*> ThePair; 94 RecursionSetRemover(DenseSet<std::pair<Value*, BasicBlock*> > &S, in RecursionSetRemover() 95 std::pair<Value*, BasicBlock*> P) in RecursionSetRemover() 117 bool ProcessBlock(BasicBlock *BB); [all …]
|
| HD | LoopDeletion.cpp | 54 bool isLoopDead(Loop *L, SmallVectorImpl<BasicBlock *> &exitingBlocks, 55 SmallVectorImpl<BasicBlock *> &exitBlocks, 56 bool &Changed, BasicBlock *Preheader); 80 SmallVectorImpl<BasicBlock *> &exitingBlocks, in isLoopDead() 81 SmallVectorImpl<BasicBlock *> &exitBlocks, in isLoopDead() 82 bool &Changed, BasicBlock *Preheader) { in isLoopDead() 83 BasicBlock *exitBlock = exitBlocks[0]; in isLoopDead() 90 BasicBlock::iterator BI = exitBlock->begin(); in isLoopDead() 116 for (BasicBlock::iterator BI = (*LI)->begin(), BE = (*LI)->end(); in isLoopDead() 135 BasicBlock *preheader = L->getLoopPreheader(); in runOnLoop() [all …]
|
| /trueos/contrib/llvm/include/llvm/Support/ |
| HD | CFG.h | 84 typedef PredIterator<BasicBlock, Value::use_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() 226 typedef SuccIterator<TerminatorInst*, BasicBlock> succ_iterator; 228 const BasicBlock> succ_const_iterator; 230 inline succ_iterator succ_begin(BasicBlock *BB) { in succ_begin() 233 inline succ_const_iterator succ_begin(const BasicBlock *BB) { in succ_begin() [all …]
|
| HD | 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()
|