Home
last modified time | relevance | path

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

12

/external/clang/include/clang/Analysis/Analyses/
DDominators.h32 class CFGBlock; variable
33 typedef llvm::DomTreeNodeBase<CFGBlock> DomTreeNode;
41 llvm::DominatorTreeBase<CFGBlock>* DT;
44 DT = new llvm::DominatorTreeBase<CFGBlock>(false); in DominatorTree()
49 llvm::DominatorTreeBase<CFGBlock>& getBase() { return *DT; } in getBase()
53 inline CFGBlock *getRoot() const { in getRoot()
109 inline bool dominates(const CFGBlock* A, const CFGBlock* B) const { in dominates()
116 bool properlyDominates(const CFGBlock*A, const CFGBlock*B) const { in properlyDominates()
123 inline CFGBlock *findNearestCommonDominator(CFGBlock *A, CFGBlock *B) { in findNearestCommonDominator()
127 inline const CFGBlock *findNearestCommonDominator(const CFGBlock *A, in findNearestCommonDominator()
[all …]
DConsumed.h167 void intersectAtLoopHead(const CFGBlock *LoopHead, const CFGBlock *LoopBack,
219 bool allBackEdgesVisited(const CFGBlock *CurrBlock,
220 const CFGBlock *TargetBlock);
222 void addInfo(const CFGBlock *Block, ConsumedStateMap *StateMap,
224 void addInfo(const CFGBlock *Block,
227 ConsumedStateMap* borrowInfo(const CFGBlock *Block);
229 void discardInfo(const CFGBlock *Block);
231 std::unique_ptr<ConsumedStateMap> getInfo(const CFGBlock *Block);
233 bool isBackEdge(const CFGBlock *From, const CFGBlock *To);
234 bool isBackEdgeTarget(const CFGBlock *Block);
[all …]
DPostOrderCFGView.h43 struct iterator { typedef const CFGBlock *value_type; };
50 std::pair<llvm::NoneType, 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;
80 typedef std::vector<const CFGBlock *>::const_reverse_iterator const_iterator;
99 bool operator()(const CFGBlock *b1, const CFGBlock *b2) const;
DThreadSafetyCommon.h84 void enterCFG(CFG *Cfg, const NamedDecl *D, const CFGBlock *First) {} in enterCFG()
87 void enterCFGBlock(const CFGBlock *B) {} in enterCFGBlock()
93 void handlePredecessor(const CFGBlock *Pred) {} in handlePredecessor()
96 void handlePredecessorBackEdge(const CFGBlock *Pred) {} in handlePredecessorBackEdge()
99 void enterCFGBlockBody(const CFGBlock *B) {} in enterCFGBlockBody()
108 void exitCFGBlockBody(const CFGBlock *B) {} in exitCFGBlockBody()
114 void handleSuccessor(const CFGBlock *Succ) {} in handleSuccessor()
117 void handleSuccessorBackEdge(const CFGBlock *Succ) {} in handleSuccessorBackEdge()
120 void exitCFGBlock(const CFGBlock *B) {} in exitCFGBlock()
123 void exitCFG(const CFGBlock *Last) {} in exitCFG()
[all …]
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
61 const CFGBlock *currentBlock, in observeStmt()
77 bool isLive(const CFGBlock *B, const VarDecl *D);
/external/clang/lib/Analysis/
DCFG.cpp283 BlockScopePosPair(CFGBlock *b, LocalScope::const_iterator scopePos) in BlockScopePosPair()
286 CFGBlock *block;
373 CFGBlock *Block;
374 CFGBlock *Succ;
377 CFGBlock *SwitchTerminatedBlock;
378 CFGBlock *DefaultCaseBlock;
379 CFGBlock *TryTerminatedBlock;
429 CFGBlock *VisitAddrLabelExpr(AddrLabelExpr *A, AddStmtChoice asc);
430 CFGBlock *VisitBinaryOperator(BinaryOperator *B, AddStmtChoice asc);
431 CFGBlock *VisitBreakStmt(BreakStmt *B);
[all …]
DReachableCode.cpp49 static bool isTrivialDoWhile(const CFGBlock *B, const Stmt *S) { in isTrivialDoWhile()
61 static bool isDeadReturn(const CFGBlock *B, const Stmt *S) { in isDeadReturn()
65 const CFGBlock *Current = B; in isDeadReturn()
67 for (CFGBlock::const_reverse_iterator I = Current->rbegin(), in isDeadReturn()
252 static bool shouldTreatSuccessorsAsReachable(const CFGBlock *B, in shouldTreatSuccessorsAsReachable()
267 static unsigned scanFromBlock(const CFGBlock *Start, in scanFromBlock()
274 SmallVector<const CFGBlock*, 32> WL; in scanFromBlock()
287 const CFGBlock *item = WL.pop_back_val(); in scanFromBlock()
299 for (CFGBlock::const_succ_iterator I = item->succ_begin(), in scanFromBlock()
301 const CFGBlock *B = *I; in scanFromBlock()
[all …]
DLiveVariables.cpp31 SmallVector<const CFGBlock *, 20> worklist;
39 void enqueueBlock(const CFGBlock *block);
40 void enqueuePredecessors(const CFGBlock *block);
42 const CFGBlock *dequeue();
49 void DataflowWorklist::enqueueBlock(const clang::CFGBlock *block) { in enqueueBlock()
56 void DataflowWorklist::enqueuePredecessors(const clang::CFGBlock *block) { in enqueuePredecessors()
58 for (CFGBlock::const_pred_iterator I = block->pred_begin(), in enqueuePredecessors()
73 const CFGBlock *DataflowWorklist::dequeue() { in dequeue()
76 const CFGBlock *b = worklist.pop_back_val(); in dequeue()
87 llvm::DenseMap<const CFGBlock *, LiveVariables::LivenessValues> blocksEndToLiveness;
[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.pop_back_val(); in mapReachability()
70 for (CFGBlock::const_pred_iterator i = block->pred_begin(), in mapReachability()
DUninitializedValues.cpp118 ValueVector &getValueVector(const CFGBlock *block) { in getValueVector()
124 bool updateValueVectorWithScratch(const CFGBlock *block);
134 Value getValue(const CFGBlock *block, const CFGBlock *dstBlock, in getValue()
158 static void printVector(const CFGBlock *block, ValueVector &bv, in printVector()
181 bool CFGBlockValues::updateValueVectorWithScratch(const CFGBlock *block) { in updateValueVectorWithScratch()
209 SmallVector<const CFGBlock *, 20> worklist;
223 void enqueueSuccessors(const CFGBlock *block);
224 const CFGBlock *dequeue();
228 void DataflowWorklist::enqueueSuccessors(const clang::CFGBlock *block) { in enqueueSuccessors()
229 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()
DConsumed.cpp57 static SourceLocation getFirstStmtLoc(const CFGBlock *Block) { in getFirstStmtLoc()
72 static SourceLocation getLastStmtLoc(const CFGBlock *Block) { in getLastStmtLoc()
78 for (CFGBlock::const_reverse_iterator BI = Block->rbegin(), in getLastStmtLoc()
1032 bool ConsumedBlockInfo::allBackEdgesVisited(const CFGBlock *CurrBlock, in allBackEdgesVisited()
1033 const CFGBlock *TargetBlock) { in allBackEdgesVisited()
1039 for (CFGBlock::const_pred_iterator PI = TargetBlock->pred_begin(), in allBackEdgesVisited()
1048 const CFGBlock *Block, ConsumedStateMap *StateMap, in addInfo()
1063 void ConsumedBlockInfo::addInfo(const CFGBlock *Block, in addInfo()
1077 ConsumedStateMap* ConsumedBlockInfo::borrowInfo(const CFGBlock *Block) { in borrowInfo()
1084 void ConsumedBlockInfo::discardInfo(const CFGBlock *Block) { in discardInfo()
[all …]
/external/clang/include/clang/Analysis/
DCFG.h353 class CFGBlock {
428 CFGBlock *ReachableBlock;
429 llvm::PointerIntPair<CFGBlock*, 2> UnreachableBlock;
433 AdjacentBlock(CFGBlock *B, bool IsReachable);
437 AdjacentBlock(CFGBlock *B, CFGBlock *AlternateBlock);
440 CFGBlock *getReachableBlock() const { in getReachableBlock()
445 CFGBlock *getPossiblyUnreachableBlock() const { in getPossiblyUnreachableBlock()
451 operator CFGBlock*() const {
455 CFGBlock& operator *() const {
459 CFGBlock* operator ->() const {
[all …]
DProgramPoint.h218 BlockEntrance(const CFGBlock *B, const LocationContext *L,
224 const CFGBlock *getBlock() const { in getBlock()
225 return reinterpret_cast<const CFGBlock*>(getData1()); in getBlock()
229 const CFGBlock *B = getBlock(); in getFirstElement()
243 BlockExit(const CFGBlock *B, const LocationContext *L) in BlockExit()
246 const CFGBlock *getBlock() const { in getBlock()
247 return reinterpret_cast<const CFGBlock*>(getData1()); in getBlock()
473 BlockEdge(const CFGBlock *B1, const CFGBlock *B2, const LocationContext *L) in BlockEdge()
479 const CFGBlock *getSrc() const { in getSrc()
480 return static_cast<const CFGBlock*>(getData1()); in getSrc()
[all …]
DAnalysisContext.h130 const CFGBlock *getBlockForRegisteredExpression(const Stmt *stmt);
185 const CFGBlock *Blk,
283 const CFGBlock *Block;
290 const Stmt *s, const CFGBlock *blk, in StackFrameContext()
300 const CFGBlock *getCallSiteBlock() const { return Block; } in getCallSiteBlock()
311 const CFGBlock *blk, unsigned idx) { in Profile()
387 const CFGBlock *blk, unsigned idx);
452 const CFGBlock *Blk, in getStackFrame()
467 const CFGBlock *Blk, in getStackFrame()
DCFGStmtMap.h23 class CFGBlock; variable
44 CFGBlock *getBlock(Stmt * S);
46 const CFGBlock *getBlock(const Stmt * S) const { in getBlock()
/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);
97 void HandlePostStmt(const CFGBlock *B, unsigned StmtIdx, ExplodedNode *Pred);
99 void HandleBranch(const Stmt *Cond, const Stmt *Term, const CFGBlock *B,
102 const CFGBlock *B, ExplodedNode *Pred);
105 void HandleStaticInit(const DeclStmt *DS, const CFGBlock *B,
147 void addAbortedBlock(const ExplodedNode *node, const CFGBlock *block) { in addAbortedBlock()
171 void enqueue(ExplodedNodeSet &Set, const CFGBlock *Block, unsigned Idx);
178 void enqueueStmtNode(ExplodedNode *N, const CFGBlock *Block, unsigned Idx);
184 const CFGBlock *Block;
[all …]
DSubEngine.h22 class CFGBlock; variable
72 const CFGBlock *DstT,
73 const CFGBlock *DstF) = 0;
82 const CFGBlock *DstT,
83 const CFGBlock *DstF) = 0;
91 const CFGBlock *DstT,
92 const CFGBlock *DstF) = 0;
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()
/external/clang/lib/StaticAnalyzer/Checkers/
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()
170 void UnreachableCodeChecker::FindUnreachableEntryPoints(const CFGBlock *CB, in FindUnreachableEntryPoints()
175 for (CFGBlock::const_pred_iterator I = CB->pred_begin(), E = CB->pred_end(); in FindUnreachableEntryPoints()
192 const Stmt *UnreachableCodeChecker::getUnreachableStmt(const CFGBlock *CB) { in getUnreachableStmt()
[all …]
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()
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;
258 void observeStmt(const Stmt *S, const CFGBlock *block, in observeStmt()
/external/clang/lib/StaticAnalyzer/Core/
DCoreEngine.cpp171 const CFGBlock *Entry = &(L->getCFG()->getEntry()); in ExecuteWorkList()
185 const CFGBlock *Succ = *(Entry->succ_begin()); in ExecuteWorkList()
298 const CFGBlock *Blk = L.getDst(); in HandleBlockEdge()
355 void CoreEngine::HandleBlockExit(const CFGBlock * B, ExplodedNode *Pred) { in HandleBlockExit()
392 for (CFGBlock::const_succ_iterator it = B->succ_begin(), in HandleBlockExit()
394 if (const CFGBlock *succ = *it) { in HandleBlockExit()
477 const CFGBlock * B, ExplodedNode *Pred) { in HandleBranch()
488 const CFGBlock *B, in HandleCleanupTemporaryBranch()
499 void CoreEngine::HandleStaticInit(const DeclStmt *DS, const CFGBlock *B, in HandleStaticInit()
511 void CoreEngine::HandlePostStmt(const CFGBlock *B, unsigned StmtIdx, in HandlePostStmt()
[all …]
/external/clang/include/clang/Analysis/FlowSensitive/
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