public abstract class AbstractSpecialInvokeTypeFlow extends DirectInvokeTypeFlow
| Modifier and Type | Field and Description |
|---|---|
protected TypeState |
seenReceiverTypes |
CALLEES_ACCESSORactualParameters, actualReturn, allOriginalCallees, callerMultiMethodKey, isContextInsensitive, originalInvoke, receiverType, targetMethod| Modifier | Constructor and Description |
|---|---|
protected |
AbstractSpecialInvokeTypeFlow(BytecodePosition invokeLocation,
AnalysisType receiverType,
PointsToAnalysisMethod targetMethod,
TypeFlow<?>[] actualParameters,
ActualReturnTypeFlow actualReturn,
com.oracle.svm.common.meta.MultiMethod.MultiMethodKey callerMultiMethodKey) |
protected |
AbstractSpecialInvokeTypeFlow(PointsToAnalysis bb,
MethodFlowsGraph methodFlows,
AbstractSpecialInvokeTypeFlow original) |
| Modifier and Type | Method and Description |
|---|---|
boolean |
addState(PointsToAnalysis bb,
TypeState add,
boolean postFlow) |
void |
onObservedSaturated(PointsToAnalysis bb,
TypeFlow<?> observed)
Notified by an observed flow that it is saturated.
|
abstract void |
onObservedUpdate(PointsToAnalysis bb)
Notify the observer that the observed type flow state has changed.
|
String |
toString() |
void |
update(PointsToAnalysis bb) |
getAllCallees, getAllComputedCallees, initializeCallees, isDirectInvokeactualParametersCount, canBeStaticallyBound, filterReceiverState, getActualParameter, getActualParameters, getActualReturn, getAllCalleesFlows, getCallerMultiMethodKey, getOriginalCallees, getOriginalCalleesFlows, getOriginalInvoke, getPosition, getReceiver, getReceiverType, getResult, getTargetMethod, isContextInsensitive, isContextInsensitiveVirtualInvoke, linkCallee, linkReturn, markAsContextInsensitive, setActualReturn, setObserved, updateReceiver, updateReceiveraddInput, addObservee, addObserver, addObserver, addState, addUse, addUse, canSaturate, clearInputs, clearObservees, clearObservers, clearUses, copy, declaredTypeFilter, declaredTypeFilter, doAddUse, equals, filter, filterUncheckedInterface, format, formatSource, getDeclaredType, getInputs, getObservees, getObservers, getSlot, getSource, getState, getUses, graphRef, hashCode, id, initFlow, invalidate, isAllInstantiated, isClone, isSaturated, isValid, method, needsInitialization, notifyObserverOfSaturation, notifyUseOfSaturation, onInputSaturated, onSaturated, onSaturated, receiver, removeObserver, removeUse, replacedObservedWith, replaceObservedWith, setSaturated, setSlot, setState, swapAtObserver, swapAtUse, swapOutisDeoptInvokeTypeFlowprotected TypeState seenReceiverTypes
protected AbstractSpecialInvokeTypeFlow(BytecodePosition invokeLocation,
AnalysisType receiverType,
PointsToAnalysisMethod targetMethod,
TypeFlow<?>[] actualParameters,
ActualReturnTypeFlow actualReturn,
com.oracle.svm.common.meta.MultiMethod.MultiMethodKey callerMultiMethodKey)
protected AbstractSpecialInvokeTypeFlow(PointsToAnalysis bb, MethodFlowsGraph methodFlows, AbstractSpecialInvokeTypeFlow original)
public boolean addState(PointsToAnalysis bb, TypeState add, boolean postFlow)
public void update(PointsToAnalysis bb)
public abstract void onObservedUpdate(PointsToAnalysis bb)
TypeFlowonObservedUpdate in class TypeFlow<BytecodePosition>public void onObservedSaturated(PointsToAnalysis bb, TypeFlow<?> observed)
TypeFlowonObservedSaturated in class TypeFlow<BytecodePosition>