VM Options Explorer - Graal CE 1.0

Hey Reader! If these notes float your boat you'll find more great JVM info in this book I co-wrote! Optimizing Java: Practical techniques for improving JVM application performance
NameTypeDefaultDescription
Type
AOTInlineBooleantrue
Perform method inlining in the AOT compiled native image
AOTInliningDepthToSizeRateDouble2.5
AOTInliningSizeMaximumInteger300
AOTInliningSizeMinimumInteger50
AOTTrivialInlineBooleantrue
Perform trivial method inlining in the AOT compiled native image
APIFunctionPrefixString"graal_"
Prefix that is added to the names of API functions.
ASMInstructionProfilingStringnull
Enables instruction profiling on assembler level. Valid values are a
comma separated list of supported instructions. Compare with subclasses
of Assembler.InstructionCounter.
AbortOnBenchmarkCounterOverflowBooleanfalse
Abort VM with SIGILL if benchmark counters controlled by the
(Generic|Timed|Benchmark)DynamicCounters
option overflow. This feature is only supported on AMD64.
WARNING: No descriptive error message will be printed! In case of an overflow,
manual inspection of the emitted code is required.
AddAllCharsetsBooleanfalse
Make all hosted charsets available at run time
AddAllFileSystemProvidersBooleantrue
Make all supported providers returned by
FileSystemProvider.installedProviders() available at run time.
AddAllFileTypeDetectorsBooleantrue
Make all supported FileTypeDetector available at run time.
AggregatedMetricsFileStringnull
File to which aggregated metrics are dumped at shutdown. A CSV format
is used if the file ends with .csv otherwise a more human readable
format is used. If not specified, metrics are dumped to the console.
AlignedHeapChunkSizeLong1048576
The size of an aligned chunk.
AllocateInstancePrefetchLinesInteger1
Number of cache lines to load after the object address using prefetch
instructions generated in JIT compiled code.
AllocatePrefetchDistanceInteger256
Sets the size (in bytes) of the prefetch distance for object
allocation. Memory about to be written with the value of new objects is
prefetched up to this distance starting from the address of the last
allocated object. Each Java thread has its own allocation point.
AllocatePrefetchInstrInteger0
Sets the prefetch instruction to prefetch ahead of the allocation
pointer. Possible values are from 0 to 3. The actual instructions
behind the values depend on the platform.
AllocatePrefetchLinesInteger3
Number of cache lines to load after the array allocation using prefetch
instructions generated in JIT compiled code.
AllocatePrefetchStepSizeInteger16
Sets the step size (in bytes) for sequential prefetch instructions.
AllocatePrefetchStyleInteger1
Generated code style for prefetch instructions: for 0 or less no
prefetch instructions are generated and for 1 or more prefetch
instructions are introduced after each allocation.
AllocationBeforePhysicalMemorySizeLong1048576
Bytes that can be allocated before asking what the physical memory size
is
AllocationProfilingThresholdInteger1048576
The minimum size in bytes required for printing an allocation profiling
entry
AllocationProfilingBooleanfalse
Enable runtime profiling of allocation
AllocationSiteSensitiveHeapBooleanfalse
A context sensitive heap means that each heap allocated object is
modeled by using at least the allocation site.
AllowFoldMethodsBooleanfalse
Allow MethodTypeFlow to see @Fold methods
AllowIncompleteClasspathBooleanfalse
Allow image building with an incomplete class path: report type
resolution errors at run time when they are accessed the first time,
instead of during image building
AllowVMInspectionBooleanfalse
Enables features that allow the VM to be inspected during runtime.
AlwaysInlineIntrinsicsBooleanfalse
Unconditionally inline intrinsics
AlwaysInlineVTableStubsBooleanfalse
AnalysisContextSensitivityString"insens"
Controls the static analysis context sensitivity. Available values:
insens (context insensitive analysis), allocsens (context insensitive
analysis, context insensitive heap, allocation site sensitive heap),
_1obj (1 object sensitive analysis with a context insensitive heap),
_2obj1h (2 object sensitive with a 1 context sensitive heap)
AnalysisSizeCutoffInteger8
The maximum size of type and method profiles returned by the static
analysis. -1 indicates no limitation.
BenchmarkCountersDumpDynamicBooleantrue
Dump dynamic counters
BenchmarkCountersDumpStaticBooleanfalse
Dump static counters
BenchmarkCountersFileStringnull
File to which benchmark counters are dumped. A CSV format is used if
the file ends with .csv otherwise a more human readable format is used.
The fields in the CSV format are: category, group, name, value
BenchmarkDynamicCountersStringnull
Turn on the benchmark counters. The format of this option is:
          
  (err|out),start pattern,end pattern
  
Start counting when the start pattern matches on the given stream and stop when the end pattern occurs.
You can use "~" to match 1 or more digits.
Examples:
          
  err, starting =====, PASSED in
  out,Iteration ~ (~s) begins:,Iteration ~ (~s) ends:
  
The first pattern matches DaCapo output and the second matches SPECjvm2008 output.
          
As a more detailed example, here are the options to use for getting statistics
about allocations within the DaCapo pmd benchmark:
          
  -XX:JVMCICounterSize=<value> -XX:-JVMCICountersExcludeCompiler \
  -Dgraal.BenchmarkDynamicCounters="err, starting ====, PASSED in " \
  -Dgraal.ProfileAllocations=true
  
The JVMCICounterSize value depends on the granularity of the profiling -
10000 should be sufficient. Omit JVMCICountersExcludeCompiler to exclude
counting allocations on the compiler threads.
The counters can be further configured by the ProfileAllocationsContext option.
          
