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.BeforeUniverseBuildingAccess, 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.GraphBuilderConfiguration.Plugins plugins,
ParsingReason reason)
Intrinsify the
get() and set() methods during bytecode parsing. |
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.GraphBuilderConfiguration.Plugins plugins,
ParsingReason reason)
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.plugins - Contains the invocation plugins to add to.reason - The parsing phase that the plugins are registered forpublic 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)