public class VMThreadSTFeature extends Object implements GraalFeature
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| Constructor and Description |
|---|
VMThreadSTFeature() |
| 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) |
boolean |
isInConfiguration(org.graalvm.nativeimage.hosted.Feature.IsInConfigurationAccess access) |
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. |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitregisterCodeObserver, registerForeignCalls, registerGraalPhases, registerGraphBuilderPlugins, registerLoweringspublic 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.
The value is stored in the two arrays that are in the image heap: a Object[] array for thread
local object variables, and a byte[] array for all thread local primitive variables.
Therefore, we need the proper read/write barriers. The IsolateThread parameter is
ignored.
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 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.Feature