public class CustomContextSensitivityStrategy extends java.lang.Object implements IContextSensitivityStrategy
| Constructor and Description |
|---|
CustomContextSensitivityStrategy(IContextSensitivityStrategy defaultContextSensitivity)
Creates a new
CustomContextSensitivityWrapper by wrapping the given context sensitivity strategy. |
| Modifier and Type | Method and Description |
|---|---|
HeapContext |
makeActivationAndArgumentsHeapContext(State state,
ObjectLabel function,
Value thisval,
FunctionCalls.CallInfo callInfo,
GenericSolver.SolverInterface c)
Constructs a heap context for objects related to a call.
|
HeapContext |
makeClosureVariableContext(Function fun,
GenericSolver.SolverInterface c) |
HeapContext |
makeConstructorHeapContext(State state,
ObjectLabel function,
FunctionCalls.CallInfo callInfo,
GenericSolver.SolverInterface c)
Constructs a heap context for an object created at 'new'.
|
ContextArguments |
makeContextArguments(State edgeState,
ObjectLabel calleeObj,
Value thisval,
FunctionCalls.CallInfo callInfo)
Attempts to make a context for a call, but only for callees that have been made context sensitive.
|
Context |
makeForInEntryContext(Context currentContext,
BeginForInNode n,
Value v)
Constructs a context for entering a for-in body.
|
Context |
makeFunctionEntryContext(State state,
ObjectLabel function,
FunctionCalls.CallInfo callInfo,
Value thisval,
GenericSolver.SolverInterface c)
Constructs a context for call.
|
HeapContext |
makeFunctionHeapContext(Function fun,
GenericSolver.SolverInterface c)
Constructs a heap context for a function object.
|
Context |
makeInitialContext()
Constructs the initial context.
|
Context |
makeLoopExitContext(Context currentContext,
EndLoopNode node)
Constructs a context for leaving a loop.
|
Context |
makeNextLoopUnrollingContext(Context currentContext,
BeginLoopNode node)
Constructs a context for (re-)entering a loop.
|
HeapContext |
makeObjectLiteralHeapContext(AbstractNode node,
State state)
Constructs a heap context for an object literal.
|
void |
makeSensitive(Function function,
int sensitivity)
Makes a function context sensitive.
|
void |
makeSensitiveFromCaller(Function callee,
int sensitivity,
Function caller)
Makes a function context sensitive, but only when it is invoked from a specific caller.
|
void |
requestContextSensitiveParameter(Function function,
java.lang.String parameter)
Requests that a parameter is treated context sensitively.
|
public CustomContextSensitivityStrategy(IContextSensitivityStrategy defaultContextSensitivity)
CustomContextSensitivityWrapper by wrapping the given context sensitivity strategy.public HeapContext makeActivationAndArgumentsHeapContext(State state, ObjectLabel function, Value thisval, FunctionCalls.CallInfo callInfo, GenericSolver.SolverInterface c)
IContextSensitivityStrategymakeActivationAndArgumentsHeapContext in interface IContextSensitivityStrategypublic HeapContext makeClosureVariableContext(Function fun, GenericSolver.SolverInterface c)
public HeapContext makeConstructorHeapContext(State state, ObjectLabel function, FunctionCalls.CallInfo callInfo, GenericSolver.SolverInterface c)
IContextSensitivityStrategymakeConstructorHeapContext in interface IContextSensitivityStrategypublic ContextArguments makeContextArguments(State edgeState, ObjectLabel calleeObj, Value thisval, FunctionCalls.CallInfo callInfo)
public Context makeForInEntryContext(Context currentContext, BeginForInNode n, Value v)
IContextSensitivityStrategymakeForInEntryContext in interface IContextSensitivityStrategypublic Context makeFunctionEntryContext(State state, ObjectLabel function, FunctionCalls.CallInfo callInfo, Value thisval, GenericSolver.SolverInterface c)
IContextSensitivityStrategymakeFunctionEntryContext in interface IContextSensitivityStrategypublic HeapContext makeFunctionHeapContext(Function fun, GenericSolver.SolverInterface c)
IContextSensitivityStrategymakeFunctionHeapContext in interface IContextSensitivityStrategypublic Context makeInitialContext()
IContextSensitivityStrategymakeInitialContext in interface IContextSensitivityStrategypublic Context makeLoopExitContext(Context currentContext, EndLoopNode node)
IContextSensitivityStrategymakeLoopExitContext in interface IContextSensitivityStrategypublic Context makeNextLoopUnrollingContext(Context currentContext, BeginLoopNode node)
IContextSensitivityStrategymakeNextLoopUnrollingContext in interface IContextSensitivityStrategypublic HeapContext makeObjectLiteralHeapContext(AbstractNode node, State state)
IContextSensitivityStrategymakeObjectLiteralHeapContext in interface IContextSensitivityStrategypublic void makeSensitive(Function function, int sensitivity)
public void makeSensitiveFromCaller(Function callee, int sensitivity, Function caller)
If the specific caller is null, then the function is always context sensitive.
The sensitivity flag can be:
callee - the function to make sensitive.sensitivity - indicates what kind of context sensitivity that should be used.caller - the caller that is required for context sensitivity to be enabled.public void requestContextSensitiveParameter(Function function, java.lang.String parameter)
IContextSensitivityStrategyrequestContextSensitiveParameter in interface IContextSensitivityStrategyCopyright © 2009-2019 Aarhus University