19#ifndef LLVM_CLANG_ANALYSIS_ANALYSES_INTERVALPARTITION_H
20#define LLVM_CLANG_ANALYSIS_ANALYSES_INTERVALPARTITION_H
23#include "llvm/ADT/DenseSet.h"
82 const llvm::SmallDenseSet<const CFGIntervalNode *> &
preds()
const {
85 const llvm::SmallDenseSet<const CFGIntervalNode *> &
succs()
const {
93 std::vector<const CFGBlock *>
Nodes;
Represents a single basic block in a source-level CFG.
unsigned getBlockID() const
Represents a source-level, intra-procedural CFG that represents the control-flow of a Stmt.
std::vector< const CFGBlock * > buildInterval(const CFGBlock *Header)
std::deque< CFGIntervalNode > CFGIntervalGraph
CFGIntervalGraph partitionIntoIntervals(const CFG &Cfg)
The JSON file list parser is used to communicate input to InstallAPI.
std::vector< const CFGBlock * > WeakTopologicalOrdering
A weak topological ordering (WTO) of CFG nodes provides a total order over the CFG (defined in WTOCom...
std::optional< WeakTopologicalOrdering > getIntervalWTO(const CFG &Cfg)
std::vector< unsigned > BlockOrder
bool operator()(const CFGBlock *B1, const CFGBlock *B2) const
std::vector< const CFGBlock * > Nodes
const llvm::SmallDenseSet< const CFGIntervalNode * > & preds() const
llvm::SmallDenseSet< const CFGIntervalNode * > Predecessors
CFGIntervalNode(unsigned ID, std::vector< const CFGBlock * > Nodes)
CFGIntervalNode(unsigned ID)
llvm::SmallDenseSet< const CFGIntervalNode * > Successors
const llvm::SmallDenseSet< const CFGIntervalNode * > & succs() const
CFGIntervalNode()=default