public class AnalysisMethod extends Object implements WrappedJavaMethod, GraphProvider
jdk.vm.ci.meta.ResolvedJavaMethod.ParameterGraphProvider.Purpose| Modifier and Type | Field and Description |
|---|---|
protected AnalysisMethod[] |
implementations
All concrete methods that can actually be called when calling this method.
|
jdk.vm.ci.meta.ResolvedJavaMethod |
wrapped |
| Constructor and Description |
|---|
AnalysisMethod(AnalysisUniverse universe,
jdk.vm.ci.meta.ResolvedJavaMethod wrapped) |
| Modifier and Type | Method and Description |
|---|---|
boolean |
allowRuntimeCompilation()
Returns true if a graph can be provided for
GraphProvider.Purpose.PREPARE_RUNTIME_COMPILATION. |
StackTraceElement |
asStackTraceElement(int bci) |
org.graalvm.compiler.nodes.StructuredGraph |
buildGraph(org.graalvm.compiler.debug.DebugContext debug,
jdk.vm.ci.meta.ResolvedJavaMethod method,
HostedProviders providers,
GraphProvider.Purpose purpose) |
boolean |
canBeInlined() |
boolean |
canBeStaticallyBound() |
void |
cleanupAfterAnalysis() |
boolean |
equals(Object obj) |
<T extends Annotation> |
getAnnotation(Class<T> annotationClass) |
Annotation[] |
getAnnotations() |
byte[] |
getCode() |
int |
getCodeSize() |
jdk.vm.ci.meta.ConstantPool |
getConstantPool() |
Annotation[] |
getDeclaredAnnotations() |
AnalysisType |
getDeclaringClass() |
jdk.vm.ci.meta.Constant |
getEncoding() |
Object |
getEntryPointData() |
jdk.vm.ci.meta.ExceptionHandler[] |
getExceptionHandlers() |
Type[] |
getGenericParameterTypes() |
int |
getId() |
AnalysisMethod[] |
getImplementations() |
Set<InvokeTypeFlow> |
getInvokeTypeFlows() |
List<AnalysisMethod> |
getJavaInvocations() |
jdk.vm.ci.meta.LineNumberTable |
getLineNumberTable() |
jdk.vm.ci.meta.LocalVariableTable |
getLocalVariableTable() |
int |
getMaxLocals() |
int |
getMaxStackSize() |
int |
getModifiers() |
String |
getName() |
Annotation[][] |
getParameterAnnotations() |
jdk.vm.ci.meta.ResolvedJavaMethod.Parameter[] |
getParameters() |
jdk.vm.ci.meta.ProfilingInfo |
getProfilingInfo(boolean includeNormal,
boolean includeOSR) |
WrappedSignature |
getSignature() |
jdk.vm.ci.meta.SpeculationLog |
getSpeculationLog() |
MethodTypeFlow |
getTypeFlow() |
jdk.vm.ci.meta.ResolvedJavaMethod |
getWrapped() |
int |
hashCode() |
boolean |
hasNeverInlineDirective() |
boolean |
isBridge() |
boolean |
isClassInitializer() |
boolean |
isConstructor() |
boolean |
isDefault() |
boolean |
isEntryPoint() |
boolean |
isImplementationInvoked()
Returns true if the method body can ever be executed.
|
boolean |
isIntrinsicMethod() |
boolean |
isInVirtualMethodTable(jdk.vm.ci.meta.ResolvedJavaType resolved) |
boolean |
isInvoked()
Returns true if this method is ever used as the target of a call site.
|
boolean |
isRootMethod() |
boolean |
isSimplyImplementationInvoked() |
boolean |
isSimplyInvoked() |
boolean |
isSynthetic() |
boolean |
isVarArgs() |
void |
registerAsEntryPoint(Object newEntryPointData) |
void |
registerAsImplementationInvoked(InvokeTypeFlow invoke) |
void |
registerAsIntrinsicMethod()
Registers this method as intrinsified to Graal nodes via a
graph
builder plugin. |
void |
registerAsInvoked(InvokeTypeFlow invoke) |
void |
registerAsRootMethod() |
void |
reprofile() |
boolean |
shouldBeInlined() |
void |
startTrackInvocations() |
String |
toString() |
clone, finalize, getClass, notify, notifyAll, wait, wait, waitgetParameterAnnotation, getParameterAnnotations, getProfilingInfo, hasBytecodes, hasReceiver, isFinal, isJavaLangObjectInit, toParameterTypesisAbstract, isConcrete, isFinalFlagSet, isInterface, isNative, isPackagePrivate, isPrivate, isProtected, isPublic, isStatic, isStrict, isSynchronized, isTransient, isVolatilegetAnnotationsByType, getDeclaredAnnotation, getDeclaredAnnotationsByType, isAnnotationPresentpublic final jdk.vm.ci.meta.ResolvedJavaMethod wrapped
protected AnalysisMethod[] implementations
public AnalysisMethod(AnalysisUniverse universe, jdk.vm.ci.meta.ResolvedJavaMethod wrapped)
public void cleanupAfterAnalysis()
public void startTrackInvocations()
public int getId()
public MethodTypeFlow getTypeFlow()
public void registerAsIntrinsicMethod()
graph
builder plugin. Such a method is treated similar to an invoked method. For example, method
resolution must be able to find the method (otherwise the intrinsification would not work).public void registerAsEntryPoint(Object newEntryPointData)
public void registerAsInvoked(InvokeTypeFlow invoke)
public void registerAsImplementationInvoked(InvokeTypeFlow invoke)
public List<AnalysisMethod> getJavaInvocations()
public Set<InvokeTypeFlow> getInvokeTypeFlows()
public boolean isEntryPoint()
public Object getEntryPointData()
public boolean isIntrinsicMethod()
public void registerAsRootMethod()
public boolean isRootMethod()
public boolean isSimplyInvoked()
public boolean isSimplyImplementationInvoked()
public boolean isInvoked()
public boolean isImplementationInvoked()
public jdk.vm.ci.meta.ResolvedJavaMethod getWrapped()
getWrapped in interface WrappedElementgetWrapped in interface WrappedJavaMethodpublic String getName()
getName in interface jdk.vm.ci.meta.JavaMethodpublic WrappedSignature getSignature()
getSignature in interface jdk.vm.ci.meta.JavaMethodpublic org.graalvm.compiler.nodes.StructuredGraph buildGraph(org.graalvm.compiler.debug.DebugContext debug,
jdk.vm.ci.meta.ResolvedJavaMethod method,
HostedProviders providers,
GraphProvider.Purpose purpose)
buildGraph in interface GraphProviderpublic boolean allowRuntimeCompilation()
GraphProviderGraphProvider.Purpose.PREPARE_RUNTIME_COMPILATION. Note
that a manually generated graph must be able to provide the proper deoptimization entry
points and deoptimization frame states.allowRuntimeCompilation in interface GraphProviderpublic byte[] getCode()
getCode in interface jdk.vm.ci.meta.ResolvedJavaMethodpublic int getCodeSize()
getCodeSize in interface jdk.vm.ci.meta.ResolvedJavaMethodpublic AnalysisType getDeclaringClass()
getDeclaringClass in interface jdk.vm.ci.meta.JavaMethodgetDeclaringClass in interface jdk.vm.ci.meta.ResolvedJavaMethodpublic int getMaxLocals()
getMaxLocals in interface jdk.vm.ci.meta.ResolvedJavaMethodpublic int getMaxStackSize()
getMaxStackSize in interface jdk.vm.ci.meta.ResolvedJavaMethodpublic jdk.vm.ci.meta.ResolvedJavaMethod.Parameter[] getParameters()
getParameters in interface jdk.vm.ci.meta.ResolvedJavaMethodpublic int getModifiers()
getModifiers in interface jdk.vm.ci.meta.ModifiersProviderpublic boolean isSynthetic()
isSynthetic in interface jdk.vm.ci.meta.ResolvedJavaMethodpublic boolean isVarArgs()
isVarArgs in interface jdk.vm.ci.meta.ResolvedJavaMethodpublic boolean isBridge()
isBridge in interface jdk.vm.ci.meta.ResolvedJavaMethodpublic boolean isClassInitializer()
isClassInitializer in interface jdk.vm.ci.meta.ResolvedJavaMethodpublic boolean isConstructor()
isConstructor in interface jdk.vm.ci.meta.ResolvedJavaMethodpublic boolean canBeStaticallyBound()
canBeStaticallyBound in interface jdk.vm.ci.meta.ResolvedJavaMethodpublic AnalysisMethod[] getImplementations()
public jdk.vm.ci.meta.ExceptionHandler[] getExceptionHandlers()
getExceptionHandlers in interface jdk.vm.ci.meta.ResolvedJavaMethodpublic StackTraceElement asStackTraceElement(int bci)
asStackTraceElement in interface jdk.vm.ci.meta.ResolvedJavaMethodpublic jdk.vm.ci.meta.ProfilingInfo getProfilingInfo(boolean includeNormal,
boolean includeOSR)
getProfilingInfo in interface jdk.vm.ci.meta.ResolvedJavaMethodpublic jdk.vm.ci.meta.ConstantPool getConstantPool()
getConstantPool in interface jdk.vm.ci.meta.ResolvedJavaMethodpublic Annotation[] getAnnotations()
getAnnotations in interface AnnotatedElementpublic Annotation[] getDeclaredAnnotations()
getDeclaredAnnotations in interface AnnotatedElementpublic <T extends Annotation> T getAnnotation(Class<T> annotationClass)
getAnnotation in interface AnnotatedElementpublic Annotation[][] getParameterAnnotations()
getParameterAnnotations in interface jdk.vm.ci.meta.ResolvedJavaMethodpublic Type[] getGenericParameterTypes()
getGenericParameterTypes in interface jdk.vm.ci.meta.ResolvedJavaMethodpublic boolean canBeInlined()
canBeInlined in interface jdk.vm.ci.meta.ResolvedJavaMethodpublic boolean hasNeverInlineDirective()
hasNeverInlineDirective in interface jdk.vm.ci.meta.ResolvedJavaMethodpublic boolean shouldBeInlined()
shouldBeInlined in interface jdk.vm.ci.meta.ResolvedJavaMethodpublic jdk.vm.ci.meta.LineNumberTable getLineNumberTable()
getLineNumberTable in interface jdk.vm.ci.meta.ResolvedJavaMethodpublic jdk.vm.ci.meta.LocalVariableTable getLocalVariableTable()
getLocalVariableTable in interface jdk.vm.ci.meta.ResolvedJavaMethodpublic void reprofile()
reprofile in interface jdk.vm.ci.meta.ResolvedJavaMethodpublic jdk.vm.ci.meta.Constant getEncoding()
getEncoding in interface jdk.vm.ci.meta.ResolvedJavaMethodpublic boolean isInVirtualMethodTable(jdk.vm.ci.meta.ResolvedJavaType resolved)
isInVirtualMethodTable in interface jdk.vm.ci.meta.ResolvedJavaMethodpublic boolean isDefault()
isDefault in interface jdk.vm.ci.meta.ResolvedJavaMethodpublic jdk.vm.ci.meta.SpeculationLog getSpeculationLog()
getSpeculationLog in interface jdk.vm.ci.meta.ResolvedJavaMethod