Home
last modified time | relevance | path

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

12

/freebsd-12.1/contrib/llvm/tools/clang/lib/Analysis/
H A DCFG.cpp560 std::pair<CFGBlock *, CFGBlock *> VisitLogicalOperator(BinaryOperator *B,
670 CFGBlock *NYS() { in NYS()
856 void addSuccessor(CFGBlock *B, CFGBlock *S, bool IsReachable = true) { in addSuccessor()
863 void addSuccessor(CFGBlock *B, CFGBlock *ReachableBlock, CFGBlock *AltBlock) { in addSuccessor()
2250 std::pair<CFGBlock*, CFGBlock*>
3284 CFGBlock *
4652 CFGBlock *Mem = getAllocator().Allocate<CFGBlock>(); in createBlock()
4739 CFGBlock::AdjacentBlock::AdjacentBlock(CFGBlock *B, bool IsReachable) in AdjacentBlock()
4744 CFGBlock::AdjacentBlock::AdjacentBlock(CFGBlock *B, CFGBlock *AlternateBlock) in AdjacentBlock()
4760 bool CFGBlock::FilterEdge(const CFGBlock::FilterOptions &F, in FilterEdge()
[all …]
H A DReachableCode.cpp88 const CFGBlock *Current = B; in isDeadReturn()
315 SmallVector<const CFGBlock*, 32> WL; in scanFromBlock()
328 const CFGBlock *item = WL.pop_back_val(); in scanFromBlock()
342 const CFGBlock *B = *I; in scanFromBlock()
388 SmallVector<const CFGBlock *, 10> WorkList;
403 void enqueue(const CFGBlock *block);
411 void reportDeadCode(const CFGBlock *B,
430 if (const CFGBlock *PredBlock = *I) { in isDeadCodeRoot()
505 if (const CFGBlock *predBlock = *I) in scanBackwards()
535 const CFGBlock *Block = I->first; in scanBackwards()
[all …]
H A DLiveVariables.cpp34 llvm::PriorityQueue<const CFGBlock *, SmallVector<const CFGBlock *, 20>,
43 void enqueueBlock(const CFGBlock *block);
44 void enqueuePredecessors(const CFGBlock *block);
46 const CFGBlock *dequeue();
65 const CFGBlock *DataflowWorklist::dequeue() { in dequeue()
68 const CFGBlock *b = worklist.top(); in dequeue()
205 const CFGBlock *currentBlock;
564 const CFGBlock *block = *it; in computeLiveness()
597 if (const CFGBlock *succ = *it) { in computeLiveness()
624 std::vector<const CFGBlock *> vec; in dumpBlockLiveness()
[all …]
H A DCFGReachabilityAnalysis.cpp27 bool CFGReverseBlockReachabilityAnalysis::isReachable(const CFGBlock *Src, in isReachable()
28 const CFGBlock *Dst) { in isReachable()
43 void CFGReverseBlockReachabilityAnalysis::mapReachability(const CFGBlock *Dst) { in mapReachability()
44 SmallVector<const CFGBlock *, 11> worklist; in mapReachability()
56 const CFGBlock *block = worklist.pop_back_val(); in mapReachability()
71 for (CFGBlock::const_pred_iterator i = block->pred_begin(), in mapReachability()
H A DUninitializedValues.cpp148 Value getValue(const CFGBlock *block, const CFGBlock *dstBlock, in getValue()
224 SmallVector<const CFGBlock *, 20> worklist;
240 const CFGBlock *dequeue();
248 const CFGBlock *Successor = *I; in enqueueSuccessors()
257 const CFGBlock *B = nullptr; in dequeue()
512 const CFGBlock *block;
598 SmallVector<const CFGBlock*, 32> Queue; in getUninitUse()
614 const CFGBlock *Pred = *I; in getUninitUse()
663 const CFGBlock *Succ = *I; in getUninitUse()
831 const CFGBlock *pred = *I; in runOnBlock()
[all …]
H A DCFGStmtMap.cpp22 typedef llvm::DenseMap<const Stmt*, CFGBlock*> SMap;
27 CFGBlock *CFGStmtMap::getBlock(Stmt *S) { in getBlock()
36 CFGBlock *B = I->second; in getBlock()
49 static void Accumulate(SMap &SM, CFGBlock *B) { in Accumulate()
51 for (CFGBlock::iterator I = B->begin(), E = B->end(); I != E; ++I) { in Accumulate()
57 CFGBlock *&Entry = SM[CS->getStmt()]; in Accumulate()
H A DConsumed.cpp62 static SourceLocation getFirstStmtLoc(const CFGBlock *Block) { in getFirstStmtLoc()
77 static SourceLocation getLastStmtLoc(const CFGBlock *Block) { in getLastStmtLoc()
83 for (CFGBlock::const_reverse_iterator BI = Block->rbegin(), in getLastStmtLoc()
1019 const CFGBlock *Block, ConsumedStateMap *StateMap, in addInfo()
1033 void ConsumedBlockInfo::addInfo(const CFGBlock *Block, in addInfo()
1053 void ConsumedBlockInfo::discardInfo(const CFGBlock *Block) { in discardInfo()
1058 ConsumedBlockInfo::getInfo(const CFGBlock *Block) { in getInfo()
1066 bool ConsumedBlockInfo::isBackEdge(const CFGBlock *From, const CFGBlock *To) { in isBackEdge()
1082 for (CFGBlock::const_pred_iterator PI = Block->pred_begin(), in isBackEdgeTarget()
1229 bool ConsumedAnalyzer::splitState(const CFGBlock *CurrBlock, in splitState()
[all …]
/freebsd-12.1/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/
H A DDominators.h38 using DomTreeNode = llvm::DomTreeNodeBase<CFGBlock>;
47 llvm::DomTreeBase<CFGBlock> *DT;
50 DT = new llvm::DomTreeBase<CFGBlock>(); in DominatorTree()
55 llvm::DomTreeBase<CFGBlock>& getBase() { return *DT; } in getBase()
58 CFGBlock *getRoot() const { in getRoot()
110 bool dominates(const CFGBlock *A, const CFGBlock *B) const { in dominates()
116 bool properlyDominates(const CFGBlock *A, const CFGBlock *B) const { in properlyDominates()
122 CFGBlock *findNearestCommonDominator(CFGBlock *A, CFGBlock *B) { in findNearestCommonDominator()
126 const CFGBlock *findNearestCommonDominator(const CFGBlock *A, in findNearestCommonDominator()
133 void changeImmediateDominator(CFGBlock *N, CFGBlock *NewIDom) { in changeImmediateDominator()
[all …]
H A DConsumed.h177 void intersectAtLoopHead(const CFGBlock *LoopHead, const CFGBlock *LoopBack,
222 bool allBackEdgesVisited(const CFGBlock *CurrBlock,
223 const CFGBlock *TargetBlock);
225 void addInfo(const CFGBlock *Block, ConsumedStateMap *StateMap,
227 void addInfo(const CFGBlock *Block,
230 ConsumedStateMap* borrowInfo(const CFGBlock *Block);
232 void discardInfo(const CFGBlock *Block);
234 std::unique_ptr<ConsumedStateMap> getInfo(const CFGBlock *Block);
236 bool isBackEdge(const CFGBlock *From, const CFGBlock *To);
237 bool isBackEdgeTarget(const CFGBlock *Block);
[all …]
H A DThreadSafetyCommon.h106 void enterCFGBlock(const CFGBlock *B) {} in enterCFGBlock()
118 void enterCFGBlockBody(const CFGBlock *B) {} in enterCFGBlockBody()
127 void exitCFGBlockBody(const CFGBlock *B) {} in exitCFGBlockBody()
139 void exitCFGBlock(const CFGBlock *B) {} in exitCFGBlock()
142 void exitCFG(const CFGBlock *Last) {} in exitCFG()
183 SmallVector<CFGBlock*, 4> BackEdges; in walk()
452 void enterCFGBlock(const CFGBlock *B);
456 void enterCFGBlockBody(const CFGBlock *B);
459 void exitCFGBlockBody(const CFGBlock *B);
463 void exitCFGBlock(const CFGBlock *B);
[all …]
H A DPostOrderCFGView.h45 struct iterator { using value_type = const CFGBlock *; };
52 std::pair<llvm::NoneType, bool> insert(const CFGBlock *Block) { in insert()
68 bool alreadySet(const CFGBlock *Block) { in alreadySet()
75 std::vector<const CFGBlock *> Blocks;
77 using BlockOrderTy = llvm::DenseMap<const CFGBlock *, unsigned>;
83 using iterator = std::vector<const CFGBlock *>::reverse_iterator;
84 using const_iterator = std::vector<const CFGBlock *>::const_reverse_iterator;
102 bool operator()(const CFGBlock *b1, const CFGBlock *b2) const;
H A DCFGReachabilityAnalysis.h25 class CFGBlock; variable
43 bool isReachable(const CFGBlock *Src, const CFGBlock *Dst);
46 void mapReachability(const CFGBlock *Dst);
H A DLiveVariables.h24 class CFGBlock; variable
63 const CFGBlock *currentBlock, in observeStmt()
79 bool isLive(const CFGBlock *B, const VarDecl *D);
/freebsd-12.1/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/
H A DCoreEngine.h201 const CFGBlock *Block;
423 const CFGBlock *DstT;
424 const CFGBlock *DstF;
434 const CFGBlock *dstT, const CFGBlock *dstF) in BranchNodeBuilder()
444 const CFGBlock *dstT, const CFGBlock *dstF) in BranchNodeBuilder()
471 const CFGBlock *Src;
472 const CFGBlock &DispatchBlock;
484 CFGBlock::const_succ_iterator I;
496 const CFGBlock *getBlock() const { in getBlock()
519 const CFGBlock *Src;
[all …]
H A DSubEngine.h22 class CFGBlock; variable
79 const CFGBlock *DstT,
80 const CFGBlock *DstF) = 0;
89 const CFGBlock *DstT,
90 const CFGBlock *DstF) = 0;
98 const CFGBlock *DstT,
99 const CFGBlock *DstF) = 0;
H A DWorkList.h24 class CFGBlock; variable
31 const CFGBlock *block;
36 const CFGBlock *B, unsigned idx) in WorkListUnit()
55 const CFGBlock *getBlock() const { return block; } in getBlock()
69 void enqueue(ExplodedNode *N, const CFGBlock *B, unsigned idx) { in enqueue()
/freebsd-12.1/contrib/llvm/tools/clang/include/clang/Analysis/
H A DCFG.h552 class CFGBlock {
628 CFGBlock *ReachableBlock;
637 AdjacentBlock(CFGBlock *B, CFGBlock *AlternateBlock);
651 operator CFGBlock*() const {
655 CFGBlock& operator *() const {
659 CFGBlock* operator ->() const {
786 const CFGBlock *Dst);
793 const CFGBlock *From;
1054 CFGBlock *createBlock();
1199 CFGBlock *Entry = nullptr;
[all …]
H A DProgramPoint.h235 const CFGBlock *getBlock() const { in getBlock()
240 const CFGBlock *B = getBlock(); in getFirstElement()
254 BlockExit(const CFGBlock *B, const LocationContext *L) in BlockExit()
257 const CFGBlock *getBlock() const { in getBlock()
344 const CFGBlock *getBlock() const { in getBlock()
507 BlockEdge(const CFGBlock *B1, const CFGBlock *B2, const LocationContext *L) in BlockEdge()
513 const CFGBlock *getSrc() const { in getSrc()
514 return static_cast<const CFGBlock*>(getData1()); in getSrc()
517 const CFGBlock *getDst() const { in getDst()
518 return static_cast<const CFGBlock*>(getData2()); in getDst()
[all …]
H A DAnalysisDeclContext.h134 const CFGBlock *getBlockForRegisteredExpression(const Stmt *stmt);
188 const CFGBlock *Blk,
299 const CFGBlock *Block;
305 const Stmt *s, const CFGBlock *blk, in StackFrameContext()
316 const CFGBlock *getCallSiteBlock() const { return Block; } in getCallSiteBlock()
327 const CFGBlock *blk, unsigned idx) { in Profile()
409 const CFGBlock *blk, unsigned idx);
482 const CFGBlock *Blk, in getStackFrame()
497 const CFGBlock *Blk, in getStackFrame()
/freebsd-12.1/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/
H A DUnreachableCodeChecker.cpp40 static inline const Stmt *getUnreachableStmt(const CFGBlock *CB);
41 static void FindUnreachableEntryPoints(const CFGBlock *CB,
44 static bool isInvalidPath(const CFGBlock *CB, const ParentMap &PM);
45 static inline bool isEmptyCFGBlock(const CFGBlock *CB);
79 const CFGBlock *CB = BE->getBlock(); in checkEndAnalysis()
97 const CFGBlock *CB = *I; in checkEndAnalysis()
131 for (CFGBlock::const_iterator ci = CB->begin(), ce = CB->end(); in checkEndAnalysis()
179 void UnreachableCodeChecker::FindUnreachableEntryPoints(const CFGBlock *CB, in FindUnreachableEntryPoints()
219 bool UnreachableCodeChecker::isInvalidPath(const CFGBlock *CB, in isInvalidPath()
231 const CFGBlock *pred = *CB->pred_begin(); in isInvalidPath()
[all …]
H A DAnalyzerStatsChecker.cpp46 llvm::SmallPtrSet<const CFGBlock*, 32> reachable; in checkEndAnalysis()
64 const CFGBlock *CB = BE->getBlock(); in checkEndAnalysis()
76 const CFGBlock *CB = *I; in checkEndAnalysis()
124 const CFGBlock *Exit = BE.getDst(); in checkEndAnalysis()
H A DDeadStoresChecker.cpp76 bool isReachable(const CFGBlock *block) const { in isReachable()
86 SmallVector<const CFGBlock*, 10> worklist; in computeReachableBlocks()
90 const CFGBlock *block = worklist.pop_back_val(); in computeReachableBlocks()
95 for (CFGBlock::const_succ_iterator i = block->succ_begin(), in computeReachableBlocks()
97 if (const CFGBlock *succ = *i) in computeReachableBlocks()
132 const CFGBlock *currentBlock;
259 void observeStmt(const Stmt *S, const CFGBlock *block, in observeStmt()
/freebsd-12.1/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/
H A DCoreEngine.cpp86 const CFGBlock *Entry = &(L->getCFG()->getEntry()); in ExecuteWorkList()
98 const CFGBlock *Succ = *(Entry->succ_begin()); in ExecuteWorkList()
211 const CFGBlock *Blk = L.getDst(); in HandleBlockEdge()
314 for (CFGBlock::const_succ_iterator it = B->succ_begin(), in HandleBlockExit()
316 if (const CFGBlock *succ = *it) { in HandleBlockExit()
408 const CFGBlock *B, in HandleCleanupTemporaryBranch()
419 void CoreEngine::HandleStaticInit(const DeclStmt *DS, const CFGBlock *B, in HandleStaticInit()
430 void CoreEngine::HandlePostStmt(const CFGBlock *B, unsigned StmtIdx, in HandlePostStmt()
463 const CFGBlock *Block, unsigned Idx) { in enqueueStmtNode()
532 const CFGBlock *Block, unsigned Idx) { in enqueue()
[all …]
/freebsd-12.1/contrib/llvm/tools/clang/lib/Sema/
H A DAnalysisBasedWarnings.cpp205 llvm::SmallPtrSet<CFGBlock *, 16> Visited; in checkForRecursiveFunctionCall()
206 llvm::SmallVector<CFGBlock *, 16> WorkList; in checkForRecursiveFunctionCall()
216 CFGBlock *Block = WorkList.pop_back_val(); in checkForRecursiveFunctionCall()
219 if (CFGBlock *SuccBlock = *I) { in checkForRecursiveFunctionCall()
266 SmallVector<CFGBlock *, 16> Stack; in throwEscapes()
273 CFGBlock &UnwindBlock = *Stack.back(); in throwEscapes()
306 for (CFGBlock *B : *BodyCFG) { in visitReachableThrows()
417 CFGBlock::FilterOptions FO; in CheckFallThrough()
420 for (CFGBlock::filtered_pred_iterator I = in CheckFallThrough()
423 const CFGBlock &B = **I; in CheckFallThrough()
[all …]
/freebsd-12.1/contrib/llvm/tools/clang/include/clang/Analysis/FlowSensitive/
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()

12