HomeSort by relevance Sort by last modified time
    Searched refs:CFGBlock (Results 1 - 25 of 43) sorted by null

1 2

  /external/clang/include/clang/Analysis/Analyses/
CFGReachabilityAnalysis.h 25 class CFGBlock;
41 bool isReachable(const CFGBlock *Src, const CFGBlock *Dst);
44 void mapReachability(const CFGBlock *Dst);
PostOrderCFGView.h 43 struct iterator { typedef const CFGBlock *value_type; };
48 /// \brief Set the bit associated with a particular CFGBlock.
50 std::pair<llvm::NoneType, bool> insert(const CFGBlock *Block) {
52 // make sure that Block is non-null. Moreover, the CFGBlock iterator will
63 /// \brief Check if the bit for a CFGBlock has been already set.
66 bool alreadySet(const CFGBlock *Block) {
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
    [all...]
Dominators.h 32 class CFGBlock;
33 typedef llvm::DomTreeNodeBase<CFGBlock> DomTreeNode;
41 llvm::DominatorTreeBase<CFGBlock>* DT;
44 DT = new llvm::DominatorTreeBase<CFGBlock>(false);
49 llvm::DominatorTreeBase<CFGBlock>& getBase() { return *DT; }
51 /// \brief This method returns the root CFGBlock of the dominators tree.
53 inline CFGBlock *getRoot() const {
58 /// for CFGBlock.
105 /// \brief This method tests if one CFGBlock dominates the other.
109 inline bool dominates(const CFGBlock* A, const CFGBlock* B) const
    [all...]
Consumed.h 167 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)
    [all...]
ReachableCode.h 29 class CFGBlock;
61 unsigned ScanReachableFromBlock(const CFGBlock *Start,
ThreadSafetyCommon.h 84 void enterCFG(CFG *Cfg, const NamedDecl *D, const CFGBlock *First) {}
86 // Enter a CFGBlock.
87 void enterCFGBlock(const CFGBlock *B) {}
93 void handlePredecessor(const CFGBlock *Pred) {}
96 void handlePredecessorBackEdge(const CFGBlock *Pred) {}
99 void enterCFGBlockBody(const CFGBlock *B) {}
108 void exitCFGBlockBody(const CFGBlock *B) {}
114 void handleSuccessor(const CFGBlock *Succ) {}
117 void handleSuccessorBackEdge(const CFGBlock *Succ) {}
119 // Leave a CFGBlock
    [all...]
LiveVariables.h 25 class CFGBlock;
61 const CFGBlock *currentBlock,
77 bool isLive(const CFGBlock *B, const VarDecl *D);
  /external/clang/include/clang/Analysis/
CFGStmtMap.h 1 //===--- CFGStmtMap.h - Map from Stmt* to CFGBlock* -----------*- C++ -*-===//
11 // Stmt* to CFGBlock*
23 class CFGBlock;
40 /// Returns the CFGBlock the specified Stmt* appears in. For Stmt* that
41 /// are terminators, the CFGBlock is the block they appear as a terminator,
43 /// CaseStmts and LabelStmts map to the CFGBlock they label.
44 CFGBlock *getBlock(Stmt * S);
46 const CFGBlock *getBlock(const Stmt * S) const {
CFG.h 297 /// CFGTerminator - Represents CFGBlock terminator statement.
327 /// CFGBlock - Represents a single basic block in a source-level CFG.
353 class CFGBlock {
411 /// BlockID - A numerical ID assigned to a CFGBlock during construction
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
    [all...]
AnalysisContext.h 130 const CFGBlock *getBlockForRegisteredExpression(const Stmt *stmt);
185 const CFGBlock *Blk,
283 const CFGBlock *Block;
285 // The index of the callsite in the CFGBlock.
290 const Stmt *s, const CFGBlock *blk,
300 const CFGBlock *getCallSiteBlock() const { return Block; }
311 const CFGBlock *blk, unsigned idx) {
387 const CFGBlock *blk, unsigned idx);
452 const CFGBlock *Blk,
467 const CFGBlock *Blk
    [all...]
ProgramPoint.h 218 BlockEntrance(const CFGBlock *B, const LocationContext *L,
224 const CFGBlock *getBlock() const {
225 return reinterpret_cast<const CFGBlock*>(getData1());
229 const CFGBlock *B = getBlock();
243 BlockExit(const CFGBlock *B, const LocationContext *L)
246 const CFGBlock *getBlock() const {
247 return reinterpret_cast<const CFGBlock*>(getData1());
473 BlockEdge(const CFGBlock *B1, const CFGBlock *B2, const LocationContext *L)
479 const CFGBlock *getSrc() const
    [all...]
  /external/clang/lib/Analysis/
CFGReachabilityAnalysis.cpp 25 bool CFGReverseBlockReachabilityAnalysis::isReachable(const CFGBlock *Src,
26 const CFGBlock *Dst) {
42 void CFGReverseBlockReachabilityAnalysis::mapReachability(const CFGBlock *Dst) {
43 SmallVector<const CFGBlock *, 11> worklist;
55 const CFGBlock *block = worklist.pop_back_val();
70 for (CFGBlock::const_pred_iterator i = block->pred_begin(),
CFGStmtMap.cpp 1 //===--- CFGStmtMap.h - Map from Stmt* to CFGBlock* -----------*- C++ -*-===//
11 // Stmt* to CFGBlock*
22 typedef llvm::DenseMap<const Stmt*, CFGBlock*> SMap;
27 CFGBlock *CFGStmtMap::getBlock(Stmt *S) {
36 CFGBlock *B = I->second;
49 static void Accumulate(SMap &SM, CFGBlock *B) {
51 for (CFGBlock::iterator I = B->begin(), E = B->end(); I != E; ++I) {
57 CFGBlock *&Entry = SM[CS->getStmt()];
CFG.cpp 160 /// - For every normal (without jump) end of scope add to CFGBlock destructors
162 /// - For every jump add to CFGBlock destructors for objects
279 /// consists of CFGBlock that specifies position in CFG and
283 BlockScopePosPair(CFGBlock *b, LocalScope::const_iterator scopePos)
286 CFGBlock *block;
373 CFGBlock *Block;
374 CFGBlock *Succ;
377 CFGBlock *SwitchTerminatedBlock;
378 CFGBlock *DefaultCaseBlock;
379 CFGBlock *TryTerminatedBlock
    [all...]
ReachableCode.cpp 49 static bool isTrivialDoWhile(const CFGBlock *B, const Stmt *S) {
61 static bool isDeadReturn(const CFGBlock *B, const Stmt *S) {
65 const CFGBlock *Current = B;
67 for (CFGBlock::const_reverse_iterator I = Current->rbegin(),
252 static bool shouldTreatSuccessorsAsReachable(const CFGBlock *B,
267 static unsigned scanFromBlock(const CFGBlock *Start,
274 SmallVector<const CFGBlock*, 32> WL;
287 const CFGBlock *item = WL.pop_back_val();
299 for (CFGBlock::const_succ_iterator I = item->succ_begin(),
301 const CFGBlock *B = *I
    [all...]
LiveVariables.cpp 31 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) {
56 void DataflowWorklist::enqueuePredecessors(const clang::CFGBlock *block) {
58 for (CFGBlock::const_pred_iterator I = block->pred_begin(),
73 const CFGBlock *DataflowWorklist::dequeue() {
76 const CFGBlock *b = worklist.pop_back_val();
87 llvm::DenseMap<const CFGBlock *, LiveVariables::LivenessValues> blocksEndToLiveness
    [all...]
PostOrderCFGView.cpp 40 bool PostOrderCFGView::BlockOrderCompare::operator()(const CFGBlock *b1,
41 const CFGBlock *b2) const {
UninitializedValues.cpp 118 ValueVector &getValueVector(const CFGBlock *block) {
124 bool updateValueVectorWithScratch(const CFGBlock *block);
134 Value getValue(const CFGBlock *block, const CFGBlock *dstBlock,
158 static void printVector(const CFGBlock *block, ValueVector &bv,
181 bool CFGBlockValues::updateValueVectorWithScratch(const CFGBlock *block) {
209 SmallVector<const CFGBlock *, 20> worklist;
223 void enqueueSuccessors(const CFGBlock *block);
224 const CFGBlock *dequeue();
228 void DataflowWorklist::enqueueSuccessors(const clang::CFGBlock *block)
    [all...]
  /external/clang/include/clang/StaticAnalyzer/Core/PathSensitive/
WorkList.h 24 class CFGBlock;
31 const CFGBlock *block;
36 const CFGBlock *B, unsigned idx)
54 /// Returns the CFGblock associated with the worklist unit.
55 const CFGBlock *getBlock() const { return block; }
57 /// Return the index within the CFGBlock for the worklist unit.
69 void enqueue(ExplodedNode *N, const CFGBlock *B, unsigned idx) {
CoreEngine.h 55 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) {
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...]
SubEngine.h 22 class CFGBlock;
59 /// Called by CoreEngine when it starts processing a CFGBlock. The
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;
  /external/clang/lib/StaticAnalyzer/Checkers/
UnreachableCodeChecker.cpp 40 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();
97 const CFGBlock *CB = *I;
131 for (CFGBlock::const_iterator ci = CB->begin(), ce = CB->end();
169 // Recursively finds the entry point(s) for this dead CFGBlock.
170 void UnreachableCodeChecker::FindUnreachableEntryPoints(const CFGBlock *CB,
175 for (CFGBlock::const_pred_iterator I = CB->pred_begin(), E = CB->pred_end()
    [all...]
AnalyzerStatsChecker.cpp 46 llvm::SmallPtrSet<const CFGBlock*, 32> reachable;
64 const CFGBlock *CB = BE->getBlock();
76 const CFGBlock *CB = *I;
124 const CFGBlock *Exit = BE.getDst();
  /external/clang/include/clang/Analysis/FlowSensitive/
DataflowValues.h 52 typedef llvm::DenseMap<const CFGBlock*, ValTy> BlockDataMapTy;
98 /// specified CFGBlock. If the dataflow analysis is a forward analysis,
101 ValTy& getBlockData(const CFGBlock *B) {
107 const ValTy& getBlockData(const CFGBlock *B) const {
  /external/clang/lib/StaticAnalyzer/Core/
CoreEngine.cpp 171 const CFGBlock *Entry = &(L->getCFG()->getEntry());
185 const CFGBlock *Succ = *(Entry->succ_begin());
298 const CFGBlock *Blk = L.getDst();
320 // Call into the SubEngine to process entering the CFGBlock.
355 void CoreEngine::HandleBlockExit(const CFGBlock * B, ExplodedNode *Pred) {
392 for (CFGBlock::const_succ_iterator it = B->succ_begin(),
394 if (const CFGBlock *succ = *it) {
477 const CFGBlock * B, ExplodedNode *Pred) {
488 const CFGBlock *B,
499 void CoreEngine::HandleStaticInit(const DeclStmt *DS, const CFGBlock *B
    [all...]

Completed in 7777 milliseconds

1 2