public class VMThreadMTFeature extends Object implements GraalFeature
IsolateThread data structure.org.graalvm.nativeimage.hosted.Feature.AfterAnalysisAccess, org.graalvm.nativeimage.hosted.Feature.AfterCompilationAccess, org.graalvm.nativeimage.hosted.Feature.AfterHeapLayoutAccess, org.graalvm.nativeimage.hosted.Feature.AfterImageWriteAccess, org.graalvm.nativeimage.hosted.Feature.AfterRegistrationAccess, org.graalvm.nativeimage.hosted.Feature.BeforeAnalysisAccess, org.graalvm.nativeimage.hosted.Feature.BeforeCompilationAccess, org.graalvm.nativeimage.hosted.Feature.BeforeImageWriteAccess, org.graalvm.nativeimage.hosted.Feature.CompilationAccess, org.graalvm.nativeimage.hosted.Feature.DuringAnalysisAccess, org.graalvm.nativeimage.hosted.Feature.DuringSetupAccess, org.graalvm.nativeimage.hosted.Feature.FeatureAccess, org.graalvm.nativeimage.hosted.Feature.IsInConfigurationAccess, org.graalvm.nativeimage.hosted.Feature.OnAnalysisExitAccess, org.graalvm.nativeimage.hosted.Feature.QueryReachabilityAccess| Constructor and Description |
|---|
VMThreadMTFeature() |
| Modifier and Type | Method and Description |
|---|---|
void |
beforeCompilation(org.graalvm.nativeimage.hosted.Feature.BeforeCompilationAccess config) |
void |
duringAnalysis(org.graalvm.nativeimage.hosted.Feature.DuringAnalysisAccess access) |
void |
duringSetup(org.graalvm.nativeimage.hosted.Feature.DuringSetupAccess config) |
int |
getVMThreadSize() |
boolean |
isInConfiguration(org.graalvm.nativeimage.hosted.Feature.IsInConfigurationAccess access) |
int |
offsetOf(FastThreadLocal threadLocal) |
void |
registerInvocationPlugins(org.graalvm.compiler.phases.util.Providers providers,
org.graalvm.compiler.api.replacements.SnippetReflectionProvider snippetReflection,
org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins invocationPlugins,
boolean analysis,
boolean hosted)
Intrinsify the
get() and set() methods during bytecode parsing. |
void |
setThreadLocalAtOffsetZero(FastThreadLocal threadLocal) |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitregisterCodeObserver, registerForeignCalls, registerGraalPhases, registerGraphBuilderPlugins, registerLoweringspublic int getVMThreadSize()
public boolean isInConfiguration(org.graalvm.nativeimage.hosted.Feature.IsInConfigurationAccess access)
isInConfiguration in interface org.graalvm.nativeimage.hosted.Featurepublic void duringSetup(org.graalvm.nativeimage.hosted.Feature.DuringSetupAccess config)
duringSetup in interface org.graalvm.nativeimage.hosted.Featurepublic void registerInvocationPlugins(org.graalvm.compiler.phases.util.Providers providers,
org.graalvm.compiler.api.replacements.SnippetReflectionProvider snippetReflection,
org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins invocationPlugins,
boolean analysis,
boolean hosted)
get() and set() methods during bytecode parsing. We know that
every subclass of VMThreadLocal has the same methods. Only the signatures differ based on the
type of value.
When the IsolateThread is not passed in as a parameter, we use the
current thread. We do not need read/write barriers since we
access memory that we manage ourselfs.
registerInvocationPlugins in interface GraalFeatureproviders - Providers that the lowering can use.snippetReflection - Snippet reflection providers.invocationPlugins - The invocation plugins to add to.analysis - true if registering for analysis, false if registering for compilationhosted - True if registering for ahead-of-time compilation, false otherwisepublic void setThreadLocalAtOffsetZero(FastThreadLocal threadLocal)
public void duringAnalysis(org.graalvm.nativeimage.hosted.Feature.DuringAnalysisAccess access)
duringAnalysis in interface org.graalvm.nativeimage.hosted.Featurepublic void beforeCompilation(org.graalvm.nativeimage.hosted.Feature.BeforeCompilationAccess config)
beforeCompilation in interface org.graalvm.nativeimage.hosted.Featurepublic int offsetOf(FastThreadLocal threadLocal)