We highly recommend the use of -Dgraal.AbortOnBenchmarkCounterOverflow=true to
detect counter overflows eagerly.
BootstrapInitializeOnlyBooleanfalse
Do not compile anything on bootstrap but just initialize the compiler.
BootstrapTimeoutDouble15.0
Maximum time in minutes to spend bootstrapping (0 to disable this
limit).
BootstrapWatchDogCriticalRateRatioDouble0.25
Ratio of the maximum compilation rate below which the bootstrap
compilation rate must not fall (0 or less disables monitoring).
CAPCacheDirString""
Directory where information generated by the CAnnotation Processor are
cached.
CLibraryPathString[][Ljava.lang.String;@7f811fdf98f8
Search path for C libraries passed to the linker (list of
comma-separated directories)
CPUFeaturesString[]null
Comma separated list of CPU features that will be used for image
generation on the AMD64 platform. Features SSE and SSE2 are enabled by
default. Other available features are: CX8, CMOV, FXSR, HT, MMX,
AMD_3DNOW_PREFETCH, SSE3, SSSE3, SSE4A, SSE4_1, SSE4_2, POPCNT, LZCNT,
TSC, TSCINV, AVX, AVX2, AES, ERMS, CLMUL, BMI1, BMI2, RTM, ADX,
AVX512F, AVX512DQ, AVX512PF, AVX512ER, AVX512CD, AVX512BW
CStandardString"C89"
C standard to use in header files. Possible values are: [C89, C99, C11]
CanOmitFrameBooleantrue
CanonicalGraphStringsCheckConstantsBooleanfalse
Exclude virtual nodes when dumping canonical text for graphs.
CanonicalGraphStringsExcludeVirtualsBooleantrue
Exclude virtual nodes when dumping canonical text for graphs.
CanonicalGraphStringsRemoveIdentitiesBooleantrue
Attempts to remove object identity hashes when dumping canonical text
for graphs.
CheckRecurringCallbackOnNativeToJavaTransitionBooleanfalse
Test whether a thread's recurring callback is pending on each
transition from native code to Java.
ClassString""
Class containing the default entry point method. Optional if --shared
is used.
ClearMetricsAfterBootstrapBooleanfalse
Clear the debug metrics after bootstrap.
CodeCacheCountersBooleanfalse
Count accesses to the image and runtime code info table
CodeInfoEncoderCountersBooleanfalse
Statistics about code and deoptimization information
CodeInfoIndexGranularityInteger256
The granularity of the index for looking up code metadata. Should be a
power of 2. Larger values make the index smaller, but access slower.
CompilationBailoutAsFailureBooleanfalse
Treat compilation bailouts like compilation failures.
CompilationCountLimitInteger0
The number of compilations allowed for any method before the VM exits
(a value of 0 means there is no limit).
CompilationExpirationPeriodInteger300
Time limit in seconds before a compilation expires (0 to disable the
limit). The compilation alarm will be implicitly disabled if assertions
are enabled.
CompilationFailureActionStringSilent
Specifies the action to take when compilation fails.
The accepted values are:
    Silent - Print nothing to the console.
     Print - Print a stack trace to the console.
  Diagnose - Retry the compilation with extra diagnostics.
    ExitVM - Same as Diagnose except that the VM process exits after retrying.
CompilationWatchDogStackTraceIntervalDouble60.0
Interval in seconds between a watch dog reporting stack traces for long
running compilations.
CompilationWatchDogStartDelayDouble0.0
Delay in seconds before watch dog monitoring a compilation (0 disables
monitoring).
CompileGraalWithC1OnlyBooleantrue
In tiered mode compile Graal and JVMCI using optimized first tier code.
CompilerBackendString"lir"
Backend used by the compiler
CompilerConfigurationStringnull
Names the Graal compiler configuration to use. If omitted, the compiler
configuration with the highest auto-selection priority is used. To see
the set of available configurations, supply the value 'help' to this
option.
CompilerString"graal"
Selects the system compiler. This must match the getCompilerName() value returned by a jdk.vm.ci.runtime.JVMCICompilerFactory provider. An empty string or the value "null" selects a compiler that will raise an exception upon receiving a compilation request. This property can also be defined by the contents of <java.home>/lib/jvmci/compiler-name.
ConditionalEliminationBooleantrue
ConfigurationFileDirectoriesString[]null
Directories directly containing configuration files for dynamic
features at runtime.
ConfigurationResourceRootsString[]null
Resource path above configuration resources for dynamic features at
runtime.
CountWriteBarriersBooleanfalse
Instrument write barriers with counters
CountStringnull
Pattern for specifying scopes in which counters are enabled. See the
Dump option for the pattern syntax. An empty value enables all counters
unconditionally.
CountersStringnull
Comma separated names of counters that are enabled irrespective of the
value for Count option. An empty value enables all counters
unconditionally.
CrashAtStringnull
Pattern for method(s) that will trigger an exception when compiled.
This option exists to test handling compilation crashes gracefully. See
the MethodFilter option for the pattern syntax. A ':Bailout' suffix
will raise a bailout exception and a ':PermanentBailout' suffix will
raise a permanent bailout exception.
DebugStubsAndSnippetsBooleanfalse
Enable debug output for stub code generation and snippet preparation.
DelayClassInitializationString[]null
A comma-separated list of classes (and implicitly all of their
subclasses) that are initialized at runtime and not during image
building
DeoptALotBooleanfalse
DeoptAfterOSRBooleantrue
Deoptimize OSR compiled code when the OSR entry loop is finished if
there is no mature profile available for the rest of the method.
DeoptimizeAllBooleanfalse
Compiles all methods as deoptimization targets for testing
DeoptsToDisableOptimisticOptimizationInteger40
DetailedAssertsBooleanfalse
Enable expensive assertions if normal assertions (i.e. -ea or -esa) are
enabled.
DivertParameterReturningMethodBooleantrue
Analysis: Detect methods that return one of their parameters and
hardwire the parameter straight to the return.
DumpLLVMStackMapStringnull
Dump contents of the generated stackmap to the specified file
DumpOnErrorBooleanfalse
Send Graal compiler IR to dump handlers on error.
DumpOnPhaseChangeStringnull
Dump a before and after graph if the named phase changes the
graph.%nThe argument is substring matched against the simple name of
the phase class
DumpPathString"graal_dumps"
The directory where various Graal dump files are written.
DumpStringnull
Filter pattern for specifying scopes in which dumping is enabled.
          
A filter is a list of comma-separated terms of the form:
 
  <pattern>[:<level>]
 
If <pattern> contains a "*" or "?" character, it is interpreted as a glob pattern.
Otherwise, it is interpreted as a substring. If <pattern> is empty, it
matches every scope. If :<level> is omitted, it defaults to 1. The term
~<pattern> is a shorthand for <pattern>:0 to disable a debug facility for a pattern.
          
The default log level is 0 (disabled). Terms with an empty pattern set
the default log level to the specified value. The last
matching term with a non-empty pattern selects the level specified. If
no term matches, the log level is the default level. A filter with no
terms matches every scope with a log level of 1.
          
Examples of debug filters:
--------- 
  (empty string)
          
  Matches any scope with level 1.
--------- 
  :1
          
  Matches any scope with level 1.
--------- 
  *
          
  Matches any scope with level 1.
--------- 
  CodeGen,CodeInstall
          
  Matches scopes containing "CodeGen" or "CodeInstall", both with level 1.
--------- 
  CodeGen:2,CodeInstall:1
          
  Matches scopes containing "CodeGen" with level 2, or "CodeInstall" with level 1.
---------
  Outer:2,Inner:0}
          
  Matches scopes containing "Outer" with log level 2, or "Inner" with log level 0. If the scope
  name contains both patterns then the log level will be 0. This is useful for silencing subscopes.
---------
  :1,Dead:2
          
  Matches scopes containing "Dead" with level 2, and all other scopes with level 1.
--------- 
  Dead:0,:1
          
  Matches all scopes with level 1, except those containing "Dead".   Note that the location of
  the :1 doesn't matter since it's specifying the default log level so it's the same as
  specifying :1,Dead:0.
--------- 
  Code*
          
  Matches scopes starting with "Code" with level 1.
--------- 
  Code,~Dead
          
  Matches scopes containing "Code" but not "Dead", with level 1.
DumpingErrorsAreFatalBooleanfalse
Treat any exceptions during dumping as fatal.
DynamicCountersPrintGroupSeparatorBooleantrue
Use grouping separators for number printing
DynamicProxyConfigurationFilesString[]null
One or several (comma-separated) paths to JSON files that specify lists
of interfaces that define Java proxy classes.
The structure is an array of arrays of fully qualified interface names.
          
Example:
          
    [
        ["java.lang.AutoCloseable", "java.util.Comparator"],
        ["java.util.Comparator"],
        ["java.util.List"]
    ]
