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, org.graalvm.nativeimage.hosted.Feature.QueryReachabilityAccess
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, wait
registerCodeObserver, registerForeignCalls, registerGraalPhases, registerGraphBuilderPlugins, registerLowerings
public boolean isInConfiguration(org.graalvm.nativeimage.hosted.Feature.IsInConfigurationAccess access)
isInConfiguration
in interface org.graalvm.nativeimage.hosted.Feature
public void duringSetup(org.graalvm.nativeimage.hosted.Feature.DuringSetupAccess config)
duringSetup
in interface org.graalvm.nativeimage.hosted.Feature
public 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 GraalFeature
providers
- 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.Feature
public void beforeCompilation(org.graalvm.nativeimage.hosted.Feature.BeforeCompilationAccess config)
beforeCompilation
in interface org.graalvm.nativeimage.hosted.Feature