HomeSort by relevance Sort by last modified time
    Searched refs:CFGBlock (Results 1 - 25 of 40) 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 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;
95 bool operator()(const CFGBlock *b1, const CFGBlock *b2) const
    [all...]
ReachableCode.h 29 class CFGBlock;
49 unsigned ScanReachableFromBlock(const CFGBlock *Start,
Dominators.h 26 class CFGBlock;
27 typedef llvm::DomTreeNodeBase<CFGBlock> DomTreeNode;
35 llvm::DominatorTreeBase<CFGBlock>* DT;
38 DT = new llvm::DominatorTreeBase<CFGBlock>(false);
45 llvm::DominatorTreeBase<CFGBlock>& getBase() { return *DT; }
47 /// \brief This method returns the root CFGBlock of the dominators tree.
49 inline CFGBlock *getRoot() const {
54 /// for CFGBlock.
101 /// \brief This method tests if one CFGBlock dominates the other.
105 inline bool dominates(const CFGBlock* A, const CFGBlock* B) const
    [all...]
LiveVariables.h 25 class CFGBlock;
63 const CFGBlock *currentBlock,
80 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 245 /// CFGTerminator - Represents CFGBlock terminator statement.
275 /// CFGBlock - Represents a single basic block in a source-level CFG.
301 class CFGBlock {
359 /// BlockID - A numerical ID assigned to a CFGBlock during construction
365 typedef BumpVector<CFGBlock*> AdjacentBlocks;
377 /// storage if the memory usage of CFGBlock becomes an issue.
380 /// Parent - The parent CFG that owns this CFGBlock.
384 explicit CFGBlock(unsigned blockid, BumpVectorContext &C, CFG *parent)
388 ~CFGBlock() {}
461 static bool FilterEdge(const FilterOptions &F, const CFGBlock *Src
    [all...]
AnalysisContext.h 134 const CFGBlock *getBlockForRegisteredExpression(const Stmt *stmt);
181 const CFGBlock *Blk,
272 const CFGBlock *Block;
274 // The index of the callsite in the CFGBlock.
279 const Stmt *s, const CFGBlock *blk,
289 const CFGBlock *getCallSiteBlock() const { return Block; }
300 const CFGBlock *blk, unsigned idx) {
376 const CFGBlock *blk, unsigned idx);
434 const CFGBlock *Blk,
448 const CFGBlock *Blk
    [all...]
ProgramPoint.h 195 BlockEntrance(const CFGBlock *B, const LocationContext *L,
201 const CFGBlock *getBlock() const {
202 return reinterpret_cast<const CFGBlock*>(getData1());
206 const CFGBlock *B = getBlock();
220 BlockExit(const CFGBlock *B, const LocationContext *L)
223 const CFGBlock *getBlock() const {
224 return reinterpret_cast<const CFGBlock*>(getData1());
450 BlockEdge(const CFGBlock *B1, const CFGBlock *B2, const LocationContext *L)
456 const CFGBlock *getSrc() const
    [all...]
  /external/clang/include/clang/Analysis/FlowSensitive/
DataflowSolver.h 32 llvm::DenseMap<const CFGBlock*, unsigned char> BlockSet;
33 SmallVector<const CFGBlock *, 10> BlockQueue;
37 void enqueue(const CFGBlock *B) {
46 const CFGBlock *dequeue() {
48 const CFGBlock *B = BlockQueue.back();
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...]
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/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.back();
71 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()];
ReachableCode.cpp 32 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) {
65 bool DeadCodeScan::isDeadCodeRoot(const clang::CFGBlock *Block) {
68 for (CFGBlock::const_pred_iterator I = Block->pred_begin(),
70 if (const CFGBlock *PredBlock = *I)
    [all...]
CFG.cpp 87 /// - For every normal (without jump) end of scope add to CFGBlock destructors
89 /// - For every jump add to CFGBlock destructors for objects
206 /// build process. It consists of CFGBlock that specifies position in CFG graph
210 BlockScopePosPair(CFGBlock *b, LocalScope::const_iterator scopePos)
213 CFGBlock *block;
295 CFGBlock *Block;
296 CFGBlock *Succ;
299 CFGBlock *SwitchTerminatedBlock;
300 CFGBlock *DefaultCaseBlock;
301 CFGBlock *TryTerminatedBlock
    [all...]
LiveVariables.cpp 31 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) {
57 void DataflowWorklist::enqueueSuccessors(const clang::CFGBlock *block) {
59 for (CFGBlock::const_succ_iterator I = block->succ_begin(),
70 void DataflowWorklist::enqueuePredecessors(const clang::CFGBlock *block) {
72 for (CFGBlock::const_pred_iterator I = block->pred_begin()
    [all...]
PostOrderCFGView.cpp 40 bool PostOrderCFGView::BlockOrderCompare::operator()(const CFGBlock *b1,
41 const CFGBlock *b2) const {
UninitializedValues.cpp 117 ValueVector &getValueVector(const CFGBlock *block) {
123 bool updateValueVectorWithScratch(const CFGBlock *block);
133 Value getValue(const CFGBlock *block, const CFGBlock *dstBlock,
157 static void printVector(const CFGBlock *block, ValueVector &bv,
180 bool CFGBlockValues::updateValueVectorWithScratch(const CFGBlock *block) {
208 SmallVector<const CFGBlock *, 20> worklist;
222 void enqueueSuccessors(const CFGBlock *block);
223 const CFGBlock *dequeue();
227 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);
94 void HandlePostStmt(const CFGBlock *B, unsigned StmtIdx, ExplodedNode *Pred);
96 void HandleBranch(const Stmt *Cond, const Stmt *Term, const CFGBlock *B,
145 void addAbortedBlock(const ExplodedNode *node, const CFGBlock *block) {
169 void enqueue(ExplodedNodeSet &Set, const CFGBlock *Block, unsigned Idx);
176 void enqueueStmtNode(ExplodedNode *N, const CFGBlock *Block, unsigned Idx);
182 const CFGBlock *Block;
184 NodeBuilderContext(const CoreEngine &E, const CFGBlock *B, ExplodedNode *N)
187 /// \brief Return the CFGBlock associated with this builder
    [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;
  /external/clang/lib/StaticAnalyzer/Checkers/
UnreachableCodeChecker.cpp 29 // The number of CFGBlock pointers we want to reserve memory for. This is used
44 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();
98 const CFGBlock *CB = *I;
132 for (CFGBlock::const_iterator ci = CB->begin(), ce = CB->end();
170 // Recursively finds the entry point(s) for this dead CFGBlock.
171 void UnreachableCodeChecker::FindUnreachableEntryPoints(const CFGBlock *CB
    [all...]
AnalyzerStatsChecker.cpp 46 llvm::SmallPtrSet<const CFGBlock*, 256> reachable;
64 const CFGBlock *CB = BE->getBlock();
76 const CFGBlock *CB = *I;
124 const CFGBlock *Exit = BE.getDst();
DeadStoresChecker.cpp 77 bool isReachable(const CFGBlock *block) const {
87 SmallVector<const CFGBlock*, 10> worklist;
91 const CFGBlock *block = worklist.back();
97 for (CFGBlock::const_succ_iterator i = block->succ_begin(),
99 if (const CFGBlock *succ = *i)
128 const CFGBlock *currentBlock;
251 virtual void observeStmt(const Stmt *S, const CFGBlock *block,
  /external/clang/lib/StaticAnalyzer/Core/
CoreEngine.cpp 170 const CFGBlock *Entry = &(L->getCFG()->getEntry());
184 const CFGBlock *Succ = *(Entry->succ_begin());
285 const CFGBlock *Blk = L.getDst();
307 // Call into the SubEngine to process entering the CFGBlock.
342 void CoreEngine::HandleBlockExit(const CFGBlock * B, ExplodedNode *Pred) {
369 for (CFGBlock::const_succ_iterator it = B->succ_begin(),
371 if (const CFGBlock *succ = *it) {
449 const CFGBlock * B, ExplodedNode *Pred) {
459 void CoreEngine::HandlePostStmt(const CFGBlock *B, unsigned StmtIdx,
493 const CFGBlock *Block, unsigned Idx)
    [all...]

Completed in 1677 milliseconds

1 2