DynamicProxyConfigurationResourcesString[]null
Resources describing program elements to be made available for
reflection (see ProxyConfigurationFiles).
DynamicProxyTracingBooleanfalse
Enable trace logging for dynamic proxy.
EagerClassInitializationString[]null
A comma-separated list of classes (and implicitly all of their
superclasses) that are initialized during image building
EagerSnippetsBooleantrue
Eagerly construct extra snippet info.
EagerlyInitializeClassesBooleantrue
Initialize side-effectful application class initializers at image build
time.
EmitStringEncodingSubstitutionsBooleantrue
Emit substitutions for UTF16 and latin1 compression
EnableAllSecurityServicesBooleanfalse
Add all security service classes to the generated image.
EnableSecurityServicesFeatureBooleantrue
Enable the feature that provides support for security services.
EnableURLProtocolsString[]null
List of comma separated URL protocols to enable.
EnforceMaxRuntimeCompileMethodsBooleanfalse
Enforce checking of maximum number of methods allowed for runtime
compilation. Useful for checking in the gate that the number of methods
does not go up without a good reason.
EntryPointNamePrefixString""
Prefix that is added to the names of entry point methods.
EscapeAnalysisIterationsInteger2
EscapeAnalysisLoopCutoffInteger20
EscapeAnalyzeOnlyStringnull
ExactFullUnrollMaxNodesInteger800
ExactPartialUnrollMaxNodesInteger200
ExitAfterAnalysisBooleanfalse
Exit after analysis
ExitAfterCAPCacheBooleanfalse
Exit image generation after C Annotation Processor Cache creation.
ExitVMOnExceptionBooleanfalse
Alias for CompilationFailureAction=ExitVM.
ExtendedAssertsBooleanfalse
Enable extended asserts which slow down analysis.
FailedLoopExplosionIsFatalBooleanfalse
Do not bail out but throw an exception on failed loop explosion.
FallbackExecutorClasspathStringnull
Internal option used to specify Classpath for FallbackExecutor.
FallbackExecutorMainClassStringnull
Internal option used to specify MainClass for FallbackExecutor.
FallbackExecutorSystemPropertyString[]null
Internal option used to specify system properties for FallbackExecutor.
FallbackThresholdInteger5
Define when fallback-image generation should be used.
FeaturesString[]null
A comma-separated list of fully qualified Feature implementation
classes
ForceDumpGraphsBeforeCompilationBooleanfalse
Force-dump graphs before compilation
FullUnrollConstantCompareBoostInteger15
FullUnrollMaxIterationsInteger600
FullUnrollMaxNodesInteger400
FullUnrollBooleantrue
GCDebugStartCycleInteger-1
Start tracing compiled GC barriers after N garbage collections
(disabled if N <= 0).
GCHistoryInteger1
How much history to maintain about garbage collections.
GatherSafepointStatisticsBooleanfalse
Gather statistics about each safepoint.
GenLoopSafepointsBooleantrue
GenSafepointsBooleantrue
GeneratePICBooleanfalse
Generate position independent code
GenericDynamicCountersBooleanfalse
Turn on the benchmark counters, and displays the results on VM shutdown
GraalArithmeticStubsBooleanfalse
Use Graal arithmetic stubs instead of HotSpot stubs where possible
GraalCompileOnlyStringnull
A filter applied to a method the VM has selected for compilation by
Graal. A method not matching the filter is redirected to a lower tier
compiler. The filter format is the same as for the MethodFilter option.
GraphCompressionThresholdInteger70
Graal graph compression is performed when percent of live nodes falls
below this value
GreyToBlackObjRefDemographicsBooleanfalse
Develop demographics of the object references visited.
GreyToBlackObjectVisitorDiagnosticHistoryInteger0
Keep history of GreyToBlackObjectVisits. 0 implies no history is kept.
GuardPrioritiesBooleantrue
HeapVerificationFailureIsFatalBooleantrue
Verify the heap before and after each collection.
HideSubstitutionStatesBooleanfalse
When creating info points hide the methods of the substitutions.
HotSpotPrintInliningBooleanfalse
Print inlining optimizations
HybridStaticContextBooleanfalse
Enable hybrid context for static methods, i.e. uses invocation site as
context for static methods.
ImageObjectTreeExpandRootsString""
Override the default suppression of specified roots. See: REPORTS.md.
ImageObjectTreeExpandTypesString""
Override the default suppression of specified types. See: REPORTS.md.
ImageObjectTreeSuppressRootsString""
Suppress the expansion of specified roots. See: REPORTS.md.
ImageObjectTreeSuppressTypesString""
Suppress the expansion of specified types. See: REPORTS.md.
ImmutableCodeBooleanfalse
Try to avoid emitting code where patching is required
IncludeAllTimeZonesBooleanfalse
When true, all time zones will be pre-initialized in the image.
IncludeLLVMDebugInfoInteger0
Include debugging info in the generated image (for LLVM backend).
IncludeNodeSourcePositionsBooleanfalse
Track NodeSourcePositions during runtime-compilation
IncludeResourceBundlesString[]null
Comma separated list of bundles to be included into the image.
IncludeResourcesString[][Ljava.lang.String;@7f811fded060
Regexp to match names of resources to be included in the image.
InitTimerBooleanfalse
Specifies if initialization timing is enabled.
InitialCollectionPolicyString"com.oracle.svm.core.genscavenge.CollectionPolicy$ByTime"
What is the initial collection policy?
InlineDuringParsingMaxDepthInteger10
Maximum depth when inlining during bytecode parsing.
InlineDuringParsingBooleantrue
Inlines trivial methods during bytecode parsing.
InlineEverythingBooleanfalse
InlineIntrinsicsDuringParsingBooleantrue
Inlines intrinsic methods during bytecode parsing.
InlineMegamorphicCallsBooleantrue
Inline calls with megamorphic type profile (i.e., not all types could
be recorded).
InlineMonomorphicCallsBooleantrue
Inline calls with monomorphic type profile.
InlinePartialIntrinsicExitDuringParsingBooleantrue
Inlines partial intrinsic exits during bytecode parsing when possible.
A partial intrinsic exit is a call within an intrinsic to the method
being intrinsified and denotes semantics of the original method that
the intrinsic does not support.
InlinePolymorphicCallsBooleantrue
Inline calls with polymorphic type profile.
InlineVTableStubsBooleantrue
InlineBooleantrue
Enable inlining
InliningDepthErrorInteger1000
Maximum inlining depth during partial evaluation before reporting an
infinite recursion
InspectServerContentPathString"inspect"
Path to the contents of the Inspect web server.
InstallSegfaultHandlerBooleannull
Install segfault handler that prints register contents and full Java
stacktrace. Default: enabled for an executable, disabled for a shared
library.
InterceptBailoutBooleanfalse
Intercept also bailout exceptions
IntrinsifyBooleantrue
Use compiler intrinsifications.
JNIConfigurationFilesString[]null
Files describing program elements to be made accessible via JNI (for
syntax, see ReflectionConfigurationFiles)
JNIConfigurationResourcesString[]null
Resources describing program elements to be made accessible via JNI
(see JNIConfigurationFiles).
JNIVerboseLookupErrorsBooleanfalse
Report information about known JNI elements when lookup fails
JNIBooleantrue
Enable Java Native Interface (JNI) support.
KindString"EXECUTABLE"
Generate a SHARED_LIBRARY, EXECUTABLE or STATIC_EXECUTABLE image
LIRDynMoveProfileMethodBooleanfalse
Enable dynamic move profiling per method.
LIROptConstantLoadOptimizationBooleantrue
Enable constant load optimization.
LIROptControlFlowOptimizerBooleantrue
LIROptEdgeMoveOptimizerBooleantrue
LIROptLSRAEliminateSpillMovesBooleantrue
Enable spill move elimination.
LIROptLSRAOptimizeSpillPositionBooleantrue
Enable spill position optimization
LIROptLSStackSlotAllocatorBooleantrue
Use linear scan stack slot allocation.
LIROptNullCheckOptimizerBooleantrue
LIROptRedundantMoveEliminationBooleantrue
LIROptStackMoveOptimizerBooleantrue
LIROptimizationBooleantrue
Enable LIR level optimiztations.
LIRProfileMethodsBooleanfalse
Enables profiling of methods.
LIRProfileMovesBooleanfalse
Enables profiling of move types on LIR level. Move types are for
example stores (register to stack), constant loads (constant to
register) or copies (register to register).
LIRUnlockBackendRestartBooleanfalse
Unlock backend restart feature.
LSRAOptSplitOnlyBooleanfalse
LSRA optimization: Only split but do not reassign
LSRAOptimizationBooleanfalse
Enable LSRA optimization
LargeArrayThresholdLong0
How many bytes is enough to allocate an unaligned chunk for an array? 0
implies (AlignedHeapChunkSize / 8).
LimitInlinedInvokesDouble5.0
LimitObjectArrayLengthBooleanfalse
Enable a limit for the number of objects recorded for each type of a
type state before disabling heap sensitivity for that type. The
analysis must be heap sensitive.
LinkerRPathString[]null
Path passed to the linker as the -rpath (list of comma-separated
directories)
ListMetricsBooleanfalse
Lists on the console at VM shutdown the metric names available to the
Timers, Counters and MemUseTrackers options. Note that this only lists
the metrics that were initialized during the VM execution and so will
not include metrics for compiler code that is not executed.
LoadExceptionObjectInVMBooleanfalse
Use a VM runtime call to load and clear the exception object from the
thread at the start of a compiled exception handler.
LogFileStringnull
File to which logging is sent. A %p in the name will be replaced with a
string identifying the process, usually the process id and %t will be
replaced by System.currentTimeMillis().
LogVerboseBooleanfalse
Enable more verbose log output when available
LogStringnull
Pattern for specifying scopes in which logging is enabled. See the Dump
option for the pattern syntax.
LoopMaxUnswitchInteger3
LoopPeelingBooleantrue
LoopUnswitchFrequencyBoostDouble10.0
LoopUnswitchMaxIncreaseInteger500
LoopUnswitchTrivialInteger10
LoopUnswitchBooleantrue
MachODebugInfoTestingBooleanfalse
Test Mach-O debuginfo generation
MatchExpressionsBooleantrue
Allow backend to match complex expressions.
MaxCallingContextDepthInteger0
The maximum length of the methods context chains.
MaxCallingContextWidthInteger0
The maximum number of contexts to record for a method. It only affects
the analysis when the max and min calling context depth are different.
MaxCompilationProblemsPerActionInteger2
The maximum number of compilation failures to handle with the action
specified by CompilationFailureAction before changing to a less verbose
action. This does not apply to the ExitVM action.
MaxConstantObjectsPerTypeInteger100
The maximum number of constant objects recorded for each type before
merging the constants into one unique constant object per type. The
analysis must be heap sensitive. It has a minimum value of 1.
MaxHeapContextDepthInteger0
The maximum length of the context used to model a heap object in
addition to the allocation site; used only when ContextSensitiveHeap is
enabled.
MaxHeapContextWidthInteger0
The maximum number of contexts to record for a heap object. It only
affects the analysis when the max and min calling context depth are
different.
MaxInvokesInTrivialMethodInteger1
Maximum number of invokes in a method so that it is considered trivial
(for testing only).
MaxNodesInTrivialLeafMethodInteger40
Maximum number of nodes in a method so that it is considered trivial,
if it does not have any invokes.
MaxNodesInTrivialMethodInteger20
Maximum number of nodes in a method so that it is considered trivial.
MaxObjectSetSizeInteger100
The maximum number of objects recorded for each type of a type state
before disabling heap sensitivity for that type. The analysis must be
heap sensitive. It has a minimum value of 1.
MaxReachableTypesInteger-1
Maximum number of types allowed in the image. Used for tests where
small number of types in necessary.
MaxRuntimeCompileMethodsInteger0
Maximum number of methods allowed for runtime compilation.
MaxTemplatesPerSnippetInteger50
MaxUnrolledObjectZeroingStoresInteger8
Define the maximum number of stores for which the loop that zeroes out
objects is unrolled.
MaximumDesiredSizeInteger20000
Maximum desired size of the compiler graph in nodes.
MaximumEscapeAnalysisArrayLengthInteger128
The maximum length of an array that will be escape analyzed.
MaximumHeapSizePercentInteger80
The maximum heap size as percent of physical memory
MaximumInliningSizeInteger300
Inlining is explored up to this number of nodes in the graph for each
call site.
MaximumLoopExplosionCountInteger10000
Max number of loop explosions per method.
MaximumRecursiveInliningInteger5
Maximum level of recursive inlining.
MaximumYoungGenerationSizePercentInteger10
The maximum size of the young generation as a percent of the maximum
heap size
MegamorphicInliningMinMethodProbabilityDouble0.33
Minimum probability for methods to be inlined for megamorphic type
profiles.
MemUseTrackersStringnull
Comma separated names of memory usage trackers that are enabled
irrespective of the value for TrackMemUse option. An empty value
enables all memory usage trackers unconditionally.
MethodFilterRootOnlyBooleanfalse
Only check MethodFilter against the root method in the context if true,
otherwise check all methods
MethodFilterStringnull
Pattern for filtering debug scope output based on method context.
The syntax for a pattern is:
          
  SourcePatterns = SourcePattern ["," SourcePatterns] .
  SourcePattern = [ Class "." ] method [ "(" [ Parameter { ";" Parameter } ] ")" ] .
  Parameter = Class | "int" | "long" | "float" | "double" | "short" | "char" | "boolean" .
  Class = { package "." } class .
 
Glob pattern matching (*, ?) is allowed in all parts of the source pattern.
          
Examples of method filters:
--------- 
  visit(Argument;BlockScope)  
  
  Matches all methods named "visit", with the first parameter of
  type "Argument", and the second parameter of type "BlockScope".
  The packages of the parameter types are irrelevant.
---------
  arraycopy(Object;;;;)
 
  Matches all methods named "arraycopy", with the first parameter
  of type "Object", and four more parameters of any type. The
  packages of the parameter types are irrelevant.
---------    
  org.graalvm.compiler.core.graph.PostOrderNodeIterator.*
 
  Matches all methods in the class "org.graalvm.compiler.core.graph.PostOrderNodeIterator".
---------    
  *
 
  Matches all methods in all classes
---------
  org.graalvm.compiler.core.graph.*.visit
 
  Matches all methods named "visit" in classes in the package
  "org.graalvm.compiler.core.graph".
---------
  arraycopy,toString
 
  Matches all methods named "arraycopy" or "toString", meaning that ',' acts as an or operator.
MethodInlineBailoutLimitInteger5000
Per-compilation method inlining exploration limit before giving up (use
0 to disable)
MethodString"main"
Name of the main entry point method. Optional if --shared is used.
MetricsFileStringnull
File to which metrics are dumped per compilation.
A CSV format is used if the file ends with .csv otherwise a more
human readable format is used. The fields in the CSV format are:
           compilable - method being compiled
  compilable_identity - identity hash code of compilable
       compilation_nr - where this compilation lies in the ordered
                        sequence of all compilations identified by
                        compilable_identity
       compilation_id - runtime issued identifier for the compilation
          metric_name - name of metric
         metric_value - value of metric
MetricsThreadFilterStringnull
Only report metrics for threads whose name matches the regular
expression.
MinCallingContextDepthInteger0
The minimum length of the methods context chains.
MinHeapContextDepthInteger0
The minimum length of the context used to model a heap object in
addition to the allocation site; used only when ContextSensitiveHeap is
enabled.
MinimumPeelProbabilityFloat0.35
MitigateSpeculativeExecutionAttacksStringNone
Select a strategy to mitigate speculative execution attacks (e.g.,
SPECTRE).
The accepted values are:
                  None - No mitigations are used in JIT compiled code.
            AllTargets - All branches are protected against speculative attacks.
                         This has a significant performance impact.
          GuardTargets - Only branches that preserve Java memory safety are protected.
                         This has less performance impact than AllTargets.
  NonDeoptGuardTargets - GuardTargets except that branches which deoptimize are not
                         protected since they can not be executed repeatedly.
MultiThreadedBooleantrue
Enable support for threads and and thread-local variables (disable for
single-threaded implementation)
MustNotSynchronizeWarningsAreFatalBooleantrue
Warnings for @MustNotSynchronize annotations are fatal.
NDCVInteger0
Run level for NoDeadCodeVerifyHandler (0 = off, 1 = info, 2 = verbose,
3 = fatal)
NameString""
Name of the output file to be generated
NativeArchitectureBooleanfalse
Overrides CPUFeatures and uses the native architecture, i.e., the
architecture of a machine that builds an image. NativeArchitecture
takes precedence over CPUFeatures
NativeLinkerOptionString[]null
Pass the provided raw option to the linker command that produces the
final binary. The possible options are platform specific and passed
through without any validation.
NewCAPCacheBooleanfalse
Create a C Annotation Processor Cache. Will erase any previous cache at
that same location.
NodeCountersBooleanfalse
Counts the number of instances of each node class.
NonFatalIdenticalCompilationSnapshotsInteger20
Number of contiguous identical compiler thread stack traces allowed
before the VM exits on the basis of a stuck compilation.
NumberOfAnalysisThreadsInteger-1
The number of threads to use for analysis during native image
generation. The number must be smaller than the NumberOfThreads.
NumberOfThreadsInteger32
The maximum number of threads to use concurrently during native image
generation.
OmitHotExceptionStacktraceBooleanfalse
OptAssumptionsBooleantrue
OptClearNonLiveLocalsBooleantrue
OptConvertDeoptsToGuardsBooleantrue
OptDeoptimizationGroupingBooleantrue
OptDevirtualizeInvokesOptimisticallyBooleantrue
OptEarlyReadEliminationBooleantrue
OptEliminateGuardsBooleantrue
OptEliminatePartiallyRedundantGuardsBooleantrue
OptFilterProfiledTypesBooleantrue
OptFloatingReadsBooleantrue
OptImplicitNullChecksBooleantrue
OptLoopTransformBooleantrue
OptReadEliminationBooleantrue
OptScheduleOutOfLoopsBooleantrue
OptimizeInteger1
Control native-image code optimizations: 0 - no optimizations, 1 -
basic optimizations.
PEAInliningHintsBooleanfalse
PageSizeInteger0
Define PageSize of a machine that runs the image. The default = 0 (==
same as host machine page size)
ParseRuntimeOptionsBooleantrue
Parse and consume standard options and system properties from the
command line arguments when the VM is created.
PartialEscapeAnalysisBooleantrue
PartialUnrollBooleantrue
PathString"/b/b/e/main/vm/svmbuild"
Directory of the image file to be generated
PercentTimeInIncrementalCollectionInteger50
Percentage of time that should be spent in young generation
collections.
PrintAOTCompilationBooleanfalse
Print logging information during compilation
PrintAnalysisCallTreeBooleanfalse
Print analysis call tree, a breadth-first tree reduction of the call
graph.
PrintBackendCFGBooleantrue
Enable dumping LIR, register allocation and code generation info to the
C1Visualizer.
PrintCFGBooleanfalse
Enable dumping to the C1Visualizer. Enabling this option implies
PrintBackendCFG.
PrintCanonicalGraphStringFlavorInteger0
Choose format used when dumping canonical text for graphs: 0 gives a
scheduled graph (better for spotting changes involving the schedule)
while 1 gives a CFG containing expressions rooted at fixed nodes
(better for spotting small structure differences)
PrintCanonicalGraphStringsBooleanfalse
Enable dumping canonical text from for graphs.
PrintClassInitializationBooleanfalse
Prints class initialization info for all classes detected by analysis.
PrintCompilationBooleanfalse
Print an informational line to the console for each completed
compilation.
PrintConfigBooleanfalse
Prints VM configuration available via JVMCI.
PrintDetailedAllocationProfilingBooleantrue
Print detailed information for each allocation site
PrintFeaturesBooleanfalse
Print features-specific information
PrintFlagsStringnull
Show available options based on comma-separated option-types (allowed
categories: User, Expert, Debug).
PrintGCSummaryBooleanfalse
Print summary GC information after main completion
PrintGCTimeStampsBooleanfalse
Print a time stamp at each collection, if +PrintGC or +VerboseGC.
PrintGCTimesBooleanfalse
Print the time for each of the phases of each collection, if
+VerboseGC.
PrintGCBooleanfalse
Print summary GC information after each collection
PrintGraphFileBooleantrue
Setting to true sets PrintGraph=file, setting to false sets
PrintGraph=network
PrintGraphHostString"127.0.0.1"
Host part of the address to which graphs are dumped.
PrintGraphPortInteger4445
Port part of the address to which graphs are dumped in binary format.
PrintGraphWithScheduleBooleanfalse
Schedule graphs as they are dumped.
PrintGraphStringFile
Where IdealGraphVisualizer graph dumps triggered by Dump or DumpOnError
should be written.
The accepted values are:
      File - Dump IGV graphs to the local file system (see DumpPath).
   Network - Dump IGV graphs to the network destination specified by PrintGraphHost and PrintGraphPort.
             If a network connection cannot be opened, dumping falls back to file dumping. 
   Disable - Do not dump IGV graphs.
PrintHeapHistogramBooleanfalse
Print class statistics of native image heap
PrintHeapShapeBooleanfalse
Print the shape of the heap before and after each collection, if
+VerboseGC.
PrintIRWithLIRBooleanfalse
Print HIR along side LIR as the latter is generated
PrintImageElementSizesBooleanfalse
Print the sizes of the elements of the built image
PrintImageHeapPartitionSizesBooleanfalse
Print the sizes of the native image heap as the image is built
PrintImageObjectTreeBooleanfalse
Print boot image object hierarchy.
PrintJNIMethodsBooleanfalse
Print JNI methods added to generated image
PrintLIRWithAssemblyBooleanfalse
Include the LIR as comments with the final assembly.
PrintMethodHistogramBooleanfalse
Print statistics of methods in native image heap
PrintMustNotSynchronizePathBooleantrue
Print path for @MustNotSynchronize warnings.
PrintMustNotSynchronizeWarningsBooleantrue
Print warnings for @MustNotSynchronize annotations.
PrintProfilingInformationBooleanfalse
Print profiling information when parsing a method's bytecode
PrintRestrictHeapAccessPathBooleantrue
Print path for @RestrictHeapAccess warnings.
PrintRestrictHeapAccessWarningsBooleantrue
Print warnings for @RestrictHeapAccess annotations.
PrintRuntimeCompileMethodsBooleanfalse
Print call tree of methods available for runtime compilation
PrintStaticTruffleBoundariesBooleanfalse
Print truffle boundaries found during the analysis
PrintSynchronizedAnalysisBooleanfalse
Print types used for Java synchronization.
PrintTruffleExpansionHistogramBooleanfalse
Prints a histogram of all expanded Java methods.
PrintTruffleTreesBooleantrue
Enable dumping Truffle ASTs to the IdealGraphVisualizer.
PrintUninterruptibleCalleeDOTGraphBooleanfalse
Print (to stderr) a DOT graph of the @Uninterruptible annotations.
PrintUninterruptibleWarningsBooleantrue
Print warnings for @Uninterruptible annotations.
PrintUniverseBooleanfalse
Print information about classes, methods, and fields that are present
in the native image
ProbabilisticProfilingBooleantrue
Control probabilistic profiling on AMD64
ProfileAllocationsContextStringAllocatingMethod
Control the naming and granularity of the counters when using
ProfileAllocations.
The accepted values are:
        AllocatingMethod - a counter per method
         InstanceOrArray - one counter for all instance allocations and
                           one counter for all array allocations 
           AllocatedType - one counter per allocated type
  AllocatedTypesInMethod - one counter per allocated type, per method
 
ProfileAllocationsBooleanfalse
Enable profiling of allocation sites.
ProfileAnalysisOperationsBooleanfalse
Track the progress of the static analysis.
ProfileBackedgesBooleantrue
Emit profiling of backedges
ProfileCompiledMethodsBooleanfalse
ProfileConstantObjectsBooleanfalse
Track the creation of constant objects.
ProfileDeoptimizationBooleanfalse
Print logging information during object file writing
ProfileInvokesBooleantrue
Emit profiling of invokes
ProfileMonitorsBooleanfalse
Enable profiling of monitor operations.
ProfileSimpleMethodsBooleantrue
Profile simple methods
RawConditionalEliminationBooleantrue
ReadEliminationMaxLoopVisitsInteger5
ReassociateInvariantsBooleantrue
ReduceDCEBooleantrue
Disable optional dead code eliminations
ReflectionConfigurationFilesString[]null
One or several (comma-separated) paths to JSON files that specify which
program elements should be made available via reflection.
The JSON object schema is:
          
    {
      String name; // fully qualified class name
      boolean allDeclaredConstructors; // include all declared constructors, see Class.getDeclaredConstructors()
      boolean allPublicConstructors;   // include all public constructors, see Class.getConstructors()
      boolean allDeclaredMethods; // include all declared methods, see Class.getDeclaredMethods()
      boolean allPublicMethods;   // include all public methods, see Class.getMethods()
      boolean allDeclaredFields;  // include all declared fields, see Class.getDeclaredFields()
      boolean allPublicFields;    // include all public fields, see Class.getFields()
      {
        String name; // method name
        String[] parameterTypes; // parameter types (optional, use if ambiguous)
      }[] methods;
      {
        String name; // field name
      }[] fields;
    }[];
          
Example:
          
	[
	  {
	    "name" : "java.lang.Class",
	    "allDeclaredConstructors" : "true",
	    "allPublicConstructors" : "true",
	    "allDeclaredMethods" : "true",
	    "allPublicMethods" : "true"
	  },
	  {
	    "name" : "java.lang.String",
	    "fields" : [
	      { "name" : "value" },
	      { "name" : "hash" }
	    ],
	    "methods" : [
	      { "name" : "<init>", "parameterTypes" : [] },
	      { "name" : "<init>", "parameterTypes" : ["char[]"] },
	      { "name" : "charAt" },
	      { "name" : "format", "parameterTypes" : ["java.lang.String", "java.lang.Object[]"] },
	    ]
	  },
      {
        "name" : "java.lang.String$CaseInsensitiveComparator",
        "methods" : [
          { "name" : "compare" }
        ]
      }
	]
ReflectionConfigurationResourcesString[]null
Resources describing program elements to be made available for
reflection (see ReflectionConfigurationFiles).
ReflectionPluginTracingBooleanfalse
Enable trace logging for reflection plugins.
RegisterPressureStringnull
Comma separated list of registers that register allocation is limited
to.
RemoveNeverExecutedCodeBooleantrue
ReplaceInputsWithConstantsBasedOnStampsBooleantrue
ReportAnalysisForbiddenTypeString[][Ljava.lang.String;@7f811fdf98e8
Report error if <typename>[:<UsageKind>{,<UsageKind>}] is discovered
during analysis (valid values for UsageKind: InHeap, Allocated,
InTypeCheck).
ReportAnalysisStatisticsBooleanfalse
Report analysis statistics.
ReportExceptionStackTracesBooleanfalse
Show exception stack traces for exceptions during image building.)
ReportUnsafeOffsetWarningsBooleanfalse
Print unsafe operation offset warnings.)
ReportUnsupportedElementsAtRuntimeBooleanfalse
Report usage of unsupported methods and fields at run time when they
are accessed the first time, instead of as an error during image
building
ReportUnsupportedFeaturesDuringAnalysisBooleantrue
Unsupported features are fatal.
RerunClassInitializationString[]null
A comma-separated list of classes (and implicitly all of their
subclasses) that are initialized both at runtime and during image
building
ResourceConfigurationFilesString[][Ljava.lang.String;@7f811fded050
Files describing Java resources to be included in the image.
ResourceConfigurationResourcesString[][Ljava.lang.String;@7f811fded040
Resources describing Java resources to be included in the image.
ReturnAfterAnalysisBooleanfalse
Return after analysis
RuntimeAssertionsFilterString[]null
Only use Java assert statements for classes that are matching the
comma-separated list of package prefixes.
RuntimeAssertionsBooleanfalse
Enable or disable Java assert statements at run time
SafepointPromptnessFailureIsFatalBooleantrue
Are safepoint promptness failures fatal?
SafepointPromptnessFailureNanosLong0
Exit the VM if I can not come to a safepoint in this many nanoseconds.
0 implies forever.
SafepointPromptnessWarningNanosLong0
Print a warning if I can not come to a safepoint in this many
nanoseconds. 0 implies forever.
ShowConfigurationStringnone
Writes to the VM log information about the Graal compiler configuration
selected.
ShowDumpFilesBooleanfalse
Print the name of each dump file path as it's created.
ShowSubstitutionSourceInfoBooleanfalse
Controls whether the source position information of snippets and method
substitutions are exposed to HotSpot. Can be useful when profiling to
get more precise position information.
SimpleFastInflatedLockingBooleantrue
Handle simple cases for inflated monitors in the fast-path.
SimpleMethodCallsInteger1
Maximum number of calls in a simple method
SimpleMethodGraphSizeInteger256
Maximum number of nodes in a graph for a simple method
SimpleMethodIndirectCallsInteger0
Maximum number of indirect calls in a simple moethod
SmallCompiledLowLevelGraphSizeInteger300
If the previous low-level graph size of the method exceeds the
threshold, it is not inlined.
SnippetCountersBooleanfalse
Enable counters for various paths in snippets.
SpawnIsolatesBooleantrue
Support multiple isolates. 
StackRedZoneSizeInteger8192
Size (in bytes) of the red zone reserved at the end of the stack. This
stack space can only be used by critical VM code and C code, e.g., to
report fatal errors.
StackTraceBooleantrue
Provide method names for stack traces.
StackYellowZoneSizeInteger32768
Size (in bytes) of the yellow zone reserved at the end of the stack.
This stack space is reserved for VM use and cannot be used by the
application.
StressExplicitExceptionCodeBooleanfalse
Stress the code emitting explicit exception throwing code.
StressInvokeWithExceptionNodeBooleanfalse
Stress the code emitting invokes with explicit exception edges.
StressTestEarlyReadsBooleanfalse
Stress the code by emitting reads at earliest instead of latest point.
SubstitutionFilesString[]null
Comma-separated list of file names with declarative substitutions
SubstitutionResourcesString[]null
Comma-separated list of resource file names with declarative
substitutions
SupportJsrBytecodesBooleantrue
SupportOSRWithLocksBooleantrue
Support OSR compilations with locks. If DeoptAfterOSR is true we can
per definition not have unbalanced enter/exits mappings. If
DeoptAfterOSR is false insert artificial monitor enters after the
OSRStart to have balanced enter/exits in the graph.
SuppressStderrBooleanfalse
Suppress console error output for unittests
SuppressStdoutBooleanfalse
Suppress console normal output for unittests
TailDuplicationProbabilityDouble0.5
TailDuplicationTrivialSizeInteger1
TearDownFailureNanosLong0
The number of nanoseconds before tearing down an isolate gives a
failure message. 0 implies no message.
TearDownWarningNanosLong0
The number of nanoseconds before and between which tearing down an
isolate gives a warning message. 0 implies no warning.
TempDirectoryString""
Directory for temporary files generated during native image generation.
If this option is specified, the temporary files are not deleted so
that you can inspect them after native image generation
ThrowUnsafeOffsetErrorsBooleantrue
Throw unsafe operation offset errors.)
TierABackedgeNotifyFreqLogInteger16
Backedge notification frequency
TierABackedgeProfileProbabilityLogInteger12
Backedge profile probability
TierAInvokeInlineeNotifyFreqLogInteger-1
Inlinee invocation notification frequency (-1 means count, but do not
notify)
TierAInvokeNotifyFreqLogInteger13
Invocation notification frequency
TierAInvokeProfileProbabilityLogInteger8
Invocation profile probability
TieredAOTBooleanfalse
Do profiling and callbacks to tiered runtime
TimeStringnull
Pattern for specifying scopes in which timing is enabled. See the Dump
option for the pattern syntax. An empty value enables all timers
unconditionally.
TimedDynamicCountersInteger-1
Turn on the benchmark counters, and displays the results every n
milliseconds
TimersStringnull
Comma separated names of timers that are enabled irrespective of the
value for Time option. An empty value enables all timers
unconditionally.
TraceBytecodeParserLevelInteger0
The trace level for the bytecode parser. A value of 1 enables
instruction tracing and any greater value emits a frame state trace
just prior to each instruction trace.Instruction tracing output from
multiple compiler threads will be interleaved so use of this option
make most sense for single threaded compilation. The MethodFilter
option can be used to refine tracing to selected methods.
TraceCodeCacheBooleanfalse
Print logging information for runtime code cache modifications
TraceDeoptimizationDetailsBooleanfalse
Print verbose logging information for every deoptimization
TraceDeoptimizationBooleanfalse
Print logging information for every deoptimization
TraceEscapeAnalysisBooleanfalse
TraceExceptionHandlerStubBooleanfalse
Trace execution of stub used to handle an exception thrown by a callee.
TraceHeapChunksBooleanfalse
Trace heap chunks during collections, if +VerboseGC and
+PrintHeapShape.
TraceHeapVerificationBooleanfalse
Trace heap verification.
TraceInlineDuringParsingBooleanfalse
Traces inlining performed during bytecode parsing.
TraceInliningForStubsAndSnippetsBooleanfalse
Enable inlining decision tracing in stubs and snippets.
TraceInliningBooleanfalse
Enable tracing of inlining decisions.
Output format:
  compilation of 'Signature of the compilation root method':
    at 'Signature of the root method' ['Bytecode index']: <'Phase'> 'Child method signature': 'Decision made about this callsite'
      at 'Signature of the child method' ['Bytecode index']: 
         |--<'Phase 1'> 'Grandchild method signature': 'First decision made about this callsite'
         \--<'Phase 2'> 'Grandchild method signature': 'Second decision made about this callsite'
      at 'Signature of the child method' ['Bytecode index']: <'Phase'> 'Another grandchild method signature': 'The only decision made about this callsite.'
TraceLIRGeneratorLevelInteger0
The trace level for the LIR generator
TraceLoggingFeatureBooleanfalse
When enabled, logging feature details are printed.
TraceMethodDataFilterStringnull
Enables tracing of profiling info when read by JVMCI.
Empty value: trace all methods
Non-empty value: trace methods whose fully qualified name contains the value.
TraceMonitorsMethodFilterStringnull
Trace monitor operations in methods whose fully qualified name contains
this substring.
TraceMonitorsTypeFilterStringnull
Trace monitor operations on objects whose type contains this substring.
TraceObjectPromotionBooleanfalse
Trace each object promotion.
TraceParserPluginsBooleanfalse
Traces use of plugins during bytecode parsing.
TraceSecurityServicesBooleanfalse
Enable trace logging for the security services feature.
TraceServiceLoaderFeatureBooleanfalse
When enabled, each service loader resource and class will be printed
out to standard output
TraceStackVerificationBooleanfalse
Trace stack verification.
TraceTruffleAssumptionsBooleanfalse
Print stack trace on assumption invalidation
TraceTruffleCompilationASTBooleanfalse
Print the entire AST after each compilation
TraceTruffleCompilationCallTreeBooleanfalse
Print the inlined call tree for each compiled method
TraceTruffleCompilationDetailsBooleanfalse
Print information for compilation queuing
TraceTruffleCompilationPolymorphismBooleanfalse
Print all polymorphic and generic nodes after each compilation
TraceTruffleCompilationBooleanfalse
Print information for compilation results
TraceTruffleExpansionSourceBooleanfalse
Print source sections for printed expansion trees
TraceTruffleInliningBooleanfalse
Print information for inlining for each compilation.
TraceTrufflePerformanceWarningsBooleanfalse
Print potential performance problems
TraceTruffleSplittingBooleanfalse
Print information for each splitted call site.
TraceTruffleStackTraceLimitInteger20
Number of stack trace elements printed by
TraceTruffleTransferToInterpreter and TraceTruffleAssumptions
TraceTruffleTransferToInterpreterBooleanfalse
Print stack trace on transfer to interpreter.
TraceUnwindStubBooleanfalse
Trace execution of the stub that routes an exception to a handler in
the calling frame.
TraceVMOperationsBooleanfalse
Trace VMOperation execution.
TrackAccessChainBooleanfalse
Track the callers for methods and accessing methods for fields.
TrackInputFlowsBooleanfalse
Track the input for type flows.
TrackMemUseStringnull
Pattern for specifying scopes in which memory use tracking is enabled.
See the Dump option for the pattern syntax. An empty value enables all
memory use trackers unconditionally.
TrackNodeInsertionBooleanfalse
Track source stack trace where a node was inserted into the graph.
TrackNodeSourcePositionBooleanfalse
Track the NodeSourcePosition.
TrivialInliningSizeInteger10
Graphs with less than this number of nodes are trivial and therefore
always inlined.
TruffleArgumentTypeSpeculationBooleantrue
TruffleBackgroundCompilationBooleantrue
Enable asynchronous truffle compilation in background thread
TruffleCheckFrameImplementationBooleantrue
Enforce that the Truffle runtime provides the only implementation of
Frame
TruffleCheckNeverPartOfCompilationBooleanfalse
Print a warning message and stack trace when
CompilerAsserts.neverPartOfCompilation is reachable
TruffleCompilationExceptionsAreFatalBooleanfalse
Treat compilation exceptions as fatal exceptions that will exit the
application
TruffleCompilationExceptionsArePrintedBooleantrue
Prints the exception stack trace for compilation exceptions
TruffleCompilationExceptionsAreThrownBooleanfalse
Treat compilation exceptions as thrown runtime exceptions
TruffleCompilationStatisticDetailsBooleanfalse
Print additional more verbose Truffle compilation statistics at the end
of a run.
TruffleCompilationStatisticsBooleanfalse
Print Truffle compilation statistics at the end of a run.
TruffleCompilationThresholdInteger1000
Compile call target when call count exceeds this threshold.
TruffleCompilationBooleantrue
Enable or disable truffle compilation.
TruffleCompileImmediatelyBooleanfalse
Compile immediately to test truffle compiler
TruffleCompileOnlyStringnull
Restrict compilation to comma-separated list of includes (or excludes
prefixed with tilde).
EBNF format of argument value:  CompileOnly = Element, { ',', Element } ;
TruffleCompilerConfigurationStringnull
Select a Graal compiler configuration for Truffle compilation (default:
use Graal system compiler configuration).
TruffleCompilerThreadsInteger0
Manually set the number of compiler threads
TruffleEnableInfopointsBooleanfalse
Enable support for simple infopoints in truffle partial evaluations.
TruffleExcludeAssertionsBooleantrue
Exclude assertion code from Truffle compilations
TruffleFirstTierCompilationThresholdInteger100
Compile call target in the first tier when call count exceeds this
threshold.
TruffleFirstTierMinInvokeThresholdInteger1
Minimum number of calls before a call target is compiled in the first
tier.
TruffleFunctionInliningBooleantrue
Enable automatic inlining of call targets
TruffleInlineAcrossTruffleBoundaryBooleanfalse
Enable inlining across Truffle boundary
TruffleInlineDuringParsingBooleantrue
Inline trivial methods in Truffle graphs during native image generation
TruffleInliningMaxCallerSizeInteger2250
Stop inlining if caller's cumulative tree size would exceed this limit
TruffleInstrumentBoundariesPerInlineSiteBooleanfalse
Instrument Truffle boundaries by considering different inlining sites
as different branches.
TruffleInstrumentBoundariesBooleanfalse
Instrument Truffle boundaries and output profiling information to the
standard output.
TruffleInstrumentBranchesPerInlineSiteBooleanfalse
Instrument branches by considering different inlining sites as
different branches.
TruffleInstrumentBranchesBooleanfalse
Instrument branches and output profiling information to the standard
output.
TruffleInstrumentFilterString"*.*.*"
Method filter for host methods in which to add instrumentation.
TruffleInstrumentationTableSizeInteger10000
Maximum number of instrumentation counters available.
TruffleIntrinsifyFrameAccessBooleantrue
Intrinsify get/set/is methods of FrameWithoutBoxing to improve Truffle
compilation time
TruffleInvalidationReprofileCountInteger3
Delay compilation after an invalidation to allow for reprofiling
TruffleIterativePartialEscapeBooleanfalse
Run the partial escape analysis iteratively in Truffle compilation.
TruffleLegacySplittingBooleanfalse
Use legacy splitting heuristic. This option will be removed.
TruffleMaximumRecursiveInliningInteger4
Maximum level of recursive inlining
TruffleMinInvokeThresholdInteger3
Minimum number of calls before a call target is compiled
TruffleMultiTierBooleanfalse
Whether to use multiple Truffle compilation tiers by default.
TruffleOSRCompilationThresholdInteger100000
Number of loop iterations until on-stack-replacement compilation is
triggered.
TruffleOSRBooleantrue
Enable on stack replacement for Truffle loops.
TrufflePerformanceWarningsAreFatalBooleanfalse
Treat performance warnings as fatal occurrences that will exit the
applications
TruffleProfilingEnabledBooleantrue
Enable/disable builtin profiles in com.oracle.truffle.api.profiles.
TruffleReplaceReprofileCountInteger3
Delay compilation after a node replacement
TruffleReturnTypeSpeculationBooleantrue
TruffleSplittingAllowForcedSplitsBooleantrue
Should forced splits be allowed.
TruffleSplittingDumpDecisionsBooleanfalse
Dumps to IGV information on polymorphic events
TruffleSplittingGrowthLimitDouble1.5
Disable call target splitting if the number of nodes created by
splitting exceeds this factor times node count
TruffleSplittingMaxCalleeSizeInteger100
Disable call target splitting if tree size exceeds this limit
TruffleSplittingMaxNumberOfSplitNodesInteger500000
Disable call target splitting if number of nodes created by splitting
exceeds this limit
TruffleSplittingMaxPropagationDepthInteger5
Propagate info about a polymorphic specialize through maximum this many
call targets
TruffleSplittingTraceEventsBooleanfalse
Trace details of splitting events and decisions.
TruffleSplittingBooleantrue
Enable call target splitting
TruffleTimeThresholdInteger50000
Defines the maximum timespan in milliseconds that is required for a
call target to be queued for compilation.
TruffleTraceSplittingSummaryBooleanfalse
Used for debugging the splitting implementation. Prints splitting
summary directly to stdout on shutdown
TruffleUseFrameWithoutBoxingBooleantrue
TrustFinalDefaultFieldsBooleantrue
Determines whether to treat final fields with default values as
constant.
TypeCheckMaxHintsInteger2
The maximum number of profiled types that will be used when compiling a
profiled type check. Note that TypeCheckMinProfileHitProbability also
influences whether profiling info is used in compiled type checks.
TypeCheckMinProfileHitProbabilityDouble0.5
If the probability that a type check will hit one the profiled types
(up to TypeCheckMaxHints) is below this value, the type check will be
compiled without profiling info
UninterruptibleWarningsAreFatalBooleantrue
Warnings for @Uninterruptible annotations are fatal.
UnresolvedIsErrorBooleantrue
Report unresolved elements as errors.
UnrollMaxIterationsInteger16
UnsafeAutomaticSubstitutionsLogLevelInteger1
Unsafe automatic substitutions logging level: Disabled=0, Basic=1,
Info=2, Debug=3.)
UnsafeOffsetWarningsAreFatalBooleanfalse
Print unsafe operation offset warnings.)
UseCAPCacheBooleanfalse
Indicate the C Annotation Processor to use previously cached native
information when generating C Type information.
UseCardRememberedSetHeapBooleantrue
Use a card remembered set heap for GC
UseCompilationStatisticsBooleanfalse
Enables CompilationStatistics.
UseEncodedSnippetsBooleanfalse
This is a testing option to exercise the SymbolicSnippetEncoder
UseExceptionProbabilityBooleantrue
UseGraalStubsBooleantrue
Use Graal-generated stubs for complicated LIR operations instead of
embedding all the emitted code.
UseGuardedIntrinsicsBooleantrue
Use intrinsics guarded by a virtual dispatch test at indirect call
sites.
UseIndexMaskingBooleanfalse
Use index masking after bounds check to mitigate speculative execution
attacks.
UseLoopLimitChecksBooleantrue
UseOnlyWritableBootImageHeapBooleanfalse
Use only a writable native image heap.
UseProfilingInformationBooleantrue
          
