public class CISlicer extends Object
Constructor and Description |
---|
CISlicer(CallGraph cg,
PointerAnalysis<InstanceKey> pa,
ModRef modRef,
Slicer.DataDependenceOptions dOptions,
Slicer.ControlDependenceOptions cOptions) |
CISlicer(CallGraph cg,
PointerAnalysis<InstanceKey> pa,
Slicer.DataDependenceOptions dOptions,
Slicer.ControlDependenceOptions cOptions) |
CISlicer(SDG sdg,
PointerAnalysis<InstanceKey> pa,
ModRef modRef) |
Modifier and Type | Method and Description |
---|---|
Collection<Statement> |
computeBackwardThinSlice(Collection<Statement> seeds) |
Collection<Statement> |
computeBackwardThinSlice(Statement seed) |
static Map<Statement,Set<PointerKey>> |
scanForMod(SDG sdg,
PointerAnalysis<InstanceKey> pa)
Compute the set of pointer keys each statement mods
|
static Map<Statement,Set<PointerKey>> |
scanForMod(SDG sdg,
PointerAnalysis<InstanceKey> pa,
boolean ignoreAllocHeapDefs,
ModRef modRef)
Compute the set of pointer keys each statement mods.
|
static Map<Statement,Set<PointerKey>> |
scanForMod(SDG sdg,
PointerAnalysis<InstanceKey> pa,
ModRef modRef)
Compute the set of pointer keys each statement mods
|
static Map<Statement,Set<PointerKey>> |
scanForRef(SDG sdg,
PointerAnalysis<InstanceKey> pa)
Compute the set of pointer keys each statement refs
|
static Map<Statement,Set<PointerKey>> |
scanForRef(SDG sdg,
PointerAnalysis<InstanceKey> pa,
ModRef modRef)
Compute the set of PointerKeys each statement refs.Be careful to avoid eager PDG construction here! That means ..
|
public CISlicer(CallGraph cg, PointerAnalysis<InstanceKey> pa, Slicer.DataDependenceOptions dOptions, Slicer.ControlDependenceOptions cOptions)
public CISlicer(CallGraph cg, PointerAnalysis<InstanceKey> pa, ModRef modRef, Slicer.DataDependenceOptions dOptions, Slicer.ControlDependenceOptions cOptions) throws IllegalArgumentException
IllegalArgumentException
public CISlicer(SDG sdg, PointerAnalysis<InstanceKey> pa, ModRef modRef)
public Collection<Statement> computeBackwardThinSlice(Statement seed)
public Collection<Statement> computeBackwardThinSlice(Collection<Statement> seeds)
public static Map<Statement,Set<PointerKey>> scanForMod(SDG sdg, PointerAnalysis<InstanceKey> pa)
public static Map<Statement,Set<PointerKey>> scanForRef(SDG sdg, PointerAnalysis<InstanceKey> pa)
public static Map<Statement,Set<PointerKey>> scanForMod(SDG sdg, PointerAnalysis<InstanceKey> pa, ModRef modRef)
public static Map<Statement,Set<PointerKey>> scanForMod(SDG sdg, PointerAnalysis<InstanceKey> pa, boolean ignoreAllocHeapDefs, ModRef modRef)
public static Map<Statement,Set<PointerKey>> scanForRef(SDG sdg, PointerAnalysis<InstanceKey> pa, ModRef modRef)