34using namespace SVFUtil;
58 while (!nodeStack.empty())
static double timeOfProcessLoadStore
static double timeOfProcessCopyGep
ConstraintGraph * consCG
Constraint Graph.
NodeID sccRepNode(NodeID id) const override
SCC methods.
virtual void solveWorklist()
virtual void initialize()
virtual bool handleStore(NodeID id, const ConstraintEdge *store)
virtual bool handleLoad(NodeID id, const ConstraintEdge *load)
virtual void postProcessNode(NodeID nodeId)
static AndersenWaveDiff * diffWave
virtual void processNode(NodeID nodeId)
void setDetectPWC(bool flag)
virtual void initialize()
Initialize analysis.
virtual NodeStack & SCCDetect()
SCC detection.
virtual void handleCopyGep(ConstraintNode *node)
virtual bool processLoad(NodeID node, const ConstraintEdge *load)
virtual const PointsTo & getPts(NodeID id)
Operation of points-to set.
void collapseFields()
collapse positive weight cycles of a graph
virtual bool processStore(NodeID node, const ConstraintEdge *load)
virtual void collapsePWCNode(NodeID nodeId)
Collapse a field object into its base for field insensitive analysis.
ConstraintNode * getConstraintNode(NodeID id) const
Get/add/remove constraint node.
const_iterator outgoingLoadsEnd() const
const_iterator incomingStoresBegin() const
const_iterator incomingStoresEnd() const
ConstraintEdge::ConstraintEdgeSetTy::const_iterator const_iterator
const_iterator outgoingLoadsBegin() const
PTAStat * stat
Statistics.
static double getClk(bool mark=false)
NodeID popFromWorklist()
Worklist operations.
bool reanalyze
Reanalyze if any constraint value changed.
std::stack< NodeID > NodeStack
llvm::IRBuilder IRBuilder