UseServiceLoaderFeatureBooleantrue
Automatically register services for run-time lookup using ServiceLoader
UseSnippetGraphCacheBooleantrue
Use a cache for snippet graphs.
UseSnippetTemplateCacheBooleantrue
Use a LRU cache for snippet templates.
UseStackBasePointerBooleanfalse
Saves stack base pointer on the stack on method entry.
UseTrappingNullChecksBooleantrue
Use traps for null checks instead of explicit null-checks
UseTypeCheckHintsBooleantrue
UserRequestedGCPolicyString"com.oracle.svm.core.genscavenge.HeapPolicy$AlwaysCollectCompletely"
Policy used when users request garbage collection.
UserRequestedGCThresholdLong16777216
Defines the upper bound for the number of remaining bytes in the young
generation that cause a collection when `System.gc` is called.
VerboseGCBooleanfalse
Print more information about the heap before and after each collection
VerifyBalancedMonitorsBooleanfalse
Emit extra code to dynamically check monitor operations are balanced.
VerifyDeoptimizationEntryPointsBooleanfalse
Verify that all possible deoptimization entry points have been properly
compiled and registered in the metadata
VerifyGraalGraphEdgesBooleanfalse
Perform expensive verification of graph inputs, usages, successors and
predecessors
VerifyGraalGraphsBooleantrue
Verify graphs often during compilation when assertions are turned on
VerifyGraalPhasesSizeBooleanfalse
Verify before - after relation of the relative, computed, code size of
a graph
VerifyHeapAfterCollectionBooleanfalse
Verify the heap after each collection.
VerifyHeapAtReturnBooleanfalse
Perform platform dependent validation of the Java heap at returns
VerifyHeapBeforeCollectionBooleanfalse
Verify the heap before each collection.
VerifyHeapBooleanfalse
Verify the heap before and after each collection.
VerifyKillCFGUnusedNodesBooleanfalse
Verify that there are no new unused nodes when performing killCFG
VerifyNamingConventionsBooleanfalse
Verify naming conventions during image construction.
VerifyPhasesBooleanfalse
VerifyStackAfterCollectionBooleanfalse
Verify the stack after each collection.
VerifyStackBeforeCollectionBooleanfalse
Verify the stack before each collection.
VerifyStringnull
Pattern for specifying scopes in which logging is enabled. See the Dump
option for the pattern syntax.
ZapChunksBooleanfalse
Zap memory chunks
ZapConsumedHeapChunksBooleanfalse
Zap consumed memory chunks
ZapProducedHeapChunksBooleanfalse
Zap produced memory chunks
ZapStackOnMethodEntryBooleanfalse