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, wait
registerCodeObserver, registerForeignCalls, registerGraalPhases, registerGraphBuilderPlugins, registerLowerings
public int getVMThreadSize()
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.
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 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 setThreadLocalAtOffsetZero(FastThreadLocal threadLocal)
public 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
public int offsetOf(FastThreadLocal threadLocal)