Home
last modified time | relevance | path

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

12

/external/clang/include/clang/Analysis/FlowSensitive/
DDataflowSolver.h32 llvm::DenseMap<const CFGBlock*, unsigned char> BlockSet;
33 SmallVector<const CFGBlock *, 10> BlockQueue;
37 void enqueue(const CFGBlock *B) { in enqueue()
46 const CFGBlock *dequeue() { in dequeue()
48 const CFGBlock *B = BlockQueue.back(); in dequeue()
68 typedef CFGBlock::const_pred_iterator PrevBItr;
69 typedef CFGBlock::const_succ_iterator NextBItr;
70 typedef CFGBlock::const_iterator StmtItr;
72 static PrevBItr PrevBegin(const CFGBlock *B) { return B->pred_begin(); }
73 static PrevBItr PrevEnd(const CFGBlock *B) { return B->pred_end(); }
[all …]
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()
/external/clang/include/clang/Analysis/Analyses/
DDominators.h26 class CFGBlock; variable
27 typedef llvm::DomTreeNodeBase<CFGBlock> DomTreeNode;
35 llvm::DominatorTreeBase<CFGBlock>* DT;
38 DT = new llvm::DominatorTreeBase<CFGBlock>(false); in DominatorTree()
45 llvm::DominatorTreeBase<CFGBlock>& getBase() { return *DT; } in getBase()
49 inline CFGBlock *getRoot() const { in getRoot()
105 inline bool dominates(const CFGBlock* A, const CFGBlock* B) const { in dominates()
112 bool properlyDominates(const CFGBlock*A, const CFGBlock*B) const { in properlyDominates()
119 inline CFGBlock *findNearestCommonDominator(CFGBlock *A, CFGBlock *B) { in findNearestCommonDominator()
123 inline const CFGBlock *findNearestCommonDominator(const CFGBlock *A, in findNearestCommonDominator()
[all …]
DPostOrderCFGView.h43 struct iterator { typedef const CFGBlock *value_type; };
50 bool insert(const CFGBlock *Block) { in insert()
66 bool alreadySet(const CFGBlock *Block) { in alreadySet()
73 std::vector<const CFGBlock*> Blocks;
75 typedef llvm::DenseMap<const CFGBlock *, unsigned> BlockOrderTy;
79 typedef std::vector<const CFGBlock*>::reverse_iterator iterator;
95 bool operator()(const CFGBlock *b1, const CFGBlock *b2) const;
DCFGReachabilityAnalysis.h25 class CFGBlock; variable
41 bool isReachable(const CFGBlock *Src, const CFGBlock *Dst);
44 void mapReachability(const CFGBlock *Dst);
DLiveVariables.h25 class CFGBlock; variable
63 const CFGBlock *currentBlock, in observeStmt()
80 bool isLive(const CFGBlock *B, const VarDecl *D);
DReachableCode.h29 class CFGBlock; variable
49 unsigned ScanReachableFromBlock(const CFGBlock *Start,
/external/clang/lib/Analysis/
DCFG.cpp210 BlockScopePosPair(CFGBlock *b, LocalScope::const_iterator scopePos) in BlockScopePosPair()
213 CFGBlock *block;
295 CFGBlock *Block;
296 CFGBlock *Succ;
299 CFGBlock *SwitchTerminatedBlock;
300 CFGBlock *DefaultCaseBlock;
301 CFGBlock *TryTerminatedBlock;
351 CFGBlock *VisitAddrLabelExpr(AddrLabelExpr *A, AddStmtChoice asc);
352 CFGBlock *VisitBinaryOperator(BinaryOperator *B, AddStmtChoice asc);
353 CFGBlock *VisitBreakStmt(BreakStmt *B);
[all …]
DReachableCode.cpp32 SmallVector<const CFGBlock *, 10> WorkList;
34 typedef SmallVector<std::pair<const CFGBlock *, const Stmt *>, 12>
44 void enqueue(const CFGBlock *block);
45 unsigned scanBackwards(const CFGBlock *Start,
48 bool isDeadCodeRoot(const CFGBlock *Block);
50 const Stmt *findDeadCode(const CFGBlock *Block);
57 void DeadCodeScan::enqueue(const CFGBlock *block) { in enqueue()
65 bool DeadCodeScan::isDeadCodeRoot(const clang::CFGBlock *Block) { in isDeadCodeRoot()
68 for (CFGBlock::const_pred_iterator I = Block->pred_begin(), in isDeadCodeRoot()
70 if (const CFGBlock *PredBlock = *I) { in isDeadCodeRoot()
[all …]
DLiveVariables.cpp31 SmallVector<const CFGBlock *, 20> worklist;
39 void enqueueBlock(const CFGBlock *block);
40 void enqueueSuccessors(const CFGBlock *block);
41 void enqueuePredecessors(const CFGBlock *block);
43 const CFGBlock *dequeue();
50 void DataflowWorklist::enqueueBlock(const clang::CFGBlock *block) { in enqueueBlock()
57 void DataflowWorklist::enqueueSuccessors(const clang::CFGBlock *block) { in enqueueSuccessors()
59 for (CFGBlock::const_succ_iterator I = block->succ_begin(), in enqueueSuccessors()
70 void DataflowWorklist::enqueuePredecessors(const clang::CFGBlock *block) { in enqueuePredecessors()
72 for (CFGBlock::const_pred_iterator I = block->pred_begin(), in enqueuePredecessors()
[all …]
DCFGReachabilityAnalysis.cpp25 bool CFGReverseBlockReachabilityAnalysis::isReachable(const CFGBlock *Src, in isReachable()
26 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.back(); in mapReachability()
71 for (CFGBlock::const_pred_iterator i = block->pred_begin(), in mapReachability()
DUninitializedValues.cpp117 ValueVector &getValueVector(const CFGBlock *block) { in getValueVector()
123 bool updateValueVectorWithScratch(const CFGBlock *block);
133 Value getValue(const CFGBlock *block, const CFGBlock *dstBlock, in getValue()
157 static void printVector(const CFGBlock *block, ValueVector &bv, in printVector()
180 bool CFGBlockValues::updateValueVectorWithScratch(const CFGBlock *block) { in updateValueVectorWithScratch()
208 SmallVector<const CFGBlock *, 20> worklist;
222 void enqueueSuccessors(const CFGBlock *block);
223 const CFGBlock *dequeue();
227 void DataflowWorklist::enqueueSuccessors(const clang::CFGBlock *block) { in enqueueSuccessors()
228 for (CFGBlock::const_succ_iterator I = block->succ_begin(), in enqueueSuccessors()
[all …]
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()
DPostOrderCFGView.cpp40 bool PostOrderCFGView::BlockOrderCompare::operator()(const CFGBlock *b1, in operator ()()
41 const CFGBlock *b2) const { in operator ()()
/external/clang/include/clang/Analysis/
DCFG.h301 class CFGBlock {
365 typedef BumpVector<CFGBlock*> AdjacentBlocks;
384 explicit CFGBlock(unsigned blockid, BumpVectorContext &C, CFG *parent) in CFGBlock() function
388 ~CFGBlock() {} in ~CFGBlock()
461 static bool FilterEdge(const FilterOptions &F, const CFGBlock *Src,
462 const CFGBlock *Dst);
469 const CFGBlock *From;
472 const CFGBlock *from, in FilteredCFGBlockIterator()
483 const CFGBlock *operator*() const { return *I; }
485 bool Filter(const CFGBlock *To) { in Filter()
[all …]
DCFGStmtMap.h23 class CFGBlock; variable
44 CFGBlock *getBlock(Stmt * S);
46 const CFGBlock *getBlock(const Stmt * S) const { in getBlock()
DProgramPoint.h195 BlockEntrance(const CFGBlock *B, const LocationContext *L,
201 const CFGBlock *getBlock() const { in getBlock()
202 return reinterpret_cast<const CFGBlock*>(getData1()); in getBlock()
206 const CFGBlock *B = getBlock(); in getFirstElement()
220 BlockExit(const CFGBlock *B, const LocationContext *L) in BlockExit()
223 const CFGBlock *getBlock() const { in getBlock()
224 return reinterpret_cast<const CFGBlock*>(getData1()); in getBlock()
450 BlockEdge(const CFGBlock *B1, const CFGBlock *B2, const LocationContext *L) in BlockEdge()
456 const CFGBlock *getSrc() const { in getSrc()
457 return static_cast<const CFGBlock*>(getData1()); in getSrc()
[all …]
DAnalysisContext.h134 const CFGBlock *getBlockForRegisteredExpression(const Stmt *stmt);
181 const CFGBlock *Blk,
275 const CFGBlock *Block;
282 const Stmt *s, const CFGBlock *blk, in StackFrameContext()
292 const CFGBlock *getCallSiteBlock() const { return Block; } in getCallSiteBlock()
303 const CFGBlock *blk, unsigned idx) { in Profile()
379 const CFGBlock *blk, unsigned idx);
438 const CFGBlock *Blk, in getStackFrame()
452 const CFGBlock *Blk, in getStackFrame()
/external/clang/include/clang/StaticAnalyzer/Core/PathSensitive/
DCoreEngine.h55 typedef std::vector<std::pair<const CFGBlock*, const ExplodedNode*> >
93 void HandleBlockExit(const CFGBlock *B, ExplodedNode *Pred);
94 void HandlePostStmt(const CFGBlock *B, unsigned StmtIdx, ExplodedNode *Pred);
96 void HandleBranch(const Stmt *Cond, const Stmt *Term, const CFGBlock *B,
100 void HandleStaticInit(const DeclStmt *DS, const CFGBlock *B,
149 void addAbortedBlock(const ExplodedNode *node, const CFGBlock *block) { in addAbortedBlock()
173 void enqueue(ExplodedNodeSet &Set, const CFGBlock *Block, unsigned Idx);
180 void enqueueStmtNode(ExplodedNode *N, const CFGBlock *Block, unsigned Idx);
186 const CFGBlock *Block;
188 NodeBuilderContext(const CoreEngine &E, const CFGBlock *B, ExplodedNode *N) in NodeBuilderContext()
[all …]
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()
DSubEngine.h22 class CFGBlock; variable
72 const CFGBlock *DstT,
73 const CFGBlock *DstF) = 0;
81 const CFGBlock *DstT,
82 const CFGBlock *DstF) = 0;
/external/clang/lib/StaticAnalyzer/Checkers/
DUnreachableCodeChecker.cpp44 static inline const Stmt *getUnreachableStmt(const CFGBlock *CB);
45 static void FindUnreachableEntryPoints(const CFGBlock *CB,
48 static bool isInvalidPath(const CFGBlock *CB, const ParentMap &PM);
49 static inline bool isEmptyCFGBlock(const CFGBlock *CB);
80 const CFGBlock *CB = BE->getBlock(); in checkEndAnalysis()
98 const CFGBlock *CB = *I; in checkEndAnalysis()
132 for (CFGBlock::const_iterator ci = CB->begin(), ce = CB->end(); in checkEndAnalysis()
171 void UnreachableCodeChecker::FindUnreachableEntryPoints(const CFGBlock *CB, in FindUnreachableEntryPoints()
176 for (CFGBlock::const_pred_iterator I = CB->pred_begin(), E = CB->pred_end(); in FindUnreachableEntryPoints()
190 const Stmt *UnreachableCodeChecker::getUnreachableStmt(const CFGBlock *CB) { in getUnreachableStmt()
[all …]
DAnalyzerStatsChecker.cpp46 llvm::SmallPtrSet<const CFGBlock*, 256> 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()
DDeadStoresChecker.cpp76 bool isReachable(const CFGBlock *block) const { in isReachable()
86 SmallVector<const CFGBlock*, 10> worklist; in computeReachableBlocks()
90 const CFGBlock *block = worklist.back(); in computeReachableBlocks()
96 for (CFGBlock::const_succ_iterator i = block->succ_begin(), in computeReachableBlocks()
98 if (const CFGBlock *succ = *i) in computeReachableBlocks()
132 const CFGBlock *currentBlock;
255 virtual void observeStmt(const Stmt *S, const CFGBlock *block, in observeStmt()
/external/clang/lib/StaticAnalyzer/Core/
DCoreEngine.cpp170 const CFGBlock *Entry = &(L->getCFG()->getEntry()); in ExecuteWorkList()
184 const CFGBlock *Succ = *(Entry->succ_begin()); in ExecuteWorkList()
285 const CFGBlock *Blk = L.getDst(); in HandleBlockEdge()
342 void CoreEngine::HandleBlockExit(const CFGBlock * B, ExplodedNode *Pred) { in HandleBlockExit()
374 for (CFGBlock::const_succ_iterator it = B->succ_begin(), in HandleBlockExit()
376 if (const CFGBlock *succ = *it) { in HandleBlockExit()
454 const CFGBlock * B, ExplodedNode *Pred) { in HandleBranch()
465 void CoreEngine::HandleStaticInit(const DeclStmt *DS, const CFGBlock *B, in HandleStaticInit()
477 void CoreEngine::HandlePostStmt(const CFGBlock *B, unsigned StmtIdx, in HandlePostStmt()
511 const CFGBlock *Block, unsigned Idx) { in enqueueStmtNode()
[all …]

12