30#ifndef SABERSVFGBUILDER_H_
31#define SABERSVFGBUILDER_H_
41class SaberCondAllocator;
std::unique_ptr< SVFG > svfg
virtual ~SaberSVFGBuilder()
Destructor.
bool isStrongUpdate(const SVFGNode *node, NodeID &singleton, BVDataPTAImpl *pta)
Return TRUE if this is a strong update STORE statement.
Set< const SVFGNode * > SVFGNodeSet
void collectGlobals(BVDataPTAImpl *pta)
PointsTo & CollectPtsChain(BVDataPTAImpl *pta, NodeID id, NodeToPTSSMap &cachedPtsMap)
Collect objects along points-to chains.
bool accessGlobal(BVDataPTAImpl *pta, const PAGNode *pagNode)
Whether points-to of a PAGNode points-to global variable.
Map< NodeID, PointsTo > NodeToPTSSMap
virtual void buildSVFG()
Re-write create SVFG method.
FIFOWorkList< NodeID > WorkList
void setSaberCondAllocator(SaberCondAllocator *allocator)
SVFGNodeSet globSVFGNodes
Store all global SVFG nodes.
SaberSVFGBuilder()
Constructor.
virtual void AddExtActualParmSVFGNodes(PTACallGraph *callgraph)
Add actual parameter SVFGNode for 1st argument of a deallocation like external function.
void addActualParmVFGNode(const PAGNode *pagNode, const CallICFGNode *cs)
Add ActualParmVFGNode.
SaberCondAllocator * saberCondAllocator
void rmDerefDirSVFGEdges(BVDataPTAImpl *pta)
virtual void rmIncomingEdgeForSUStore(BVDataPTAImpl *pta)
bool isGlobalSVFGNode(const SVFGNode *node) const
llvm::IRBuilder IRBuilder