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 IUnaryFlowFunctiongetCallFlowFunction(Statement src, Statement dest, Statement ret)IUnaryFlowFunctiongetCallNoneToReturnFlowFunction(Statement src, Statement dest)IUnaryFlowFunctiongetCallToReturnFlowFunction(Statement src, Statement dest)IUnaryFlowFunctiongetNormalFlowFunction(Statement src, Statement dest)IFlowFunctiongetReturnFlowFunction(Statement src, Statement dest)IFlowFunctiongetReturnFlowFunction(Statement call, Statement src, Statement dest)IFlowFunctiongetUnbalancedReturnFlowFunction(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:
getCallFlowFunctionin 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:
getCallNoneToReturnFlowFunctionin 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:
getCallToReturnFlowFunctionin 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:
getNormalFlowFunctionin 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:
getReturnFlowFunctionin 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:IPartiallyBalancedFlowFunctionsThis version should work when the "call" instruction was never reached normally. This applies only when using partially balanced parentheses.- Specified by:
getUnbalancedReturnFlowFunctionin interfaceIPartiallyBalancedFlowFunctions<Statement>- Returns:
- the flow function for a "return" edge in the supergraph from src->dest
-
-