Home
last modified time | relevance | path

Searched refs:CFGBlock (Results 1 – 25 of 47) sorted by relevance

12

/netbsd-src/external/apache2/llvm/dist/clang/lib/Analysis/
H A DCFG.cpp372 CFGBlock *block = nullptr;
376 BlockScopePosPair(CFGBlock *b, LocalScope::const_iterator scopePos) in BlockScopePosPair()
474 CFGBlock *Block = nullptr;
477 CFGBlock *Succ = nullptr;
482 CFGBlock *SwitchTerminatedBlock = nullptr;
483 CFGBlock *DefaultCaseBlock = nullptr;
487 CFGBlock *TryTerminatedBlock = nullptr;
543 CFGBlock *VisitInitListExpr(InitListExpr *ILE, AddStmtChoice asc);
544 CFGBlock *VisitAddrLabelExpr(AddrLabelExpr *A, AddStmtChoice asc);
545 CFGBlock *VisitBinaryOperator(BinaryOperator *B, AddStmtChoice asc);
[all …]
H A DReachableCode.cpp49 static bool isTrivialDoWhile(const CFGBlock *B, const Stmt *S) { in isTrivialDoWhile()
69 static bool isBuiltinAssumeFalse(const CFGBlock *B, const Stmt *S, in isBuiltinAssumeFalse()
84 static bool isDeadReturn(const CFGBlock *B, const Stmt *S) { in isDeadReturn()
88 const CFGBlock *Current = B; in isDeadReturn()
90 for (CFGBlock::const_reverse_iterator I = Current->rbegin(), in isDeadReturn()
294 static bool shouldTreatSuccessorsAsReachable(const CFGBlock *B, in shouldTreatSuccessorsAsReachable()
309 static unsigned scanFromBlock(const CFGBlock *Start, in scanFromBlock()
316 SmallVector<const CFGBlock*, 32> WL; in scanFromBlock()
329 const CFGBlock *item = WL.pop_back_val(); in scanFromBlock()
341 for (CFGBlock::const_succ_iterator I = item->succ_begin(), in scanFromBlock()
[all …]
H A DCFGReachabilityAnalysis.cpp26 bool CFGReverseBlockReachabilityAnalysis::isReachable(const CFGBlock *Src, in isReachable()
27 const CFGBlock *Dst) { in isReachable()
42 void CFGReverseBlockReachabilityAnalysis::mapReachability(const CFGBlock *Dst) { in mapReachability()
43 SmallVector<const CFGBlock *, 11> worklist; in mapReachability()
55 const CFGBlock *block = worklist.pop_back_val(); in mapReachability()
70 for (CFGBlock::const_pred_iterator i = block->pred_begin(), in mapReachability()
H A DCalledOnceCheck.cpp512 clarify(const CFGBlock *Conditional, const CFGBlock *SuccWithoutCall) { in clarify()
578 static unsigned getSuccessorIndex(const CFGBlock *Parent, in getSuccessorIndex()
579 const CFGBlock *Child) { in getSuccessorIndex()
580 CFGBlock::const_succ_iterator It = llvm::find(Parent->succs(), Child); in getSuccessorIndex()
598 NotCalledClarifier(const CFGBlock *Parent, const CFGBlock *SuccInQuestion) in NotCalledClarifier()
601 const CFGBlock *Parent, *SuccInQuestion;
716 const CFGBlock *Exit = &FunctionCFG.getExit(); in check()
720 while (const CFGBlock *BB = Worklist.dequeue()) { in check()
739 void check(const CFGBlock *BB) { in check()
763 void checkEntry(const CFGBlock *Entry) { in checkEntry()
[all …]
H A DCFGStmtMap.cpp21 typedef llvm::DenseMap<const Stmt*, CFGBlock*> SMap;
26 CFGBlock *CFGStmtMap::getBlock(Stmt *S) { in getBlock()
35 CFGBlock *B = I->second; in getBlock()
48 static void Accumulate(SMap &SM, CFGBlock *B) { in Accumulate()
50 for (CFGBlock::iterator I = B->begin(), E = B->end(); I != E; ++I) { in Accumulate()
56 CFGBlock *&Entry = SM[CS->getStmt()]; in Accumulate()
H A DLiveVariables.cpp33 llvm::DenseMap<const CFGBlock *, LiveVariables::LivenessValues> blocksEndToLiveness;
34 llvm::DenseMap<const CFGBlock *, LiveVariables::LivenessValues> blocksBeginToLiveness;
44 runOnBlock(const CFGBlock *block, LiveVariables::LivenessValues val,
135 bool LiveVariables::isLive(const CFGBlock *B, const VarDecl *D) { in isLive()
156 const CFGBlock *currentBlock;
161 const CFGBlock *CurrentBlock) in TransferFunctions()
457 LiveVariablesImpl::runOnBlock(const CFGBlock *block, in runOnBlock()
468 for (CFGBlock::const_reverse_iterator it = block->rbegin(), in runOnBlock()
521 for (const CFGBlock *B : cfg->nodes()) { in computeLiveness()
525 while (const CFGBlock *block = worklist.dequeue()) { in computeLiveness()
[all …]
H A DUninitializedValues.cpp132 ValueVector &getValueVector(const CFGBlock *block) { in getValueVector()
138 bool updateValueVectorWithScratch(const CFGBlock *block);
148 Value getValue(const CFGBlock *block, const CFGBlock *dstBlock, in getValue()
173 static void printVector(const CFGBlock *block, ValueVector &bv, in printVector()
195 bool CFGBlockValues::updateValueVectorWithScratch(const CFGBlock *block) { in updateValueVectorWithScratch()
468 const CFGBlock *block;
476 const CFGBlock *block, AnalysisDeclContext &ac, in TransferFunctions()
557 SmallVector<const CFGBlock*, 32> Queue; in getUninitUse()
565 const CFGBlock *B = Queue.pop_back_val(); in getUninitUse()
571 for (CFGBlock::const_pred_iterator I = B->pred_begin(), E = B->pred_end(); in getUninitUse()
[all …]
H A DConsumed.cpp61 static SourceLocation getFirstStmtLoc(const CFGBlock *Block) { in getFirstStmtLoc()
76 static SourceLocation getLastStmtLoc(const CFGBlock *Block) { in getLastStmtLoc()
82 for (CFGBlock::const_reverse_iterator BI = Block->rbegin(), in getLastStmtLoc()
1003 bool ConsumedBlockInfo::allBackEdgesVisited(const CFGBlock *CurrBlock, in allBackEdgesVisited()
1004 const CFGBlock *TargetBlock) { in allBackEdgesVisited()
1009 for (CFGBlock::const_pred_iterator PI = TargetBlock->pred_begin(), in allBackEdgesVisited()
1018 const CFGBlock *Block, ConsumedStateMap *StateMap, in addInfo()
1032 void ConsumedBlockInfo::addInfo(const CFGBlock *Block, in addInfo()
1045 ConsumedStateMap* ConsumedBlockInfo::borrowInfo(const CFGBlock *Block) { in borrowInfo()
1052 void ConsumedBlockInfo::discardInfo(const CFGBlock *Block) { in discardInfo()
[all …]
/netbsd-src/external/apache2/llvm/dist/clang/include/clang/Analysis/Analyses/
H A DDominators.h38 using DomTreeNode = llvm::DomTreeNodeBase<CFGBlock>;
46 using DominatorTreeBase = llvm::DominatorTreeBase<CFGBlock, IsPostDom>;
61 CFGBlock *getRoot() const { in getRoot()
136 bool dominates(const CFGBlock *A, const CFGBlock *B) const { in dominates()
143 bool properlyDominates(const CFGBlock *A, const CFGBlock *B) const { in properlyDominates()
149 CFGBlock *findNearestCommonDominator(CFGBlock *A, CFGBlock *B) { in findNearestCommonDominator()
153 const CFGBlock *findNearestCommonDominator(const CFGBlock *A, in findNearestCommonDominator()
154 const CFGBlock *B) { in findNearestCommonDominator()
160 void changeImmediateDominator(CFGBlock *N, CFGBlock *NewIDom) { in changeImmediateDominator()
165 bool isReachableFromEntry(const CFGBlock *A) { in isReachableFromEntry()
[all …]
H A DThreadSafetyCommon.h102 void enterCFG(CFG *Cfg, const NamedDecl *D, const CFGBlock *First) {} in enterCFG()
105 void enterCFGBlock(const CFGBlock *B) {} in enterCFGBlock()
111 void handlePredecessor(const CFGBlock *Pred) {} in handlePredecessor()
114 void handlePredecessorBackEdge(const CFGBlock *Pred) {} in handlePredecessorBackEdge()
117 void enterCFGBlockBody(const CFGBlock *B) {} in enterCFGBlockBody()
126 void exitCFGBlockBody(const CFGBlock *B) {} in exitCFGBlockBody()
132 void handleSuccessor(const CFGBlock *Succ) {} in handleSuccessor()
135 void handleSuccessorBackEdge(const CFGBlock *Succ) {} in handleSuccessorBackEdge()
138 void exitCFGBlock(const CFGBlock *B) {} in exitCFGBlock()
141 void exitCFG(const CFGBlock *Last) {} in exitCFG()
[all …]
H A DConsumed.h176 void intersectAtLoopHead(const CFGBlock *LoopHead, const CFGBlock *LoopBack,
221 bool allBackEdgesVisited(const CFGBlock *CurrBlock,
222 const CFGBlock *TargetBlock);
224 void addInfo(const CFGBlock *Block, ConsumedStateMap *StateMap,
226 void addInfo(const CFGBlock *Block,
229 ConsumedStateMap* borrowInfo(const CFGBlock *Block);
231 void discardInfo(const CFGBlock *Block);
233 std::unique_ptr<ConsumedStateMap> getInfo(const CFGBlock *Block);
235 bool isBackEdge(const CFGBlock *From, const CFGBlock *To);
236 bool isBackEdgeTarget(const CFGBlock *Block);
[all …]
H A DPostOrderCFGView.h44 struct iterator { using value_type = const CFGBlock *; };
51 std::pair<llvm::NoneType, bool> insert(const CFGBlock *Block) { in insert()
67 bool alreadySet(const CFGBlock *Block) { in alreadySet()
74 std::vector<const CFGBlock *> Blocks;
76 using BlockOrderTy = llvm::DenseMap<const CFGBlock *, unsigned>;
82 using iterator = std::vector<const CFGBlock *>::reverse_iterator;
83 using const_iterator = std::vector<const CFGBlock *>::const_reverse_iterator;
101 bool operator()(const CFGBlock *b1, const CFGBlock *b2) const;
H A DCFGReachabilityAnalysis.h24 class CFGBlock; variable
42 bool isReachable(const CFGBlock *Src, const CFGBlock *Dst);
45 void mapReachability(const CFGBlock *Dst);
H A DLiveVariables.h23 class CFGBlock; variable
62 const CFGBlock *currentBlock, in observeStmt()
78 bool isLive(const CFGBlock *B, const VarDecl *D);
/netbsd-src/external/apache2/llvm/dist/clang/include/clang/StaticAnalyzer/Core/PathSensitive/
H A DCoreEngine.h69 std::vector<std::pair<const CFGBlock *, const ExplodedNode *>>;
109 void HandleBlockExit(const CFGBlock *B, ExplodedNode *Pred);
113 void HandlePostStmt(const CFGBlock *B, unsigned StmtIdx, ExplodedNode *Pred);
115 void HandleBranch(const Stmt *Cond, const Stmt *Term, const CFGBlock *B,
118 const CFGBlock *B, ExplodedNode *Pred);
121 void HandleStaticInit(const DeclStmt *DS, const CFGBlock *B,
124 void HandleVirtualBaseBranch(const CFGBlock *B, ExplodedNode *Pred);
167 void addAbortedBlock(const ExplodedNode *node, const CFGBlock *block) { in addAbortedBlock()
194 void enqueue(ExplodedNodeSet &Set, const CFGBlock *Block, unsigned Idx);
201 void enqueueStmtNode(ExplodedNode *N, const CFGBlock *Block, unsigned Idx);
[all …]
H A DWorkList.h23 class CFGBlock; variable
30 const CFGBlock *block;
35 const CFGBlock *B, unsigned idx) in WorkListUnit()
54 const CFGBlock *getBlock() const { return block; } in getBlock()
68 void enqueue(ExplodedNode *N, const CFGBlock *B, unsigned idx) { in enqueue()
/netbsd-src/external/apache2/llvm/dist/clang/include/clang/Analysis/
H A DCFG.h576 class CFGBlock {
627 std::conditional_t<IsConst, const CFGBlock *, CFGBlock *>;
678 std::conditional_t<IsConst, const CFGBlock *, CFGBlock *>;
688 using ElementRef = typename CFGBlock::ElementRefImpl<IsConst>;
728 getIndexInBlock(CFGBlock::ElementRefIterator<true, IsOtherConst> E) { in getIndexInBlock()
734 getIndexInBlock(CFGBlock::ElementRefIterator<false, IsOtherConst> E) { in getIndexInBlock()
798 CFGBlock *ReachableBlock;
799 llvm::PointerIntPair<CFGBlock *, 2> UnreachableBlock;
803 AdjacentBlock(CFGBlock *B, bool IsReachable);
807 AdjacentBlock(CFGBlock *B, CFGBlock *AlternateBlock);
[all …]
H A DProgramPoint.h227 BlockEntrance(const CFGBlock *B, const LocationContext *L,
233 const CFGBlock *getBlock() const { in getBlock()
234 return reinterpret_cast<const CFGBlock*>(getData1()); in getBlock()
238 const CFGBlock *B = getBlock(); in getFirstElement()
252 BlockExit(const CFGBlock *B, const LocationContext *L) in BlockExit()
255 const CFGBlock *getBlock() const { in getBlock()
256 return reinterpret_cast<const CFGBlock*>(getData1()); in getBlock()
342 const CFGBlock *getBlock() const { in getBlock()
505 BlockEdge(const CFGBlock *B1, const CFGBlock *B2, const LocationContext *L) in BlockEdge()
511 const CFGBlock *getSrc() const { in getSrc()
[all …]
H A DAnalysisDeclContext.h127 const CFGBlock *getBlockForRegisteredExpression(const Stmt *stmt);
182 const Stmt *S, const CFGBlock *Blk,
300 const CFGBlock *Block;
311 const Stmt *S, const CFGBlock *Block, unsigned BlockCount, in StackFrameContext()
321 const CFGBlock *getCallSiteBlock() const { return Block; } in getCallSiteBlock()
333 const CFGBlock *Block, unsigned BlockCount, in Profile()
401 const Stmt *S, const CFGBlock *Block,
472 const Stmt *S, const CFGBlock *Block, in getStackFrame()
/netbsd-src/external/apache2/llvm/dist/clang/include/clang/Analysis/FlowSensitive/
H A DDataflowWorklist.h25 llvm::PriorityQueue<const CFGBlock *,
26 SmallVector<const CFGBlock *, QueueSize>, Comp>
35 void enqueueBlock(const CFGBlock *Block) { in enqueueBlock()
42 const CFGBlock *dequeue() { in dequeue()
45 const CFGBlock *B = WorkList.top(); in dequeue()
54 bool operator()(const CFGBlock *lhs, const CFGBlock *rhs) const { in operator()
70 void enqueueSuccessors(const CFGBlock *Block) { in enqueueSuccessors()
86 void enqueuePredecessors(const CFGBlock *Block) { in enqueuePredecessors()
H A DDataflowValues.h52 typedef llvm::DenseMap<const CFGBlock*, ValTy> BlockDataMapTy;
101 ValTy& getBlockData(const CFGBlock *B) { in getBlockData()
107 const ValTy& getBlockData(const CFGBlock *B) const { in getBlockData()
/netbsd-src/external/apache2/llvm/dist/clang/lib/StaticAnalyzer/Checkers/
H A DUnreachableCodeChecker.cpp39 static inline const Stmt *getUnreachableStmt(const CFGBlock *CB);
40 static void FindUnreachableEntryPoints(const CFGBlock *CB,
43 static bool isInvalidPath(const CFGBlock *CB, const ParentMap &PM);
44 static inline bool isEmptyCFGBlock(const CFGBlock *CB);
78 const CFGBlock *CB = BE->getBlock(); in checkEndAnalysis()
96 const CFGBlock *CB = *I; in checkEndAnalysis()
130 for (CFGBlock::const_iterator ci = CB->begin(), ce = CB->end(); in checkEndAnalysis()
178 void UnreachableCodeChecker::FindUnreachableEntryPoints(const CFGBlock *CB, in FindUnreachableEntryPoints()
183 for (CFGBlock::const_pred_iterator I = CB->pred_begin(), E = CB->pred_end(); in FindUnreachableEntryPoints()
200 const Stmt *UnreachableCodeChecker::getUnreachableStmt(const CFGBlock *CB) { in getUnreachableStmt()
[all …]
H A DAnalyzerStatsChecker.cpp45 llvm::SmallPtrSet<const CFGBlock*, 32> reachable; in checkEndAnalysis()
63 const CFGBlock *CB = BE->getBlock(); in checkEndAnalysis()
75 const CFGBlock *CB = *I; in checkEndAnalysis()
123 const CFGBlock *Exit = BE.getDst(); in checkEndAnalysis()
/netbsd-src/external/apache2/llvm/dist/clang/lib/StaticAnalyzer/Core/
H A DCoreEngine.cpp84 const CFGBlock *Entry = &(L->getCFG()->getEntry()); in ExecuteWorkList()
96 const CFGBlock *Succ = *(Entry->succ_begin()); in ExecuteWorkList()
209 const CFGBlock *Blk = L.getDst(); in HandleBlockEdge()
295 void CoreEngine::HandleBlockExit(const CFGBlock * B, ExplodedNode *Pred) { in HandleBlockExit()
331 for (CFGBlock::const_succ_iterator it = B->succ_begin(), in HandleBlockExit()
333 if (const CFGBlock *succ = *it) { in HandleBlockExit()
425 const CFGBlock * B, ExplodedNode *Pred) { in HandleBranch()
436 const CFGBlock *B, in HandleCleanupTemporaryBranch()
447 void CoreEngine::HandleStaticInit(const DeclStmt *DS, const CFGBlock *B, in HandleStaticInit()
458 void CoreEngine::HandlePostStmt(const CFGBlock *B, unsigned StmtIdx, in HandlePostStmt()
[all …]
/netbsd-src/external/apache2/llvm/dist/clang/lib/Sema/
H A DAnalysisBasedWarnings.cpp188 static bool hasRecursiveCallInPath(const FunctionDecl *FD, CFGBlock &Block) { in hasRecursiveCallInPath()
220 llvm::SmallPtrSet<CFGBlock *, 16> Visited; in checkForRecursiveFunctionCall()
221 llvm::SmallVector<CFGBlock *, 16> WorkList; in checkForRecursiveFunctionCall()
231 CFGBlock *Block = WorkList.pop_back_val(); in checkForRecursiveFunctionCall()
234 if (CFGBlock *SuccBlock = *I) { in checkForRecursiveFunctionCall()
283 static bool throwEscapes(Sema &S, const CXXThrowExpr *E, CFGBlock &ThrowBlock, in throwEscapes()
285 SmallVector<CFGBlock *, 16> Stack; in throwEscapes()
292 CFGBlock &UnwindBlock = *Stack.back(); in throwEscapes()
322 llvm::function_ref<void(const CXXThrowExpr *, CFGBlock &)> Visit) { in visitReachableThrows()
325 for (CFGBlock *B : *BodyCFG) { in visitReachableThrows()
[all …]

12