public final class PointsToAnalysisMethod extends AnalysisMethod
AnalysisMethod.SignatureAnalysisElement.ElementNotification, AnalysisElement.MethodOverrideReachableNotification, AnalysisElement.ReachabilityReason, AnalysisElement.ReachabilityTraceBuilder, AnalysisElement.SubtypeReachableNotificationGraphProvider.PurposedeclaringClass, implementations, wrapped| Constructor and Description |
|---|
PointsToAnalysisMethod(AnalysisUniverse universe,
ResolvedJavaMethod wrapped) |
| Modifier and Type | Method and Description |
|---|---|
void |
cleanupAfterAnalysis() |
protected AnalysisMethod |
createMultiMethod(AnalysisMethod analysisMethod,
com.oracle.svm.common.meta.MultiMethod.MultiMethodKey newMultiMethodKey) |
InvokeTypeFlow |
getContextInsensitiveVirtualInvoke(com.oracle.svm.common.meta.MultiMethod.MultiMethodKey callerMultiMethodKey) |
List<BytecodePosition> |
getInvokeLocations()
Get the list of all invoke locations for this method, as inferred by the static analysis.
|
Iterable<? extends InvokeInfo> |
getInvokes() |
Object |
getParsingReason() |
MethodTypeFlow |
getTypeFlow() |
InvokeTypeFlow |
initAndGetContextInsensitiveInvoke(PointsToAnalysis bb,
BytecodePosition originalLocation,
boolean isSpecial,
com.oracle.svm.common.meta.MultiMethod.MultiMethodKey callerMultiMethodKey) |
boolean |
isImplementationInvokable() |
boolean |
registerAsImplementationInvoked(Object reason) |
boolean |
registerAsInvoked(Object reason) |
void |
setReturnsAllInstantiatedTypes()
This should only be set via calling
FeatureImpl.BeforeAnalysisAccessImpl#registerOpaqueMethodReturn. |
void |
startTrackInvocations() |
static Object |
unwrapInvokeReason(Object reason)
In general the reason for a method invocation is an
InvokeTypeFlow. |
allowRuntimeCompilation, asStackTraceElement, buildGraph, canBeInlined, canBeStaticallyBound, decodeAnalyzedGraph, ensureGraphParsed, equals, getAllMultiMethods, getAnalyzedGraph, getCallers, getCode, getCodeSize, getConstantPool, getDeclaringClass, getEncoding, getEntryPointData, getExceptionHandlers, getGenericParameterTypes, getId, getImplementationInvokedReason, getImplementations, getInlinedReason, getIntrinsicMethodReason, getInvokedReason, getJavaMethod, getLineNumberTable, getLocalVariableTable, getMaxLocals, getMaxStackSize, getModifiers, getMultiMethod, getMultiMethodKey, getName, getOrCreateMultiMethod, getOrCreateMultiMethod, getParameterAnnotations, getParameters, getParsingContext, getProfilingInfo, getQualifiedName, getReturnsAllInstantiatedTypes, getSignature, getSpeculationLog, getUniverse, getWrapped, hashCode, hasNeverInlineDirective, isBridge, isClassInitializer, isConstructor, isDefault, isDirectRootMethod, isEntryPoint, isImplementationInvoked, isInlined, isIntrinsicMethod, isInVirtualMethodTable, isInvoked, isReachable, isSimplyImplementationInvoked, isSynthetic, isTriggered, isVarArgs, isVirtualRootMethod, notifyImplementationInvokedCallbacks, notifyMethodOverride, onImplementationInvoked, onReachable, registerAsDirectRootMethod, registerAsEntryPoint, registerAsInlined, registerAsIntrinsicMethod, registerAsVirtualRootMethod, registerImplementationInvokedCallback, registerOverrideReachabilityNotification, reparseGraph, reprofile, resolveInType, resolveInType, setAnalyzedGraph, shouldBeInlined, toStringexecute, getAnnotation, getAnnotations, getDeclaredAnnotation, getDeclaredAnnotations, isAnnotationPresent, notifyReachabilityCallback, notifyReachabilityCallbacks, registerReachabilityNotificationgetJavaMethodisDeoptTarget, isDeoptTarget, isOriginalMethod, isOriginalMethodgetAnnotationsByType, getDeclaredAnnotationsByTypepublic PointsToAnalysisMethod(AnalysisUniverse universe, ResolvedJavaMethod wrapped)
protected AnalysisMethod createMultiMethod(AnalysisMethod analysisMethod, com.oracle.svm.common.meta.MultiMethod.MultiMethodKey newMultiMethodKey)
createMultiMethod in class AnalysisMethodpublic void startTrackInvocations()
startTrackInvocations in class AnalysisMethodpublic MethodTypeFlow getTypeFlow()
public boolean registerAsInvoked(Object reason)
registerAsInvoked in class AnalysisMethodpublic boolean registerAsImplementationInvoked(Object reason)
registerAsImplementationInvoked in class AnalysisMethodpublic static Object unwrapInvokeReason(Object reason)
InvokeTypeFlow. Special and
virtual root methods have the corresponding context-insensitive invoke reason set. Static
root method doesn't have any reason set.public List<BytecodePosition> getInvokeLocations()
AnalysisMethodgetInvokeLocations in class AnalysisMethodpublic Iterable<? extends InvokeInfo> getInvokes()
getInvokes in class AnalysisMethodpublic Object getParsingReason()
getParsingReason in class AnalysisMethodpublic InvokeTypeFlow initAndGetContextInsensitiveInvoke(PointsToAnalysis bb, BytecodePosition originalLocation, boolean isSpecial, com.oracle.svm.common.meta.MultiMethod.MultiMethodKey callerMultiMethodKey)
public InvokeTypeFlow getContextInsensitiveVirtualInvoke(com.oracle.svm.common.meta.MultiMethod.MultiMethodKey callerMultiMethodKey)
public void cleanupAfterAnalysis()
cleanupAfterAnalysis in class AnalysisMethodpublic boolean isImplementationInvokable()
isImplementationInvokable in class AnalysisMethodpublic void setReturnsAllInstantiatedTypes()
AnalysisMethodFeatureImpl.BeforeAnalysisAccessImpl#registerOpaqueMethodReturn.setReturnsAllInstantiatedTypes in class AnalysisMethod