Package com.ibm.wala.ipa.slicer
Class SliceFunctions
- java.lang.Object
-
- com.ibm.wala.ipa.slicer.SliceFunctions
-
- All Implemented Interfaces:
IFlowFunctionMap<Statement>
,IPartiallyBalancedFlowFunctions<Statement>
public class SliceFunctions extends Object implements IPartiallyBalancedFlowFunctions<Statement>
flow functions for flow-sensitive context-sensitive slicer
-
-
Constructor Summary
Constructors Constructor Description SliceFunctions()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description IUnaryFlowFunction
getCallFlowFunction(Statement src, Statement dest, Statement ret)
IUnaryFlowFunction
getCallNoneToReturnFlowFunction(Statement src, Statement dest)
IUnaryFlowFunction
getCallToReturnFlowFunction(Statement src, Statement dest)
IUnaryFlowFunction
getNormalFlowFunction(Statement src, Statement dest)
IFlowFunction
getReturnFlowFunction(Statement src, Statement dest)
IFlowFunction
getReturnFlowFunction(Statement call, Statement src, Statement dest)
IFlowFunction
getUnbalancedReturnFlowFunction(Statement src, Statement dest)
This version should work when the "call" instruction was never reached normally.
-
-
-
Method Detail
-
getCallFlowFunction
public IUnaryFlowFunction getCallFlowFunction(Statement src, Statement dest, Statement ret)
- Specified by:
getCallFlowFunction
in interfaceIFlowFunctionMap<Statement>
- 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
-
getCallNoneToReturnFlowFunction
public IUnaryFlowFunction getCallNoneToReturnFlowFunction(Statement src, Statement dest)
- Specified by:
getCallNoneToReturnFlowFunction
in interfaceIFlowFunctionMap<Statement>
- 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(Statement src, Statement dest)
- Specified by:
getCallToReturnFlowFunction
in interfaceIFlowFunctionMap<Statement>
- Returns:
- the flow function for a "call-to-return" edge in the supergraph from src->dest
-
getNormalFlowFunction
public IUnaryFlowFunction getNormalFlowFunction(Statement src, Statement dest)
- Specified by:
getNormalFlowFunction
in interfaceIFlowFunctionMap<Statement>
- Returns:
- the flow function for a "normal" edge in the supergraph from src->dest
-
getReturnFlowFunction
public IFlowFunction getReturnFlowFunction(Statement call, Statement src, Statement dest)
- Specified by:
getReturnFlowFunction
in interfaceIFlowFunctionMap<Statement>
- 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(Statement src, Statement dest)
-
getUnbalancedReturnFlowFunction
public IFlowFunction getUnbalancedReturnFlowFunction(Statement src, Statement dest)
Description copied from interface:IPartiallyBalancedFlowFunctions
This version should work when the "call" instruction was never reached normally. This applies only when using partially balanced parentheses.- Specified by:
getUnbalancedReturnFlowFunction
in interfaceIPartiallyBalancedFlowFunctions<Statement>
- Returns:
- the flow function for a "return" edge in the supergraph from src->dest
-
-