Package com.ibm.wala.ipa.slicer
Class ReachabilityFunctions<T>
- java.lang.Object
-
- com.ibm.wala.ipa.slicer.ReachabilityFunctions<T>
-
- All Implemented Interfaces:
IFlowFunctionMap<T>
public class ReachabilityFunctions<T> extends Object implements IFlowFunctionMap<T>
Trivial flow functions to represent simple reachability. All functions simply return "0"
-
-
Field Summary
Fields Modifier and Type Field Description static VectorGenFlowFunction
FLOW_REACHES
static IUnaryFlowFunction
KILL_FLOW
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static <T> ReachabilityFunctions<T>
createReachabilityFunctions()
IUnaryFlowFunction
getCallFlowFunction(T src, T dest, T ret)
IUnaryFlowFunction
getCallNoneToReturnFlowFunction(T src, T dest)
IUnaryFlowFunction
getCallToReturnFlowFunction(T src, T dest)
IUnaryFlowFunction
getNormalFlowFunction(T src, T dest)
IFlowFunction
getReturnFlowFunction(T src, T dest)
IFlowFunction
getReturnFlowFunction(T call, T src, T dest)
-
-
-
Field Detail
-
FLOW_REACHES
public static final VectorGenFlowFunction FLOW_REACHES
-
KILL_FLOW
public static final IUnaryFlowFunction KILL_FLOW
-
-
Method Detail
-
createReachabilityFunctions
public static <T> ReachabilityFunctions<T> createReachabilityFunctions()
-
getCallNoneToReturnFlowFunction
public IUnaryFlowFunction getCallNoneToReturnFlowFunction(T src, T dest)
- Specified by:
getCallNoneToReturnFlowFunction
in interfaceIFlowFunctionMap<T>
- Returns:
- the flow function for a "call-to-return" edge in the supergraph from src->dest, when the supergraph does not contain any callees of src. This happens via, e.g., slicing.
-
getCallToReturnFlowFunction
public IUnaryFlowFunction getCallToReturnFlowFunction(T src, T dest)
- Specified by:
getCallToReturnFlowFunction
in interfaceIFlowFunctionMap<T>
- Returns:
- the flow function for a "call-to-return" edge in the supergraph from src->dest
-
getNormalFlowFunction
public IUnaryFlowFunction getNormalFlowFunction(T src, T dest)
- Specified by:
getNormalFlowFunction
in interfaceIFlowFunctionMap<T>
- Returns:
- the flow function for a "normal" edge in the supergraph from src->dest
-
getReturnFlowFunction
public IFlowFunction getReturnFlowFunction(T call, T src, T dest)
- Specified by:
getReturnFlowFunction
in interfaceIFlowFunctionMap<T>
- Parameters:
call
- supergraph node of the call instruction for this return edge.- Returns:
- the flow function for a "return" edge in the supergraph from src->dest
-
getReturnFlowFunction
public IFlowFunction getReturnFlowFunction(T src, T dest)
-
getCallFlowFunction
public IUnaryFlowFunction getCallFlowFunction(T src, T dest, T ret)
- Specified by:
getCallFlowFunction
in interfaceIFlowFunctionMap<T>
- Parameters:
src
- the call blockdest
- the entry of the calleeret
- the block that will be returned to, in the caller. This can be null .. signifying that facts can flow into the callee but not return- Returns:
- the flow function for a "call" edge in the supergraph from src->dest
-
-