Go to the documentation of this file.
14 #ifndef LLVM_CLANG_STATICANALYZER_CORE_PATHSENSITIVE_WORKLIST_H
15 #define LLVM_CLANG_STATICANALYZER_CORE_PATHSENSITIVE_WORKLIST_H
64 virtual bool hasWork()
const = 0;
82 static std::unique_ptr<WorkList>
makeDFS();
83 static std::unique_ptr<WorkList>
makeBFS();
virtual void enqueue(const WorkListUnit &U)=0
void enqueue(ExplodedNode *N, const CFGBlock *B, unsigned idx)
static std::unique_ptr< WorkList > makeUnexploredFirstPriorityLocationQueue()
WorkListUnit(ExplodedNode *N, BlockCounter C)
static std::unique_ptr< WorkList > makeBFSBlockDFSContents()
void enqueue(ExplodedNode *N)
Represents a single basic block in a source-level CFG.
WorkListUnit(ExplodedNode *N, BlockCounter C, const CFGBlock *B, unsigned idx)
unsigned getIndex() const
Return the index within the CFGBlock for the worklist unit.
ExplodedNode * getNode() const
Returns the node associated with the worklist unit.
static std::unique_ptr< WorkList > makeDFS()
static std::unique_ptr< WorkList > makeBFS()
virtual bool hasWork() const =0
BlockCounter getBlockCounter() const
Returns the block counter map associated with the worklist unit.
virtual WorkListUnit dequeue()=0
const CFGBlock * getBlock() const
Returns the CFGblock associated with the worklist unit.
BlockCounter getBlockCounter() const
__CUDA_BUILTIN_VAR __cuda_builtin_blockIdx_t blockIdx
ProgramPoint getLocation() const
getLocation - Returns the edge associated with the given node.
void setBlockCounter(BlockCounter C)
static std::unique_ptr< WorkList > makeUnexploredFirstPriorityQueue()
static std::unique_ptr< WorkList > makeUnexploredFirst()