36#ifndef DISNCTMRGENERATOR_H_
37#define DISNCTMRGENERATOR_H_
virtual void getMRsForLoad(MRSet &aliasMRs, const NodeBS &cpts, const SVFFunction *fun)
Get memory region at a load.
virtual void partitionMRs()
Partition regions.
virtual void getMRsForCallSiteRef(MRSet &aliasMRs, const NodeBS &cpts, const SVFFunction *fun)
Get memory regions to be inserted at a load statement.
void createDistinctMR(const SVFFunction *func, const NodeBS &cpts)
Create memory regions for each points-to target.
DistinctMRG(BVDataPTAImpl *p, bool ptrOnly)
virtual void partitionMRs()
Partition regions.
InterDisjointMRG(BVDataPTAImpl *p, bool ptrOnly)
virtual void getMRsForLoad(MRSet &aliasMRs, const NodeBS &cpts, const SVFFunction *)
const PtsToSubPtsMap & getPtsSubSetMap(const SVFFunction *func) const
void createDisjointMR(const SVFFunction *func, const NodeBS &cpts)
Create disjoint memory region.
OrderedMap< NodeBS, PointsToList > PtsToSubPtsMap
virtual void partitionMRs()
Partition regions.
Map< const SVFFunction *, PtsToSubPtsMap > FunToPtsMap
virtual void getMRsForCallSiteRef(MRSet &aliasMRs, const NodeBS &cpts, const SVFFunction *fun)
Get memory regions to be inserted at a load statement.
void getMRsForLoadFromInterList(MRSet &mrs, const NodeBS &cpts, const PointsToList &inters)
PtsToSubPtsMap & getPtsSubSetMap(const SVFFunction *func)
FunToInterMap funcToInterMap
Map< const SVFFunction *, PointsToList > FunToInterMap
void computeIntersections(const NodeBS &cpts, PointsToList &inters)
Compute intersections between cpts and computed cpts intersections before.
IntraDisjointMRG(BVDataPTAImpl *p, bool ptrOnly)
virtual void getMRsForLoad(MRSet &aliasMRs, const NodeBS &cpts, const SVFFunction *fun)
PointsToList & getIntersList(const SVFFunction *func)
OrderedSet< NodeBS, SVFUtil::equalNodeBS > PointsToList
OrderedSet< const MemRegion *, MemRegion::equalMemRegion > MRSet
Get typedef from Pointer Analysis.
llvm::IRBuilder IRBuilder