Enable use of priority inlining during AOT compilation.
AOTTrivialInline
H
boolean
Perform trivial method inlining in the AOT compiled native image.
APIFunctionPrefix
H
string
graal_
Prefix that is added to the names of API functions.
AbortOnBenchmarkCounterOverflow
H
boolean
Abort VM with SIGILL if benchmark counters controlled by the (Generic|Timed|Benchmark)DynamicCounters.
AbortOnFieldReachable
H
string
<string>*
Print a trace and abort the build process if any field matching the specified pattern becomes reachable.
AbortOnMethodReachable
H
string
<string>*
Print a trace and abort the build process if any method matching the specified pattern becomes reachable.
AbortOnTypeReachable
H
string
<string>*
Print a trace and abort the build process if any type matching the specified pattern becomes reachable.
AddAllCharsets
H
boolean
Make all hosted charsets available at run time.
AddAllFileSystemProviders
H
boolean
Make all supported providers returned by FileSystemProvider.installedProviders() available at run time.
AddExports
H
string
<string>*
Value <module>/<package><target-module>(,<target-module>)* updates <module> to export <package> to <target-module>, regardless of module declaration. <target-module> can be ALL-UNNAMED to export to all unnamed modules.
AddOpens
H
string
<string>*
Value <module>/<package><target-module>(,<target-module>)* updates <module> to open <package> to <target-module>, regardless of module declaration.
AddReads
H
string
<string>*
Value <module><target-module>(,<target-module>)* updates <module> to read <target-module>, regardless of module declaration. <target-module> can be ALL-UNNAMED to read all unnamed modules.
AdditionalHeaderBytes
H
long
0
Add additional header bytes to each object, for diagnostic purposes.
AdditionalSecurityProviders
H
string
<string>*
Comma-separated list of additional security provider fully qualified class names to mark as used.Note that this option is only necessary if you use custom engine classes not available in JCA that are not JCA compliant.
AdditionalSecurityServiceTypes
H
string
<string>*
Comma-separated list of additional security service types (fully qualified class names) for automatic registration. Note that these must be JCA compliant.
AdoptedPGOEnabled
H
string
<path>*
A comma-separated list of file paths containing the adopted profiles. We profile frequently used code (e.g., the Java standard library), and cache collected profiles. Adopted profiles then enable the PGO without the profiling. .
AggregatedMetricsFile
H
string
None
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.
AliasArrayTypeFlows
H
boolean
Model all array type flows using a unique elements type flow abstraction.
AlignedHeapChunkSize
H
long
524288
The size of an aligned chunk. Serial and epsilon GC only.
AllocateInstancePrefetchLines
H
long
1
Number of cache lines to load after the object address using prefetch instructions.
AllocatePrefetchDistance
H
long
192
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.
AllocatePrefetchInstr
H
long
0
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.
AllocatePrefetchLines
H
long
4
Number of cache lines to load after the array allocation using prefetch instructions.
AllocatePrefetchStepSize
H
long
64
Sets the step size (in bytes) for sequential prefetch instructions.
AllocatePrefetchStyle
H
long
1
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.
AllocationProfiling
H
boolean
Enable runtime profiling of allocation.
AllocationSiteSensitiveHeap
H
boolean
A context sensitive heap means that each heap allocated object is modeled by using at least the allocation site.
AllowDeprecatedAutomaticFeature
H
boolean
Allow using deprecated @AutomaticFeature annotation. If set to false, an error is shown instead of a warning.
AllowDeprecatedBuilderClassesOnImageClasspath
H
boolean
Instead of abort, only warn if image builder classes are found on the image class-path.
AllowDeprecatedInitializeAllClassesAtBuildTime
H
boolean
Instead of abort, only warn if --initialize-at-build-time is used.
AllowFoldMethods
H
boolean
Allow MethodTypeFlow to see @Fold methods.
AllowIncompleteClasspath
H
boolean
Deprecated.
AllowJRTFileSystem
H
boolean
Enable support for reading Java modules (jimage format) and the jrt:// file system. Requires java.home to be set at runtime.
AllowVMInspection
H
boolean
Enables features that allow the VM to be inspected during run time.
AllowVMInternalThreads
H
boolean
Determines if VM internal threads (e.g., a dedicated VM operation or reference handling thread) are allowed in this image.
AlwaysInlineIntrinsics
H
boolean
Unconditionally inline intrinsics.
AlwaysInlineVTableStubs
H
boolean
AnalysisContextSensitivity
H
string
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).
AnalysisSizeCutoff
H
long
8
The maximum size of type and method profiles returned by the static analysis. -1 indicates no limitation.
ArrayRegionEqualsConstantLimit
H
long
4096
Array region equality checks will be evaluated at compile time if the receiver is a constant and its length is smaller than this value.
AssertInitializationSpecifiedForAllClasses
H
boolean
Assert class initialization is specified for all classes.
AsyncSignalSafeDiagnostics
H
boolean
Only print diagnostic output that is async signal safe.
AutomaticUnsafeTransformationLogLevel
H
long
1
Automatic unsafe field value transformation logging level: Disabled0, Basic1, Info2, Debug3.).
AuxiliaryEngineCache
H
boolean
Enable the auxiliary engine cache features at runtime.
BaseTargetSpending
H
long
120
The base target spending used to estimate the inlining threshold; the higher, the likelier it is to inline.
BenchmarkCounterPrintingCutoff
H
boolean
Use a cutoff to print only most significant counters.
BenchmarkCountersDumpDynamic
H
boolean
Dump dynamic counters.
BenchmarkCountersDumpStatic
H
boolean
Dump static counters.
BenchmarkCountersFile
H
string
None
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.
BenchmarkDynamicCounters
H
string
None
Turn on the benchmark counters. The format of this option is:.
BlindConstants
H
boolean
Blind constants in code with a random key.
BootstrapInitializeOnly
H
boolean
Do not compile anything on bootstrap but just initialize the compiler.
BootstrapTimeout
H
double
15
Maximum time in minutes to spend bootstrapping (0 to disable this limit).
BootstrapWatchDogCriticalRateRatio
H
double
0.25
Ratio of the maximum compilation rate below which the bootstrap compilation rate must not fall (0 or less disables monitoring).
BreakChainedPhis
H
boolean
Break chained phis.
BuildOutputBreakdowns
H
boolean
Show code and heap breakdowns as part of the build output.
BuildOutputColorful
H
boolean
Color build output (enabled by default if colors are supported by terminal).
BuildOutputGCWarnings
H
boolean
Print GC warnings as part of build output.
BuildOutputJSONFile
H
string
<path>*
Print build output statistics as JSON to the specified file. The output conforms to the JSON schema located at: docs/reference-manual/native-image/assets/build-output-schema-v0.9.2.json.
BuildOutputLinks
H
boolean
Show links in build output (defaults to the value of BuildOutputColorful).
BuildOutputNativeImageOptionsEnvVarValue
H
string
None
Internal option to forward the value of NATIVE_IMAGE_OPTIONS.
BuildOutputPrefix
H
boolean
Prefix build output with '<pid>:<image name>'.
BuildOutputProgress
H
boolean
Report progress in build output (default is adaptive).
BuildOutputRecommendations
H
boolean
Show recommendations as part of the build output.
BuildOutputSilent
H
boolean
Silence build output.
BuildReport
H
boolean
Create a Native Image Build Report.
BuildReportSamplerFlamegraph
H
boolean
Add sampler output in form of a flame graph to Native Image Build Report.
CAIAggressiveColdCodeOptimizations
H
boolean
Determine if the optimizer should run aggressive optimizations on cold code (rarely executed code during the PGO run).
CAIAggressivelyOptimizeHot
H
boolean
Perform more aggressive optimization on compilation units deemed to be hot.
CAIApplyProfilesWhileExpanding
H
boolean
Apply sampling based profiles to candidates for inlining before doing the inlining.
CAIColdCodeMaxInvocations
H
long
3
Maximum number of invocations of a non-sampled method beyond which that method will be considered cold. Will result in less optimizations performed on such compilation units.
CAIHotBonusWhileExpanding
H
long
50
Apply a bonus to the priority of hot cutoff nodes during exploration. Set to 0 to disable.
CAIHotBonusWhileInlining
H
long
0
Apply a bonus to the priority of hot nodes during inlining. Set to 0 to disable.
CAIHotContextsRatio
H
double
0.05
The minimal percentage of the total time that has to be spent in a method invoked from a calling-context to consider them as hot.
CAIPrintCallees
H
boolean
Whether to print the hot compilation units.
CAPCacheDir
H
string
Directory where information generated by the CAnnotation Processor are cached.
CCompilerOption
H
string
<string>*
Provide custom C compiler option used for query code compilation.
CCompilerPath
H
string
None
Provide custom path to C compiler used for query code compilation and linking.
CFI
H
string
NONE
Options for configuring control flow integrity (CFI) enforcement.
CLibraryPath
H
string
<path>*
Search path for C libraries passed to the linker (list of comma-separated directories).
CMoveALot
H
boolean
Perform CMove transformation on every IfNode possible.
CPUFeatures
H
string
<string>*
Comma separated list of CPU features that will be enabled while building the target executable, irrespective of whether they are supported by the hosted environment. Note that enabling features not present within the target environment may result in application crashes. The specific options available are target platform dependent. See --list-cpu-features for feature list. These features are in addition to -march.
CStandard
H
string
C89
C standard to use in header files. Possible values are 'C89', 'C99', and 'C11'.
CallGraphCompilerNodeLimit
H
long
35000
Controls the maximum number of compiler nodes that can appear in the call graph.
CallGraphSizeLimit
H
long
1200
Controls the maximum size of the call graph before ceasing inlining.
CallGraphSizePenaltyCoefficient
H
double
0.01
Reduces the likelihood of exploring call graph subtrees that are large.
CanonicalGraphStringsCheckConstants
H
boolean
Exclude virtual nodes when dumping canonical text for graphs.
CanonicalGraphStringsExcludeVirtuals
H
boolean
Exclude virtual nodes when dumping canonical text for graphs.
CanonicalGraphStringsRemoveIdentities
H
boolean
Attempts to remove object identity hashes when dumping canonical text for graphs.
CanonicalizerVerifyGVNAllowed
H
boolean
Verify if the current graph state allows GVN to be performed.
CheckBootModuleDependencies
H
long
1
Temporary option to disable checking of image builder module dependencies or increasing its verbosity.
CheckIsolateThreadAtEntry
H
boolean
At CEntryPoints check that the passed IsolateThread is valid.
CheckRecurringCallbackOnNativeToJavaTransition
H
boolean
Test whether a thread's recurring callback is pending on each transition from native code to Java.
CheckToolchain
H
boolean
Check if native-toolchain is known to work with native-image.
ClampMLInferredProfiles
H
boolean
Clamp the ML-inferred profiles.
Class
H
string
Class containing the default entry point method. Optional if --shared is used.
ClassInitialization
H
string
<string>*
A comma-separated list of classes appended with their initialization strategy (':build_time', ':rerun', or ':run_time').
ClearMetricsAfterBootstrap
H
boolean
Clear the debug metrics after bootstrap.
CodeAlignment
H
long
16
Alignment of AOT and JIT compiled code in bytes.
CodeCacheCounters
H
boolean
Count accesses to the image and runtime code info table.
CodeInfoEncoderCounters
H
boolean
Statistics about code and deoptimization information.
CodeInfoIndexGranularity
H
long
256
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.
CodeSectionLayoutOptimization
H
string
None
Enable code-section layout optimization when writing the native image (optimization valid only with --pgo).
When code-section layout optimization is on, specify size of the graph used for closest-is-best algorithm.
CodeSectionLayoutOptimizationSizeLimit
H
boolean
When code-section layout optimization is on, define if a size limit within closest-is-best algorithm is used.
CollectImageBuildStatistics
H
boolean
Collect information during image build about devirtualized invokes and bytecode exceptions.
Color
H
string
auto
Color build output ('always', 'never', or 'auto').
CompilationBailoutAsFailure
H
boolean
Treat compilation bailouts like compilation failures.
CompilationCountLimit
H
long
0
The number of compilations allowed for any method before the VM exits (a value of 0 means there is no limit).
CompilationExcludePhases
H
string
None
Exclude certain phases from compilation, either unconditionally or with a method filter. Multiple exclusions can be specified separated by ':'. Phase names are matched as substrings, e.g.: CompilationExcludePhasesPartialEscape:LoopA.*,B.foo excludes PartialEscapePhase from all compilations and any phase containing 'Loop' in its name from compilations of all methods in class A and of method B.foo.
CompilationExpirationPeriod
H
double
300
Time limit in seconds before a compilation expires (0 to disable the limit). A non-zero value for this option is doubled if assertions are enabled and quadrupled if DetailedAsserts is true.
CompilationFailureAction
H
string
Silent
Specifies the action to take when compilation fails.
CompilationNoProgressPeriod
H
double
30
Time limit in seconds before a compilation expires (0 to disable the limit) because no progress was made in the compiler.
CompilationNoProgressStartTrackingProgressPeriod
H
double
10
Delay in seconds before compilation progress detection starts.
CompilationWatchDogStartDelay
H
long
0
Delay in seconds before watch dog monitors a compilation (0 disables monitoring).
CompilationWatchDogVMExitDelay
H
long
0
Number of seconds after which a compilation appearing to make no progress causes the VM to exit (0 disables VM exiting).
CompileGraalWithC1Only
H
boolean
In tiered mode compile Graal and JVMCI using optimized first tier code.
CompilerBackend
H
string
lir
Backend used by the compiler.
CompilerConfiguration
H
string
None
Names the 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.
CompilerNodePenaltyCoefficient
H
double
0.006
Controls the likelihood of exploring subtrees that already have a lot of code during inlining.
ConditionalElimination
H
boolean
ConditionalEliminationBeforeAnalysis
H
boolean
Run conditional elimination before static analysis.
ConditionalEliminationMaxIterations
H
long
4
ConfigurationFileDirectories
H
string
<path>*
Directories directly containing configuration files for dynamic features at runtime.
ConfigurationResourceRoots
H
string
<string>*
Resource path above configuration resources for dynamic features at runtime.
ConfigureReflectionMetadata
H
boolean
Enable runtime instantiation of reflection objects for non-invoked methods.
ConsiderVectorizableLoops
H
boolean
Consider the vectorizability of loop during the duplication of a merge inside a loop.There are rare cases where duplication can destroy vectorization.
ContendedPaddingWidth
H
long
128
How many bytes to pad fields and classes marked @Contended with.
ContextAwareInlining
H
boolean
Use PGO sampling data to do context aware inlining.
CopyLanguageResources
H
boolean
Automatically copy the necessary language resources to the resources/languages directory next to the produced image.Language resources for each language are specified in the native-image-resources.filelist file located in the language home directory.If there is no native-image-resources.filelist file in the language home directory or the file is empty, then no resources are copied.
CopyPrimitiveElementArrays
H
boolean
Return copies of primitive element arrays when referencing them from native code.
CostNewLiveVariable
H
long
4
PullThroughPhiOptimization: Abstract cost for the creation of a new live value: new values can have a negativeimpact on register allocation, therefore we penalize it.
CostReductionFactor
H
double
32
PullThroughPhiOptimization: Cost/Benefit heuristic for EE floating node duplication: reduce cost by a constant factor when comparing with relative benefit.
CostReductionFactorHotCode
H
double
128
See CostReductionFactor.
Count
H
string
None
Pattern for specifying scopes in which counters are enabled. See the Dump option for the pattern syntax. An empty value enables all counters unconditionally.
CountWriteBarriers
H
boolean
Instrument write barriers with counters. Serial GC only.
CountedStripMiningBudget
H
double
0.1
Code size budget of the strip mining transformation in terms of NodeCostSize.
CountedStripMiningBudgetHotCode
H
double
2.5
See CountedStripMiningBudget.
CountedStripMiningInnerLoopTrips
H
long
4096
The max number of iterations the counted inner loop takes.
CountedStripMiningLogCounters
H
boolean
Print counter phi values on each outer and inner loop iteration.
CountedStripMiningMinFrequency
H
long
4
Minimal frequency to consider a loop for strip mining.
CountedStripMiningNodeSizeSmallGraphs
H
long
2000
Code size in NodeSize defining when code size heuristics starts capping strip mining.
Counters
H
string
None
Comma separated names of counters that are enabled irrespective of the value for Count option. An empty value enables all counters unconditionally.
CrashAt
H
string
None
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.
CreateJvmShim
H
boolean
Create a `jvm` shim for native libraries that link against that library.
CutoffCodeSizePenaltyCoefficient
H
double
0.00001
Controls the likelihood of further exploring subtrees with a lot of code during inlining.
DashboardAll
H
boolean
In the dashboard dump, include all available information about the native image (this takes precedence over more specific flags).
DashboardBgv
H
boolean
Set dashboard to use BGV format for dump.
DashboardCode
H
boolean
In the dashboard dump, include the breakdown of the code size across different packages.
DashboardDump
H
string
None
Enable dashboard dumps to the specified file.
DashboardHeap
H
boolean
In the dashboard dump, include the breakdown of the object sizes in the heap across different classes.
DashboardJson
H
boolean
Set dashboard to use JSON format for dump.
DashboardPointsTo
H
boolean
In the dashboard dump, include the information about the points-to analysis.
DashboardPretty
H
boolean
Set dashboard to use pretty print in JSON format.
DeadlockWatchdogExitOnTimeout
H
boolean
Exit the image builder VM after printing call stacks.
DeadlockWatchdogInterval
H
long
10
The interval in minutes between watchdog checks (0 disables the watchdog).
DebugCodeInfoMaxDepth
H
long
2147483647
Specify maximum inlining depth to consider when building DebugCodeInfo.
DebugCodeInfoUseSourceMappings
H
boolean
Do not use SourceMappings for generating DebugCodeInfo (i.e. only use Infopoints).
DebugInfoSourceCacheRoot
H
string
sources
Directory under which to create source file cache for Application or GraalVM classes.
DebugInfoSourceSearchPath
H
string
<path>*
Search path for source files for application or GraalVM classes (list of comma-separated directories or jar files).
DebugPeelingSynonyms
H
boolean
Debug simulation synonyms during simulation-based loop peeling.
DebugStubsAndSnippets
H
boolean
Enable debug output for stub code generation and snippet preparation.
DefaultCharset
H
string
UTF-8
Default charset of the image, by the default it is the same as the default charset of the image builder.
DefaultLocale
H
string
en-US
Default locale of the image, by the default it is the same as the default locale of the image builder.
DefaultLoopFrequency
H
double
100
Default frequency for loops with unknown local frequency.
DefaultUnswitchFactor
H
double
0.7
Default unswitching factor for control split node with unkown profile data.
DeleteLocalSymbols
H
boolean
Use linker option to remove all local symbols from image.
DeoptALot
H
boolean
DeoptAfterOSR
H
boolean
Deoptimize OSR compiled code when the OSR entry loop is finished if there is no mature profile available for the rest of the method.
DeoptimizeAll
H
boolean
Compiles all methods as deoptimization targets for testing.
DeoptsToDisableOptimisticOptimization
H
long
40
DetailedAsserts
H
boolean
Enable expensive assertions if normal assertions (i.e. -ea or -esa) are enabled.
DetectInvertedLoopsAsCounted
H
boolean
DetectUserDirectoriesInImageHeap
H
boolean
When set to true, the image generator verifies that the image heap does not contain a home directory as a substring.
DevirtualizeHotCallees
H
boolean
Devirtualizes callees that are hot.
DiagnoseDumpLevel
H
string
:3
Specify the dump level if CompilationFailureAction#Diagnose is used.See CompilationFailureAction for details. file:doc-files/CompilationFailureActionHelp.txt.
DiagnosticBufferSize
H
long
30
Specifies the number of entries that diagnostic buffers have.
DiagnosticsDir
H
string
<path>*
Sets the dir where diagnostic information is dumped.
DiagnosticsMode
H
boolean
Enables the diagnostic mode.
DisableIntercept
H
boolean
Disable intercepting exceptions in debug scopes.
DisableIntrinsics
H
string
None
Disable intrinsics matching the given method filter (see MethodFilter option for details). For example, 'DisableIntrinsicsString.equals' disables intrinsics for any method named 'equals' in a class whose simple name is 'String'. You can append ':verbose' at the end of the filter value to print out disabled intrinsics as they are encountered during compilation (e.g., 'String.equals:verbose').
DisableTypeIdResultVerification
H
boolean
For internal purposes only. Disables type id result verification even when running with assertions enabled.
DisableURLProtocols
H
string
<string>*
List of comma separated URL protocols that must never be included.
DominatorUsageTreeMaxDepth
H
long
16
Dump
H
string
None
Filter pattern for specifying scopes in which dumping is enabled.
DumpAfterEveryBCI
H
boolean
Dump the current graph after every bci to IGV.
DumpAfterEveryLowering
H
boolean
Dump lowering after every node to igv.
DumpDetailedNodeTypeStats
H
boolean
Gather statistics on local variables and their lifetimes relative to FrameStates.
DumpEndVersusExitLoopFrequencies
H
boolean
Debug flag to dump loop frequency differences computed based on loop end or exit nodes.If the frequencies diverge a lot, this may indicate missing profiles on control flowinside the loop body.
DumpFoldedReflectionElements
H
boolean
Dump folded reflection elements.
DumpHeap
H
string
<string>*
Dump the heap at a specific time during image building.The option accepts a list of comma separated phases, any of: during-analysis, after-analysis, before-compilation.
DumpOnError
H
boolean
Send compiler IR to dump handlers on error.
DumpOnPhaseChange
H
string
None
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.
DumpOutlinedSBGraphs
H
boolean
Dump all graphs for outlined String, StringBuilder, and StringBuffer aggregations.
DumpPath
H
string
graal_dumps
The directory where various Graal dump files are written.
DumpRuntimeCompilationOnSignal
H
boolean
Dumps all runtime compiled methods on SIGUSR2.
DumpTargetInfo
H
boolean
Show native-toolchain information and image-build settings.
DumpThreadStacksOnSignal
H
boolean
Dumps all thread stacktraces on SIGQUIT/SIGBREAK.
DumpingErrorsAreFatal
H
boolean
Treat any exceptions during dumping as fatal.
DuplicateALot
H
boolean
Perform Duplications as long as there is any sane improvement.
DuplicateMethods
H
boolean
Enable or Disable the Hot method duplication phase.
DuplicationBudgetFactor
H
double
0.25
Percentage in node cost graph size for the duplication budget. Computed relative to the methods code size.
DuplicationBudgetFactorHotCode
H
double
2.5
See DuplicationBudgetFactor.
DuplicationBudgetFactorLate
H
double
0.5
Percentage in node cost graph size for the late duplication budget. Computed relative to the methods code size.
DuplicationCostReductionFactor
H
long
64
Cost/Benefit heuristic for EE simulation-based code duplication: reduce cost by a constant factor when comparing with relative benefit.
DuplicationCostReductionFactorHotCode
H
long
256
See DuplicationCostReductionFactor.
DuplicationMinBranchFrequency
H
double
0.66
Ignore low frequency branches during duplication.
DynamicCountersPrintGroupSeparator
H
boolean
Use grouping separators for number printing.
DynamicProxyConfigurationFiles
H
string
<path>*
One or several (comma-separated) paths to JSON files that specify lists of interfaces that define Java proxy classes.
DynamicProxyConfigurationResources
H
string
<string>*
Resources describing program elements to be made available for reflection (see ProxyConfigurationFiles).
DynamicProxyTracing
H
boolean
Enable trace logging for dynamic proxy.
EEPeelAlot
H
boolean
EagerSnippets
H
boolean
Eagerly construct extra snippet info.
EarlyCodeEmissionOrder
H
boolean
Enable early code emission order computation instead of late code emission order computation.
EarlyExpandCheckCast
H
boolean
Try to improve code generation by making checkcast operations better optimizable early in the compilation pipeline.
EarlyGVN
H
boolean
Perform early global value numbering.
EarlyLICM
H
boolean
Perform early loop invariant code motion.
EmitStringSubstitutions
H
boolean
Emit substitutions for String methods.
EnableAllSecurityServices
H
boolean
Add all security service classes to the generated image.
EnableLoggingFeature
H
boolean
Enable the feature that provides support for logging.
EnableMonitoringFeatures
H
string
<string>*
Enable monitoring features that allow the VM to be inspected at run time. Comma-separated list can contain 'heapdump', 'jfr', 'jvmstat', 'jmxserver' (experimental), 'jmxclient' (experimental), 'threaddump', or 'all' (deprecated behavior: defaults to 'all' if no argument is provided). For example: '--enable-monitoringheapdump,jfr'.
EnablePLTGOT
H
boolean
Enables support for dynamic method address resolution. Should never be enabled directly.
EnableSecurityServicesFeature
H
boolean
Enable automatic registration of security services.
EnableURLProtocols
H
string
<string>*
List of comma separated URL protocols to enable.
EnableWildcardExpansion
H
boolean
Enable wildcard expansion in command line arguments on Windows.
EnforceMaxRuntimeCompileMethods
H
boolean
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.
EnterpriseCloneReadElimination
H
boolean
Try to eliminate array clone operations by handling clone operations in early read elimination.
EnterpriseEAIterations
H
long
3
Enterprise PEA Iterations.
EnterpriseEarlyGVN
H
boolean
Perform an extended version of early global value numbering on a graph.Considers only graphs without floating guards.
EnterpriseEarlyInversionGVN
H
boolean
Enterprise Loop Inversion for GVN.
EnterpriseExactIVOpt
H
boolean
Try to improve counted loop detection by specially handling math exact operations with code duplication.
EnterprisePartialUnroll
H
boolean
Enable EE version of partial loop unrolling that considers more loop shapes for unrolling.
EnterpriseRCELogRangeCheckValues
H
boolean
Log all range check sub values to stdout.
EnterpriseRangeCheckElimination
H
boolean
Perform range check elimination for java long type range checks.
EnterpriseReadElimination
H
boolean
Run more read eliminations early in the compilation pipeline.
EntryPointNamePrefix
H
string
Prefix that is added to the names of entry point methods.
ErrorFile
H
string
svm_err_b_%t_pid%p.md
If an error occurs, save a build error report to this file [default: svm_err_b_%t_pid%p.md] (%p replaced with pid, %t with timestamp).).
EscapeAnalysisBeforeAnalysis
H
boolean
Run partial escape analysis on compiler graphs before static analysis.
EscapeAnalysisIterations
H
long
2
EscapeAnalysisLoopCutoff
H
long
20
EscapeAnalyzeOnly
H
string
None
ExactFullUnrollMaxNodes
H
long
800
ExactPartialUnrollMaxNodes
H
long
200
ExcludeFunctionFromDuplication
H
string
None
Exclude compilations that MethodFilter.match this string from the duplication optimization.
ExcludeResources
H
string
<string>*
Regexp to match names of resources to be excluded from the image.
ExitAfterAnalysis
H
boolean
Exit after analysis.
ExitAfterCAPCache
H
boolean
Exit image generation after C Annotation Processor Cache creation.
ExitAfterQueryCodeGeneration
H
boolean
Output query code for target platform without executing it.
ExitAfterRelocatableImageWrite
H
boolean
Exit after writing relocatable file.
ExpandAllProximityBonus
H
double
6
The decrease in call graph expansion pressure when there are few call nodes left to explore.
ExpandAllProximityBonusInertia
H
double
2
The inertia at which the expand-all proximity bonus decreases with the number of yet unexpanded nodes.
ExpansionInertiaBaseValue
H
long
550
The slowness at which the expansion pressure grows with code size; the higher it is, the slower the pressure growth.
ExpansionInertiaInvokeBonus
H
long
14
The extra slowness at which the expansion pressure grows with the code size, for each extra invoke node.
ExpansionInertiaMax
H
long
2000
The max slowness at which the expansion pressure grows with the code size.
ExtendedAsserts
H
boolean
Enable extended asserts which slow down analysis.
FailedLoopExplosionIsFatal
H
boolean
Do not bail out but throw an exception on failed loop explosion.
FallbackExecutorClasspath
H
string
None
Internal option used to specify Classpath for FallbackExecutor.
FallbackExecutorJavaArg
H
string
<string>*
Internal option used to specify java arguments for FallbackExecutor.
FallbackExecutorMainClass
H
string
None
Internal option used to specify MainClass for FallbackExecutor.
FallbackExecutorSystemProperty
H
string
<string>*
Internal option used to specify system properties for FallbackExecutor.
FallbackThreshold
H
long
5
Define when fallback-image generation should be used.
Features
H
string
<string>*
A comma-separated list of fully qualified Feature implementation classes.
FloatingDivNodes
H
boolean
Try to float non-constant division operations to expose global value numbering of divisions.
FoldSecurityManagerGetter
H
boolean
Fold SecurityManager getter.
ForceAdversarialLayout
H
boolean
Place N-byte constants in the data section such that they are misaligned with respect to N*2. For example, place 4 byte constants at offset 4, 12 or 20, etc. This layout is used to detect instructions that load constants with alignment smaller than the fetch size. For instance, an XORPS instruction that does a 16-byte fetch of a 4-byte float not aligned to 16 bytes will cause a segfault.
ForceExplicitReachabilityFence
H
boolean
Force an explicit compiler node for Reference.reachabilityFence, instead of relying on FrameState liveness.
ForceGuardHoistingLoopDuplicationWithoutPGO
H
boolean
Consider methods for guard hoisting loop duplication even if not using PGO.
ForceNoROSectionRelocations
H
boolean
Use only a writable native image heap (requires ld.gold linker).
ForceUnroll
H
boolean
Force partial unrolling of loops if at all possible.
ForeignAPISupport
H
boolean
Support for calls via the Java Foreign Function and Memory API.
Gather statistics on local variables and their lifetimes relative to FrameStates.
FullUnroll
H
boolean
FullUnrollAsPEACleanup
H
boolean
Perform full unrolling as a Partial Escape Analysis Cleanup.
FullUnrollCodeSizeBudgetFactorForLargeGraphs
H
double
2
Maximum factor by which full unrolling can increase code size for large graphs. The FullUnrollSmallGraphThreshold option determines which graphs are small.
FullUnrollCodeSizeBudgetFactorForSmallGraphs
H
double
10
Maximum factor by which full unrolling can increase code size for small graphs. The FullUnrollSmallGraphThreshold option determines which graphs are small.
FullUnrollConstantCompareBoost
H
long
15
FullUnrollMaxApplication
H
long
60
FullUnrollMaxIterations
H
long
600
FullUnrollMaxNodes
H
long
700
FullUnrollSmallGraphThreshold
H
long
1000
The threshold in terms of NodeSize for a graph to be considered small for the purpose of full unrolling. Applied in conjunction with the FullUnrollCodeSizeBudgetFactorForSmallGraphs and FullUnrollCodeSizeBudgetFactorForLargeGraphs options.
G1DebugLevel
H
string
product
Specifies the debug level of the linked G1 GC [product, fastdebug, or debug].
G1HeapRegionSize
H
long
1048576
Size of the G1 regions in bytes. Supported values are 1, 2, 4, 8, 16, 32, 64, 128, 256, or 512M.
GCCardSizeInBytes
H
long
512
Card table entry size (in bytes) for the G1 GC.
GCDebugStartCycle
H
long
-1
Start tracing compiled GC barriers after N garbage collections (disabled if N < 0).
GatherSafepointStatistics
H
boolean
Gather statistics about each safepoint.
GenJavaCodeFilter
H
string
None
Generate Java code before high tier lowering for methods that MethodFilter.match this string.
GenJavaCodeSaveDirectory
H
string
None
Path for saving generated Java code. If the value is omitted the debug dump path will be used.
Create a build-artifacts.json file in the build directory. The output conforms to the JSON schema located at: docs/reference-manual/native-image/assets/build-artifacts-schema-v0.9.0.json.
GenerateDebugInfo
H
long
0
Insert debug info into the generated native image or library.
GenericDynamicCounters
H
boolean
Turn on the benchmark counters, and displays the results on VM shutdown.
GraalArithmeticStubs
H
boolean
Use Graal arithmetic stubs instead of HotSpot stubs where possible.
GraalCompileOnly
H
string
None
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.
GraalOS
H
boolean
Compile the application for GraalOS.
GraphCompressionThreshold
H
long
70
Graal graph compression is performed when percent of live nodes falls below this value.
GreyToBlackObjRefDemographics
H
boolean
Develop demographics of the object references visited. Serial GC only.
GuaranteeSubstrateTypesLinked
H
boolean
Ensure all created SubstrateTypes are linked.
GuardHoistingLoopDuplication
H
boolean
Duplicate certain loops and eliminate their guards.
GuardHoistingLoopDuplicationHoistFraction
H
double
0.5
Duplicate only loops where at least this fraction of guards can be hoisted.
GuardHoistingLoopDuplicationMaxSize
H
long
64
Duplicate only loops up to this estimated size.
GuardHoistingLoopDuplicationMaxSizeHotCode
H
long
2048
See GuardHoistingLoopDuplicationMaxSize.
GuardHoistingLoopDuplicationMinBodyIterations
H
long
4
Duplicate only loops with at least this many expected iterations of the loop body.
See GuardHoistingLoopDuplicationMinBodyIterations.
GuardHoistingLoopDuplicationMinHotness
H
long
1
Duplicate only loops in methods executed at least this number of times.
GuardMaxCondExitProbability
H
double
0.8
Maximum execution probability of a branch that contains the ControlSinkNode.
GuardMinCondEstimatedAssembly
H
double
50
Minimum estimated assembly size of a branch that triggers the exit guard.
GuardMinLoopProbability
H
double
0.2
Minimum loop body execution probability.
GuardPriorities
H
boolean
HeapChunkHeaderPadding
H
long
0
Number of bytes at the beginning of each heap chunk that are not used for payload data, i.e., can be freely used as metadata by the heap chunk provider. Serial and epsilon GC only.
HeapDumpDefaultFilenamePrefix
H
string
svm-heapdump-
A prefix that is used for heap dump filenames if no heap dump filename was specified explicitly.
HeapVerifierVerbosity
H
long
0
Control heap verifier verbosity level: 0 - quiet, 1 - info, 2 - warning, 3 - all.
HighTierInversion
H
boolean
HighTierPartialUnrolling
H
boolean
Enable EE partial unrolling in high tier.
HotCodeMinSelfTime
H
double
0.001
Minimal self time for a compilation unit to be considered hot globally.
HotCompilationBaseTargetSpending
H
long
300
BaseTargetSpending value for the hot compilations.
HotCompilationCompilerNodePenaltyCoefficient
H
double
0
CompilerNodePenaltyCoefficient value for the hot compilations.
HotCompilationCutoffCodeSizePenaltyCoefficient
H
double
0
CutoffCodeSizePenaltyCoefficient value for the hot compilations.
HotCompilationExpansionInertiaBaseValue
H
long
550
ExpansionInertiaBaseValue value for the hot compilations.
LargeChildrenCountPenaltyCoefficient value for the hot compilations.
HotCompilationMaxPolymorphicDispatches
H
long
3
MaxPolymorphicDispatches value for the hot compilations.
HotCompilationMinPolymorphicDispatchProbability
H
double
0.09
MinPolymorphicDispatchProbability value for the hot compilations.
HotCompilationRelativeBenefitInliningCoefficient
H
double
0.0002
RelativeBenefitInliningCoefficient value for the hot compilations.
HotCompilationSmallRootIrPenaltyCoefficient
H
double
0
SmallRootIrPenaltyCoefficient value for the hot compilations.
HotCompilationTypicalGraphSize
H
long
4320
TypicalGraphSize value for the hot compilations.
HotCompilationTypicalGraphSizeInvokeBonus
H
long
20
TypicalGraphSizeInvokeBonus value for the hot compilations.
HotSpotDeoptExplicitExceptions
H
boolean
Testing only option that forces deopts for exception throws.
HotSpotPostOnExceptions
H
boolean
Testing only option that forces deopts for exception throws.
HotSpotPrintInlining
H
boolean
Print inlining optimizations.
HybridStaticContext
H
boolean
Enable hybrid context for static methods, i.e. uses invocation site as context for static methods.
IPEACutoffMaterializationWeight
H
double
0
Weight of a materialization triggered by an Invoke corresponding to a CutoffNode in the CallTree for IPEA.
IPEAFrequency
H
long
3
Indicates how often to run IPEA analysis.
IPEAMaterializationBoostConstant
H
long
12
Boost for Parent Nodes based on reduction of materializations.
IPEAMaxForce
H
long
2
Indicates how often to force IPEA analysis when otherwise inlining would not continue.
IPEAStatisticsHistogramBuckets
H
long
12
Track IPEA statistics in substratePriorityInliner.
IPEAVirtualEscapeBoostSingle
H
long
12
Boost for CutoffNode for single escaping object.
IgnoreBadDuplications
H
boolean
Ignore duplications with a bad benefit cost relation.
IgnoreDeoptUsages
H
boolean
IgnoreMaxHeapSizeWhileInVMOperation
H
boolean
Ignore the maximum heap size while a VM operation is executed.
ImageBuildID
H
string
Image Build ID is a 128-bit UUID string generated randomly, once per bundle or digest of input args when bundles are not used.
ImageHeapCardMarking
H
boolean
Enables card marking for image heap objects, which arranges them in chunks. Automatically enabled when supported. Serial GC only.
ImageObjectTreeExpandRoots
H
string
Override the default suppression of specified roots. See: StaticAnalysisReports.md.
ImageObjectTreeExpandTypes
H
string
Override the default suppression of specified types. See: StaticAnalysisReports.md.
ImageObjectTreeSuppressRoots
H
string
Suppress the expansion of specified roots. See: StaticAnalysisReports.md.
ImageObjectTreeSuppressTypes
H
string
Suppress the expansion of specified types. See: StaticAnalysisReports.md.
ImageSymbolsPrefix
H
string
Common prefix used by method symbols in image.
IncludeAllFromModule
H
string
<string>*
Include all classes, methods, and fields from given modules.
IncludeAllFromPath
H
string
<string>*
Include all classes, methods, fields, and resources from given paths.
IncludeAllLocales
H
boolean
Make all hosted locales available at run time.
IncludeAllTimeZones
H
boolean
When true, all time zones will be pre-initialized in the image.
IncludeDebugHelperMethods
H
boolean
Determines if debugging-specific helper methods are embedded into the image. Those methods can be called directly from the debugger to obtain or print additional information.
IncludeLocales
H
string
<string>*
Comma separated list of locales to be included into the image. The default locale is included in the list automatically if not present.
IncludeMethodData
H
boolean
Include a list of methods included in the image for runtime inspection.
IncludeNodeSourcePositions
H
boolean
Track NodeSourcePositions during runtime-compilation.
IncludeResourceBundles
H
string
<string>*
Comma separated list of bundles to be included into the image.
IncludeResources
H
string
<string>*
Regexp to match names of resources to be included in the image.
IncludeSBOM
H
string
<string>*
Embed a Software Bill of Materials (SBOM) in the executable or shared library for passive inspection. A comma-separated list can contain 'cyclonedx', 'strict' (defaults to 'cyclonedx' if no argument is provided), or 'export' to save the SBOM to the native executable's output directory. The optional 'strict' flag aborts the build if any class cannot be matched to a library in the SBOM. For example: '--enable-sbomcyclonedx,strict'.
IncludeTimeZones
H
string
The time zones, in addition to the default zone of the host, that will be pre-initialized in the image.
InfeasiblePathCorrelation
H
boolean
InfeasiblePathCorrelationWindowSize
H
long
10
Limit of the number of dominating if nodes to consider in infeasible path correlation to avoid compile time explosion.
InitialCollectionPolicy
H
string
Adaptive
The garbage collection policy, either Adaptive (default) or BySpaceAndTime. Serial GC only.
InjectedCompilationDelay
H
long
0
The number of seconds by which to slow down each compilation. The compilations slowed down can be restricted with MethodFilter. This option exists to test the compilation watchdog.
Inline
H
boolean
Enable inlining.
InlineAllBonus
H
double
1
The bonus applied to call nodes that can be fully inlined.
InlineBeforeAnalysis
H
boolean
Deprecated, option no longer has any effect.
InlineBeforeAnalysisAllowedDepth
H
long
20
Maximum call depth for method inlined before static analysis.
InlineBeforeAnalysisAllowedInlinings
H
long
10000
Maximum number of methods inlined for method inlined before static analysis.
InlineBeforeAnalysisAllowedInvokes
H
long
1
Maximum number of invokes for method inlined before static analysis.
InlineBeforeAnalysisAllowedNodes
H
long
1
Maximum number of computation nodes for method inlined before static analysis.
InlineBeforeAnalysisMethodHandleAllowedDepth
H
long
1000
Maximum call depth for method handle internals inlined before static analysis.
InlineBeforeAnalysisMethodHandleAllowedInlinings
H
long
10000
Maximum number of methods inlined for method handle internals before static analysis.
InlineBeforeAnalysisMethodHandleAllowedInvokes
H
long
1000
Maximum number of invokes for method handle internals inlined before static analysis.
InlineBeforeAnalysisMethodHandleAllowedNodes
H
long
10000
Maximum number of computation nodes for method handle internals inlined before static analysis.
InlineDuringParsing
H
boolean
Inlines trivial methods during bytecode parsing.
InlineDuringParsingMaxDepth
H
long
10
Maximum depth when inlining during bytecode parsing.
InlineEverything
H
boolean
InlineGraalStubs
H
boolean
Embed all the emitted code for Graal-generated stubs.
InlineMegamorphicCalls
H
boolean
Inline calls with megamorphic type profile (i.e., not all types could be recorded).
InlineMonomorphicCalls
H
boolean
Inline calls with monomorphic type profile.
InlinePartialIntrinsicExitDuringParsing
H
boolean
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.
InlinePolymorphicCalls
H
boolean
Inline calls with polymorphic type profile.
InlineVTableStubs
H
boolean
InlinedCompilerNodeLimit
H
long
20000
Controls the maximum number of compiler nodes that can be inlined into the compiled method.
InliningCoefficient
H
double
0.02
The coefficient used to compute the inlining threshold; the higher, the more to inline.
InliningDepthError
H
long
1000
Maximum inlining depth during partial evaluation before reporting an infinite recursion.
InsertPreMainPostOnly
H
boolean
Do not unroll the main loop, only create pre-main-post.
InspectGraphs
H
boolean
Inspect analysis graphs.
InspectServerContentPath
H
string
inspect
Path to the contents of the Inspect web server.
InstallExitHandlers
H
boolean
Provide java.lang.Terminator exit handlers.
InterceptBailout
H
boolean
Intercept also bailout exceptions.
InternalSymbolsAreGlobal
H
boolean
Compatibility option to make symbols used for the image heap global. Using global symbols is problematic for shared libraries because the loader implicitly changes the value when the symbol is already defined in the executable loading the library. Setting this option to true preserves the broken behavior of old Native Image versions.
InternalThreadStackSize
H
long
2097152
The size of each internal thread stack, in bytes.
Intrinsify
H
boolean
Use compiler intrinsifications.
IntrinsifyStringFormat
H
boolean
Intrinsify String.format with constant format strings.
InversionMinLocalFrequency
H
double
2
Minimal loop frequency for a loop to be considered for inversion.
InversionMinRelativeFrequency
H
double
1
Minimal relative frequency for a loop to be considered for inversion.
InvertMultiEndLoops
H
boolean
InvertNonLeafLoops
H
boolean
InvertVectorizableLoops
H
boolean
IsolatedLoopHeaderAlignment
H
long
32
Alignment in bytes for loop header blocks that have no fall through paths.
IterativePeelingLimit
H
long
2
Allow iterative peeling of loops up to this many times (each time the peeling phase runs).
IterativePeelingOuterFrequencyBonusThreshold
H
double
4
Allow iterative peeling of loops with an outer frequency bonus above this value.
JNI
H
boolean
Enable Java Native Interface (JNI) support.
JNIConfigurationFiles
H
string
<path>*
Files describing program elements to be made accessible via JNI (for syntax, see ReflectionConfigurationFiles).
JNIConfigurationResources
H
string
<string>*
Resources describing program elements to be made accessible via JNI (see JNIConfigurationFiles).
JNIEnhancedErrorCodes
H
boolean
JNI functions will return more specific error codes.
JNIExportSymbols
H
boolean
Export Invocation API symbols.
JNIVerboseLookupErrors
H
boolean
Report information about known JNI elements when lookup fails.
JfrBasedExecutionSampler
H
boolean
Use JFR-based execution sampler.
LIRDynMoveProfileMethod
H
boolean
Enable dynamic move profiling per method.
LIRInstructionVerifierPath
H
string
None
Path to jar file containing LIR instruction verifier.
LIROptConstantLoadOptimization
H
boolean
Enable constant load optimization.
LIROptControlFlowOptimizer
H
boolean
LIROptEdgeMoveOptimizer
H
boolean
LIROptLSRAEliminateSpillMoves
H
boolean
Enable spill move elimination.
LIROptLSRAOptimizeSpillPosition
H
boolean
Enable spill position optimization.
LIROptLSStackSlotAllocator
H
boolean
Use linear scan stack slot allocation.
LIROptNullCheckOptimizer
H
boolean
LIROptRedundantMoveElimination
H
boolean
LIROptStackMoveOptimizer
H
boolean
LIROptimization
H
boolean
Enable LIR level optimizations.
LIRProfileMethods
H
boolean
Enables profiling of methods.
LIRProfileMoves
H
boolean
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).
LSRAOptSplitOnly
H
boolean
LSRA optimization: Only split but do not reassign.
LSRAOptimization
H
boolean
Enable LSRA optimization.
LargeArrayThreshold
H
long
131072
The size at or above which an array will be allocated in its own unaligned chunk. Serial and epsilon GC only.
LargeChildrenCountPenaltyCoefficient
H
double
0.005
Reduces the likelihood of exploring call graphs that have a lot of children below the root.
LimitInlinedInvokes
H
double
5
LimitObjectArrayLength
H
boolean
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.
LinkAtBuildTime
H
string
<string>*
Require types to be fully defined at image build-time. If used without args, all classes in scope of the option are required to be fully defined.
LinkAtBuildTimePaths
H
string
<string>*
Require all types in given class or module-path entries to be fully defined at image build-time.
LinkerRPath
H
string
<string>*
Path passed to the linker as the -rpath (list of comma-separated directories).
ListCPUFeatures
H
boolean
Show CPU features specific to the target platform and exit.
ListMetrics
H
boolean
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.
ListModules
H
boolean
List observable modules and exit.
LoadExceptionObjectInVM
H
boolean
Use a VM runtime call to load and clear the exception object from the thread at the start of a compiled exception handler.
LoadProfiles
H
string
None
Load per compilation profile information.
LocalizationCompressBundles
H
string
<string>*
Regular expressions matching which bundles should be compressed.
LocalizationCompressInParallel
H
boolean
Compress the bundles in parallel.
LocalizationOptimizedMode
H
boolean
Optimize the resource bundle lookup using a simple map.
LocalizationSubstituteLoadLookup
H
boolean
Store the resource bundle content more efficiently in the fallback mode.
LocalsPerCounter
H
long
16
Number of cpu locals per counter. It has to be a power of 2.
Log
H
string
None
Pattern for specifying scopes in which logging is enabled. See the Dump option for the pattern syntax.
LogFile
H
string
None
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(). If the current runtime is in an isolate, then %i will be replaced by '<isolate id>' otherwise %i is removed. An %I is the same as %i except that the replacement is '<isolate id>@<isolate address>'. Using %o as filename sends logging to System.out whereas %e sends logging to System.err.
LogVerbose
H
boolean
Enable more verbose log output when available.
LoopBoundOptimizationPhase
H
boolean
Try to improve counted loop detection by finding more precise loop bounds.
LoopExitVsLoopEndFrequencyDiff
H
double
1000
Scaling factor of frequency difference computed based on loop ends or exits.
LoopHeaderAlignment
H
long
16
Alignment in bytes for loop header blocks.
LoopInversion
H
boolean
LoopMaxUnswitch
H
long
3
LoopPeeling
H
boolean
LoopPredication
H
boolean
Hoists array bounds checks out of simple loops. This is ignored if SpeculativeGuardMovement is enabled.
LoopPredicationMainPath
H
boolean
Restricts LoopPredication to only focus on array bounds checks that dominate the back edge of a loop.
LoopRotation
H
boolean
Enable Loop Rotation to let the compiler detect more loops as counted.
LoopRotationAssertCountedAfter
H
boolean
LoopRotationToxicNodeSetMaxNodecost
H
long
512
Maximum size in NodeSize of the code to be duplicated during rotation.
LoopUnswitch
H
boolean
LoopUnswitchFrequencyBoost
H
double
20
Number of nodes allowed for a loop unswitching per loop frequency. The number of nodes allowed for the unswitching is proportional to the relative frequency of the loop by this constant.
LoopUnswitchFrequencyMaxFactor
H
double
0.95
Maximun value for the frequency factor of an invariant.
LoopUnswitchFrequencyMinFactor
H
double
0.05
Minimum value for the frequency factor of an invariant.
LoopUnswitchMaxIncrease
H
long
2000
Maximum loop unswitching code size increase in nodes.
LoopUnswitchMinSplitFrequency
H
double
1
Lower bound for the minimun frequency of an invariant condition to be unswitched.
LoopUnswitchTrivial
H
long
20
Number of nodes allowed for a loop unswitching regardless of the loop frequency.
LoopVectorizationKeepPostLoop
H
boolean
Keep the original loop as the post-loop during loop vectorization.
LoopVectorizationMaxBodyNodes
H
long
16
The maximal number of fixed body nodes to consider in loop vectorization.
MLGraphFeaturesExtraction
H
boolean
Extract graph ML features to support the profile inference in the GraalVM Native Image.
MLProfileInference
H
boolean
Employ static profiler to infer profiles in the GraalVM Native Image.
MLProfileInferenceGuards
H
boolean
Employ guards to tune the ML-inferred profiles.
MatchExpressions
H
boolean
Allow backend to match complex expressions.
MaxCallingContextDepth
H
long
0
The maximum length of the methods context chains.
MaxCallingContextWidth
H
long
0
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.
MaxCompilationProblemsPerAction
H
long
2
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.
MaxConstantObjectsPerType
H
long
0
The maximum number of constant objects recorded for each type before merging the constants into one unique constant object per type. If the value is 0 there is no limit.
MaxDuplicationAnchor
H
long
2147483647
Maximum duplication anchor number.
MaxDuplicationFactor
H
double
2
Max amount of extra effort to expend handling irreducible loops. A value < 1 disables support for irreducible loops.
MaxGraphSizeNodeCost
H
long
100000
Maximum node cost graph size for duplication. If a graph is bigger duplication will stop.
MaxHeapContextDepth
H
long
0
The maximum length of the context used to model a heap object in addition to the allocation site; used only when ContextSensitiveHeap is enabled.
MaxHeapContextWidth
H
long
0
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.
MaxInvokesInTrivialMethod
H
long
1
Maximum number of invokes in a method so that it is considered trivial (for testing only).
MaxMispredictionCostIncreaseFactor
H
double
2
Abstract measure of the cost of branch misprediction. Higher values make generation of conditional moves more likely.
MaxNodesAfterTrivialInlining
H
long
2147483647
The maximum number of nodes in a graph allowed after trivial inlining.
MaxNodesInTrivialLeafMethod
H
long
40
Maximum number of nodes in a method so that it is considered trivial, if it does not have any invokes.
MaxNodesInTrivialMethod
H
long
20
Maximum number of nodes in a method so that it is considered trivial.
MaxObjectSetSize
H
long
100
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.
MaxPolymorphicDispatches
H
long
4
The maximum number of dispatches in guarded polymorphic inlining.
MaxPriorityInliningPeelingIterations
H
long
10
Max number of precise inlining peeling iterations.
MaxReachableTypes
H
long
-1
Maximum number of types allowed in the image. Used for tests where small number of types is necessary.
MaxRounds
H
long
1000
Maximum number of expand/inline rounds during a single run of the phase.
MaxRuntimeCodeOffsetInstructions
H
long
0
The maximum number of instructions to randomly offset the entry of runtime installed methods. Use this option for less predictable entry points.
MaxRuntimeCompileMethods
H
string
<string>*
Maximum number of methods allowed for runtime compilation.
MaxSimulationIterations
H
long
2
Maximum simulation-duplication iterations of the duplication optimization per invocation.
MaxSimulationIterationsHotCode
H
long
4
See MaxSimulationIterations.
MaxSplitsPerNode
H
long
32
MaxSurvivorSpaces
H
string
None
Maximum number of survivor spaces. Serial GC only.
MaxTemplatesPerSnippet
H
long
50
MaxThinLockRecursion
H
long
20
Maximum recursive locking depth for thin locks.
MaxUnrolledObjectZeroingStores
H
long
8
Define the maximum number of stores for which the loop that zeroes out objects is unrolled.
MaxUnswitchSuccessors
H
long
64
Maximum number of split successors before aborting unswitching.
MaxValueNodesPartialEscapeSelectiveInlining
H
long
35000
Controls the maximum number of value nodes that can appear in the final graph.
MaxVectorAlignmentUnroll
H
long
4
Maximum number of unrolled alignment instructions.
MaxVectorUnroll
H
long
16
Maximum length of linear-code vector operations.
MaximumDesiredSize
H
long
20000
Maximum desired size of the compiler graph in nodes.
MaximumEscapeAnalysisArrayLength
H
long
128
The maximum length of an array that will be escape analyzed.
MaximumInliningSize
H
long
300
Inlining is explored up to this number of nodes in the graph for each call site.
MaximumLoopExplosionCount
H
long
10000
Max number of loop explosions per method.
MaximumRecursiveInlining
H
long
5
Maximum level of recursive inlining.
MaximumTransitiveEnabledPullFactor
H
long
2
PullThroughPhiOptimization: Maximum number of algorithm iterations per optimization invocation.
MegamorphicInliningMinMethodProbability
H
double
0.33
Minimum probability for methods to be inlined for megamorphic type profiles.
MemUseTrackers
H
string
None
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.
Method
H
string
main
Name of the main entry point method. Optional if --shared is used.
MethodFilter
H
string
None
Pattern for matching methods. The syntax for a pattern is:.
MethodFilterRootOnly
H
boolean
Only check MethodFilter against the root method in the context if true, otherwise check all methods.
MethodInlineBailoutLimit
H
long
5000
Per-compilation method inlining exploration limit before giving up (use 0 to disable).
MetricsFile
H
string
None
File to which metrics are dumped per compilation.
MicroArchitecture
H
string
None
Generate instructions for a specific machine type. Defaults to 'x86-64-v3' on AMD64 and 'armv8-a' on AArch64. Use -marchcompatibility for best compatibility, or -marchnative for best performance if the native executable is deployed on the same machine or on a machine with the same CPU features. To list all available machine types, use -marchlist.
MidTierInversion
H
boolean
MidTierPartialUnrolling
H
boolean
Enable EE partial unrolling in mid tier.
MinBlockFrequencyPull
H
double
0.66
PullThroughPhiOptimization: Ignore low frequency branches during duplication.
MinCallingContextDepth
H
long
0
The minimum length of the methods context chains.
MinDuplicationAnchor
H
long
1
Skip n duplication anchors.
MinHeapContextDepth
H
long
0
The minimum length of the context used to model a heap object in addition to the allocation site; used only when ContextSensitiveHeap is enabled.
MinPolymorphicDispatchProbability
H
double
0.1
The minimum probability for using a dispatch in guarded polymorphic inlining.
MinifyInvertedPhis
H
boolean
Break chained phis.
MinimalBulkZeroingSize
H
long
2048
If applicable, use bulk zeroing instructions when the zeroing size in bytes exceeds this threshold.
MinimalGraphNodeSizeCheckSize
H
long
1000
Minimal size in NodeSize to check the graph size increases of phases.
MinimalRegions
H
boolean
Try to reduce duplication code size to the minimal amount of code.
MinimumBlindedConstantSize
H
long
4
Minimum size (in bytes) of constants to blind.
MinimumPeelFrequency
H
double
0.35
MissingRegistrationReportingMode
H
string
Throw
Select the mode in which the missing reflection registrations will be reported.
Module
H
string
Module containing the class that contains the main entry point. Optional if --shared is used.
MoveGuardsUpwards
H
boolean
Move guard nodes to earlier places in the dominator tree if all successors of basic block share a common guard condition.
MultiExitCostFactor
H
long
32
Cost/Benefit heuristic for EE unrolling: If a loop has multiple exits, cost is increased by this value for every none-sinking loop exit.
MultiExitCostFactorSink
H
long
2
Cost/Benefit heuristic for EE unrolling: If a loop has multiple exits, cost is increased by this value for every sinking loop exit.
MultiThreaded
H
boolean
Enable support for threads and and thread-local variables (disable for single-threaded implementation).
NDCV
H
long
0
Run level for NoDeadCodeVerifyHandler (0 off, 1 info, 2 verbose, 3 fatal).
Name
H
string
Name of the output file to be generated.
NativeArchitecture
H
boolean
Uses the native architecture, i.e., the architecture of a machine that builds an image.
NativeLinkerOption
H
string
<string>*
Pass the provided raw option that will be appended to the linker command to produce the final binary. The possible options are platform specific and passed through without any validation.
NeverInline
H
string
<string>*
Pattern for disabling inlining of methods during image generation.
NewCAPCache
H
boolean
Create a C Annotation Processor Cache. Will erase any previous cache at that same location.
NoDirectRelocationsInText
H
boolean
Force no direct relocations to be present in the text section of the generated image.
NonCountedStripMinedBenefitBoost
H
long
64
Benefit boost for strip mined non counted loops.
NonCountedStripMiningBudget
H
double
0.1
Code size budget of the non-counted strip mining transformation in terms of NodeCostSize.
NonCountedStripMiningBudgetHotCode
H
double
2.5
See NonCountedStripMiningBudget.
NonCountedStripMiningForceStripAll
H
boolean
Force non-counted strip mining for all loops (also counted ones), test flag only.
NonCountedStripMiningIgnoreSmallLoops
H
boolean
Ignore small loops from strip mining, the iv overhead can cause slowdowns.
NonCountedStripMiningInnerLoopTrips
H
long
-1
The max number of iterations the counted inner loop takes. If -1, the frequency of the loop will be used to derive an inner frequency.
NonCountedStripMiningMaximumInnerLoopTrips
H
long
8192
If NonCountedStripMiningInnerLoopTrips -1: Maximum loop trips for strip mined non-counted loops.
NonCountedStripMiningMinFrequency
H
double
16
Minimal loop frequency to consider a non-counted loop for strip mining.
NonCountedStripMiningMinimumInnerLoopTrips
H
long
512
If NonCountedStripMiningInnerLoopTrips -1: Minimum loop trips for strip mined non-counted loops.
NonCountedStripMiningReuseIVs
H
boolean
Try to reuse pre-existing induction variables inside non-counted loops for the strip-mined loop's exit check.
NumberOfAnalysisThreads
H
long
-1
Deprecated, option no longer has any effect.
NumberOfThreads
H
long
12
The maximum number of threads to use concurrently during native image generation.
ObjdumpExecutables
H
string
None
Comma separated list of candidate GNU objdump executables. If not specified, disassembling via GNU objdump is disabled. Otherwise, the first existing executable in the list is used.
ObjectInlining
H
boolean
Deprectated, has no effect.
ObjectInliningConfigurationFiles
H
string
<path>*
Deprectated, has no effect.
ObjectInliningConfigurationResources
H
string
<string>*
Deprectated, has no effect.
OmitHotExceptionStacktrace
H
boolean
OmitInlinedMethodDebugLineInfo
H
boolean
Omit generation of DebugLineInfo originating from inlined methods.
OptAssumptions
H
boolean
OptBulkAllocation
H
boolean
OptCompressedFrameStateValues
H
boolean
OptConditionalMoves
H
boolean
Optimize simple if branches with conditional moves.
OptConvertDeoptsToGuards
H
boolean
OptDeDuplication
H
boolean
OptDeoptimizationGrouping
H
boolean
OptDevirtualizeInvokesOptimistically
H
boolean
OptDuplication
H
boolean
OptEarlyReadElimination
H
boolean
OptEliminateGuards
H
boolean
OptExactArithmetic
H
boolean
OptFloatingReads
H
boolean
OptGuardRangeGrouping
H
boolean
OptImplicitNullChecks
H
boolean
OptInlineImageHeapConstants
H
boolean
Optimize address operations that involve image heap constants.
OptLockElimination
H
boolean
OptLoopPhiStamps
H
boolean
Inject stamps on induction variables.
OptMethodDuplication
H
boolean
Duplicate methods to form hot part and cold part areas.
OptPropagateEquality
H
boolean
Propagate equality into dominated nodes.
OptPullThroughPhi
H
boolean
OptReadElimination
H
boolean
OptScheduleOutOfLoops
H
boolean
OptStaticFinalFieldFolding
H
boolean
Optimize static final fields that get a constant assigned in the class initializer.
OptStringConcat
H
boolean
Optimize StringBuilder construction.
OptStringConcatDump
H
boolean
Dump graphs to help debug operation.
OptStringConcatDumpUnhandled
H
boolean
Dump graphs to help debug operation.
OptWriteBarrierElimination
H
boolean
Eliminate redundant write barriers.
OptWriteMotion
H
boolean
Perform write sinking, which moves writes inside loops after them, effectively reducing their frequency.
OptimisticAliasingAnalysis
H
boolean
OptimisticAliasingUseSpeculation
H
boolean
Use speculation and deoptimization in optimistic aliasing analysis.
OptimizationLog
H
string
None
Enable the structured optimization log and specify where it is printed.
OptimizationLogPath
H
string
None
Path to the directory where the optimization log is saved if OptimizationLog is set to Directory. Directories are created if they do no exist.
Optimize
H
long
2
Control code optimizations: b - optimize for fastest build time, 0 - no optimizations, 1 - basic optimizations, 2 - advanced optimizations, 3 - all optimizations for best performance.
OptimizeLoopAccesses
H
boolean
Enable access node optimizations for loops.
OptimizeReturnedParameter
H
boolean
Analysis: Detect methods that return one of their parameters and hardwire the parameter straight to the return.
OptimizeVectorAPI
H
boolean
Expand Vector API operations to optimized machine instructions.
OptionalIdentityHashCodes
H
boolean
Allocate memory for identity hash codes only for those objects that need it.
OutlineAllocations
H
boolean
Outline allocations into factory methods.
OutlineIndyStringConcatenations
H
boolean
Outline string concatenation operations represented by invoke dynamic (indy) calls.
OutlineSBMaterializations
H
boolean
Allow outlined sequences of (StringBuilder|StringBuffer).append() to be materialized into a (StringBuilder|StringBuilder) instance.
OutlineStringBufferAppends
H
boolean
Attempt to outline sequences of StringBuffer.append() operations.
OutlineStringBuilderAppends
H
boolean
Attempt to outline sequences of StringBuilder.append() operations.
OverrideProfiles
H
boolean
Allow multiple compilations of the same method by overriding existing profiles.
PGOAdoptedProfilesNormalizationValue
H
long
100000000000000
The value that will be used to normalize adopted profiles.
PGOContextSensitivityEnabled
H
boolean
Enables context sensitivity in PGO.
PGOEnableProfileNormalization
H
boolean
Enable/disable normalization of profiles.
PGOEnabled
H
string
<path>*
A comma-separated list of files from which to read the data collected for profile-guided optimization of AOT compiled code (reads from default.iprof if nothing is specified). Each file must contain a single PGOProfiles object, serialized in JSON format, optionally compressed by gzip. .
PGOIgnoreVersionCheck
H
boolean
Prevent PGO run from failing if the profile version is not correct, and apply profiles on a best-effort basis.
PGOPrintDroppedCallingContexts
H
boolean
Print a list of all calling-contexts that are dropped during a PGO run.
PGOPrintUnmatchedPercentage
H
boolean
Print the percentage of how many entries from the profile file(s) did not match the target application.
PGOProfilesNormalizationValue
H
long
1000000000000000
The value that will be used to normalize collected profiles.
PageSize
H
long
0
Define PageSize of a machine that runs the image. The default 0 ( same as host machine page size).
ParseOnce
H
boolean
Deprecated, option no longer has any effect.
ParseOnceJIT
H
boolean
Deprecated, option no longer has any effect.
ParseRuntimeOptions
H
boolean
Parse and consume standard options and system properties from the command line arguments when the VM is created.
ParsingContextMaxDepth
H
long
100
Limit the parsing context depth. Default value is arbitrary set at 100.
PartialEscapeAnalysis
H
boolean
PartialRedundancyElimination
H
boolean
Enable partial redundancy elimination.
PartialUnroll
H
boolean
PartialUnrollCostReductionFactorHighTier
H
long
2
Cost/Benefit heuristic for EE unrolling in high tier: reduce cost by a constant factor when comparing with relative benefit.
PartialUnrollCostReductionFactorHotCodeMidTier
H
long
32
See PartialUnrollCostReductionFactorMidTier.
PartialUnrollCostReductionFactorMidTier
H
long
8
Cost/Benefit heuristic for EE unrolling in mid tier: reduce cost by a constant factor when comparing with relative benefit.
PartialUnrollMaxIterationsHighTier
H
long
4
Maximum number of iterations to unroll for a high tier main loop.
PartialUnrollMaxIterationsMidTier
H
long
16
Maximum number of iterations to unroll for a mid tier main loop.
PartialUnrollMaxSizeHighTier
H
long
256
Maximum node cost size of a loop to be considered for high tier unrolling.
PartialUnrollMaxSizeHotCodeMidTier
H
long
1024
See PartialUnrollMaxSizeMidTier.
PartialUnrollMaxSizeMidTier
H
long
256
Maximum node cost size of a loop to be considered for mid tier tier unrolling.
PartialUnrollMinFrequency
H
long
4
Minimal loop frequency to consider a loop for partial unrolling.
Path
H
string
None
Directory of the image file to be generated.
PathProfileCutThreshold
H
long
10
The limit on the number of paths at control-flow merges. Decreasing this value reduces the number of paths, but also shortens them.
PathProfileDumpFile
H
string
None
Dump information for path profile (null or file name). If set to null, then dumping is disabled.
PathProfileFrequentThreshold
H
long
500
Maximum acceptable number of paths coming from the inbound of a merge if both of them are frequent.
PathProfileGlobalLowFrequencyRatio
H
double
0.1
If some block's relative frequency drops below this number times the maximum relative frequency in the graph, then the block is considered infrequent.
PathProfileLocalLowFrequencyRatio
H
double
10
If the ratio of the merge's frequency with its inbound's frequency is greater than this threshold, then the inbound is considered infrequent.
PathProfileMaxTotalCounters
H
long
4000000
Maximum number of counters to use in path profiling for all instrumented methods.
PathProfilePolicy
H
string
None
Enable or disable the path-profiling algorithm. If it enables it, it also allows to select which mode to execute.
PathProfileRegenerate
H
boolean
Controls whether the path-regeneration algorithm is executed.
PeelALot
H
boolean
Stress test for the loop peeling optimization by applying it aggressively.
PeelOnlyLoopWithNodeID
H
long
-1
Peel only the loop with the specific loop begin node ID for debugging purposes.
PeelingConsideredMinLoopIterations
H
double
1.5
Minimal loop body iterations necessary to consider peeling.
PeelingConsideredMinRelativeFrequency
H
double
4
Minimal relative frequency of loop begin necessary to consider peeling.
PeelingHighTierCostReductionFactor
H
double
64
Cost/Benefit heuristic for EE simulation-based loop peeling in high tier: reduce cost by a constant factor when comparing with relative benefit.
PeelingMidTierCostReductionFactor
H
double
8
Cost/Benefit heuristic for EE simulation-based loop peeling in mid tier: reduce cost by a constant factor when comparing with relative benefit.
PenalizeComplexLoopControlFlow
H
boolean
Increase the cost of duplicating control flow splits inside loops if they are not foldable.The generally tend to complicate control flow and generate worse code in the backend.
PerfDataMemoryMappedFile
H
boolean
Determines if the collected performance data should be written to a memory-mapped file so that it can be accessed by external tools.
PhiMinificationMinimalLoopFrequency
H
double
2
Minimal loop frequency to consider a loop for inverted phi minifaction.
PinnedObjectAddressing
H
boolean
Allows the addresses of pinned objects to be passed to other code.
PlatformInterfaceCompatibilityMode
H
boolean
Enable the behavior of old GraalVM versions. When enabled, interfaces not available for the current platform are filtered.
PredefinedClassesConfigurationFiles
H
string
<path>*
Files describing predefined classes that can be loaded at runtime according to the schema at https://github.com/oracle/graal/blob/master/docs/reference-manual/native-image/assets/predefined-classes-config-schema-v1.0.0.json.
PredefinedClassesConfigurationResources
H
string
<string>*
Resources describing predefined classes that can be loaded at runtime according to the schema at https://github.com/oracle/graal/blob/master/docs/reference-manual/native-image/assets/predefined-classes-config-schema-v1.0.0.json.
PreferUnsignedComparison
H
boolean
Rewrite signed comparisons to unsigned ones if the result is equal.
PreserveFramePointer
H
boolean
Saves stack base pointer on the stack on method entry.
PreventStringValueEscaping
H
boolean
Determines if aggressive method inlining should be used to prevent escaping of String.value.
PrintAOTCompilation
H
boolean
Print logging information during compilation.
PrintAnalysisCallTree
H
boolean
Print analysis call tree, a breadth-first tree reduction of the call graph.
PrintAnalysisCallTreeType
H
string
TXT
Change the output format of the analysis call tree, available options are TXT and CSV. See: Reports.md.
PrintAnalysisStatistics
H
boolean
Print analysis results statistics.
PrintBBInfo
H
boolean
Enables dumping of basic blocks relative PC and frequencies in the dump directory.
PrintBackendCFG
H
boolean
Enable dumping scheduled HIR, LIR, register allocation and code generation info to the C1Visualizer.
PrintBlockMapping
H
boolean
Enable dumping CFG built during initial BciBlockMapping.
PrintCallEdges
H
boolean
Print call edges with other analysis results statistics.
PrintCanonicalGraphStringFlavor
H
long
0
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).
PrintCanonicalGraphStrings
H
boolean
Enable dumping canonical text from for graphs.
PrintClassInitialization
H
boolean
Prints class initialization info for all classes detected by analysis.
PrintCompilation
H
boolean
Print an informational line to the console for each completed compilation.
PrintFeatures
H
boolean
Print a list of active features.
PrintFlags
H
string
None
Show available options based on comma-separated option-types (allowed categories: User, Expert, Debug).
PrintFlagsWithExtraHelp
H
string
None
Print extra help, if available, based on comma-separated option names. Pass * to show all options that contain extra help.
PrintGOT
H
boolean
Prints the contents of the GOT.
PrintGraph
H
string
File
Where IdealGraphVisualizer graph dumps triggered by Dump or DumpOnError should be written.
PrintGraphFile
H
boolean
Setting to true sets PrintGraphfile, setting to false sets PrintGraphnetwork.
PrintGraphHost
H
string
127.0.0.1
Host part of the address to which graphs are dumped.
PrintGraphPort
H
long
4445
Port part of the address to which graphs are dumped in binary format.
PrintGraphStateDiff
H
boolean
Prints the difference in the graph state caused by each phase of the suite.
PrintGraphWithSchedule
H
boolean
Schedule graphs as they are dumped.
PrintHeapHistogram
H
boolean
Print class statistics of native image heap.
PrintIRWithLIR
H
boolean
Print HIR along side LIR as the latter is generated.
PrintImageElementSizes
H
boolean
Print the sizes of the elements of the built image.
PrintImageHeapConnectedComponents
H
boolean
A native-image run with the flag `
+PrintImageHeapConnectedComponents`
H
string
-
will create reports that can help us debug which objects got into the native image heap and why. A component represents a set of objects in the image heap.
PrintImageHeapPartitionSizes
H
boolean
Print the sizes of the native image heap as the image is built.
PrintImageObjectTree
H
boolean
Print image object hierarchy.
PrintIntrinsics
H
boolean
Print the registered intrinsics in a format compatible with DisableIntrinsics.
PrintJNIMethods
H
boolean
Print JNI methods added to generated image.
PrintLIRWithAssembly
H
boolean
Include the LIR as comments with the final assembly.
PrintLoweringScheduleToTTY
H
boolean
Print schedule result pre lowering to TTY.
PrintMethodHistogram
H
boolean
Print statistics of methods in native image heap.
PrintOutlinedSBMethodMetrics
H
boolean
Print histogram and metrics about the OutlinedSBMethods created.
PrintPointsToStatistics
H
boolean
Report analysis statistics.
PrintProfileLoading
H
boolean
Print to stdout when a profile is loaded.
PrintProfilingInformation
H
boolean
Print profiling information when parsing a method's bytecode.
PrintRestrictHeapAccessPath
H
boolean
Print path for @RestrictHeapAccess warnings.
PrintRestrictHeapAccessWarnings
H
boolean
Print warnings for @RestrictHeapAccess annotations.
PrintRuntimeCompilationCallTree
H
boolean
Print call tree of methods reachable for runtime compilation.
PrintRuntimeCompileMethods
H
boolean
Print methods available for runtime compilation.
PrintSBOutliningCounters
H
boolean
Print counters collected while attempting to outline sequences of StringBuffer and StringBuilder operations.
PrintSynchronizedAnalysis
H
boolean
Print types used for Java synchronization.
PrintUninterruptibleCalleeDOTGraph
H
boolean
Print (to stderr) a DOT graph of the @Uninterruptible annotations.
PrintUniverse
H
boolean
Print information about classes, methods, and fields that are present in the native image.
PrintUnmodifiedGraphs
H
boolean
Dump a graph even if it has not changed since it was last dumped. Change detection is based on adding and deleting nodes or changing inputs.
PriorityForceInline
H
string
None
Unconditionally inline all methods matching the pattern using the priority-based inliner. See the MethodFilter option for a description of the pattern syntax.
PriorityInliningPolicy
H
string
The policy to use, must be empty for automatic resolution.
PriorityInliningTuningPolicy
H
string
DomainSpecific
Comma-separated list of analysis policies for exploring the methods in the call graph and for inlining, empty for no policy.
PriorityNeverInline
H
string
None
Never inline methods matching the pattern using the priority-based inliner. See the MethodFilter option for a description of the pattern syntax.
ProfileAllocations
H
boolean
Enable profiling of allocation sites.
ProfileAllocationsContext
H
string
AllocatingMethod
Control the naming and granularity of the counters when using ProfileAllocations.
ProfileAnalysisOperations
H
boolean
Track the progress of the static analysis.
ProfileCompiledMethods
H
boolean
ProfileConstantObjects
H
boolean
Track the creation of constant objects.
ProfileDeoptimization
H
boolean
Print logging information during object file writing.
ProfileLockElimination
H
boolean
ProfileMethodFilter
H
string
None
Restrict saving or loading of profiles based on this filter. See the MethodFilter option for the pattern syntax.
ProfileMonitors
H
boolean
Enable profiling of monitor operations.
ProfileOptBulkAllocation
H
boolean
ProfileSelfTime
H
boolean
Excludes time spent in invoked methods; measures total time including subcalls when turned off.
ProfilingEnablePathProfiling
H
boolean
Replace profiling counters with path-profiling counters.
ProfilingEnableProfileDumpHooks
H
boolean
Dump the PGO profiles on shutdown.
ProfilingEnabled
H
boolean
Instrument AOT compiled code to collect data for profile-guided optimization into default.iprof file.
ProfilingPackagePrefixes
H
string
None
A comma-separated list of package prefixes for which the PGO profiles are collected.
ProfilingPathProfilingVerify
H
boolean
Collect profiling counters, and verify that they match the path-profile counters.
ProfilingRDPID
H
boolean
Use RDTSCP or RDPID if available to compute the index in the counter array. Setting this option to false ensures Knuth hashing is used instead.
PropagateEqualityDepth
H
long
6
Maximum depth of dependency when propagating equals property.
ProtectionKeys
H
boolean
Enable support for Memory Protection Keys.
PruneLargeDominatorUsageTrees
H
boolean
PullThroughPhiCodeSizeIncrease
H
double
0.1
PullThroughPhiOptimization: Percentage in node cost graph size for the floating node duplication budget. Computed relative to the method's graph size.
PullThroughPhiCodeSizeIncreaseHotCode
H
double
2.5
See PullThroughPhiCodeSizeIncrease.
QueryCodeDir
H
string
Directory where query code for target platform should be output.
RawConditionalElimination
H
boolean
ReadEliminationMaxLoopVisits
H
long
5
ReadProxySchedulingStrategy
H
string
LATEST_OUT_OF_LOOPS
Chose the scheduling strategy for inserting the read proxies.
ReassociateExpressions
H
boolean
Re-associate loop invariants and constants.
ReduceDCE
H
boolean
Disable optional dead code eliminations.
ReflectionConfigurationFiles
H
string
<path>*
One or several (comma-separated) paths to JSON files that specify which program elements should be made available via reflection.
ReflectionConfigurationResources
H
string
<string>*
Resources describing program elements to be made available for reflection (see ReflectionConfigurationFiles).
ReflectionPluginTracing
H
boolean
Enable trace logging for reflection plugins.
RegisterPressure
H
string
None
Comma separated list of registers that register allocation is limited to.
RelativeBenefitInliningCoefficient
H
double
0.001
The coefficient used to compute the inlining threshold; the higher, the hard to inline.
RelaxTypeFlowStateConstraints
H
boolean
Allow a type flow state to contain types not compatible with its declared type.
RemoveLoopSafepoints
H
boolean
Remove safepoints on counted loop ends.
RemoveNeverExecutedCode
H
boolean
RemoveSaturatedTypeFlows
H
boolean
Enable the type flow saturation analysis performance optimization.
RemoveUnneededDeoptSupport
H
boolean
Remove Deopt(Entries,Anchors,Proxies) determined to be unneeded after the runtime compiled graphs have been finalized.
RemoveUnusedSymbols
H
boolean
Use linker option to prevent unreferenced symbols in image.
ReplaceInputsWithConstantsBasedOnStamps
H
boolean
ReportAnalysisForbiddenType
H
string
<string>*
Report error if <typename>[:<UsageKind>{,<UsageKind>}] is discovered during analysis (valid values for UsageKind: InHeap, Allocated, Reachable).
ReportExceptionStackTraces
H
boolean
Show exception stack traces for exceptions during image building.).
ReportPerformedSubstitutions
H
boolean
Report performed substitutions.
ReportUnsafeOffsetWarnings
H
boolean
Print unsafe operation offset warnings.
ReportUnsupportedElementsAtRuntime
H
boolean
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.
ReservedAuxiliaryImageBytes
H
long
0
Size in bytes of an address space to reserve for auxiliary images.
ResourceConfigurationFiles
H
string
<path>*
Files describing Java resources to be included in the image according to the schema at https://github.com/oracle/graal/blob/master/docs/reference-manual/native-image/assets/resource-config-schema-v1.0.0.json.
ResourceConfigurationResources
H
string
<string>*
Resources describing Java resources to be included in the image according to the schema at https://github.com/oracle/graal/blob/master/docs/reference-manual/native-image/assets/resource-config-schema-v1.0.0.json.
RespectVectorization
H
boolean
Try avoid unrolling vectorizable loops.
ReturnAfterAnalysis
H
boolean
Return after analysis.
ReuseRecursiveDuplicatedMethods
H
boolean
Do not duplicate recursive methods but rather reuse a previous duplicate.
RewriteStripMinedCounterTo32Bit
H
boolean
Rewrite the counter of a strip mined loop to have a 32bit type.
RootSizePenaltyCoefficient
H
double
0.1
Reduces likelihood of spending a lot of time inlining when the IR is already large.
RootSizePenaltyTypicalGraphSize
H
long
3250
At what size of the root IR graph do we start to consider applying a exploration penalty.
RotateNonLeafLoops
H
boolean
RotationMinLocalFrequency
H
double
2
Minimal loop frequency for a loop to be considered for rotation.
RotationMinRelativeFrequency
H
double
1
Minimal relative frequency for a loop to be considered for rotation.
RunMainInNewThread
H
boolean
Initializes and runs main entry point in a new native thread.
RunReachabilityHandlersConcurrently
H
boolean
Run reachability handlers concurrently during analysis.
RuntimeAssertions
H
string
<string>*
Enable or disable Java assert statements at run time.
RuntimeCheckedCPUFeatures
H
string
<string>*
Comma separated list of CPU features that will be enabled for runtime checks. The native image may check at run time if such features are supported by the target CPU, and can optimize certain operations based on this information. If a feature is not supported at run time, a less optimized variant will be executed. Because of the presence of multiple code variants, enabling runtime features can result in larger executables. To completely turn off runtime checked CPU features, set this option to the empty string. The specific options available are target platform dependent. See --list-cpu-features for feature list. The default values are: AMD64: 'AVX,AVX2'; AArch64: ''.
RuntimeCompilationInlineBeforeAnalysis
H
boolean
Perform InlineBeforeAnalysis on runtime compiled methods.
RuntimeSystemAssertions
H
boolean
Enable or disable Java system assertions at run time.
SIMDArithmeticReduceMinLength
H
long
16
Minimum vector length for matching SIMD arithmetic reduce patterns.
SIMDVectorizationCheckLoadGroupProfitability
H
boolean
Check for profitability when grouping memory loads to SIMD loads.
SIMDVectorizationDirectLoadStore
H
boolean
Allow SIMDVectorization to vectorize load to store opportunities when there are no matching SIMD operations between load and store.
SIMDVectorizationSingletons
H
boolean
Enable matching of singleton groups to increase corner-case matching.
SIMDVectorizationVolatileLoads
H
boolean
Allow load grouping to include grouping of volatile loads. Note currently this may generate incorrect results.
SIMDVectorizationVolatileWrites
H
boolean
Allow store grouping to include grouping of volatile writes. Note currently this may generate incorrect results.
SIMDVectorizationWindowSize
H
long
4
Set the number of dominating and dominated blocks scanned per block.
SafepointCheckInEpilogue
H
boolean
Check for safepoints in method epilogue.
SafepointSamplerStats
H
string
Dump some stats about the safepoint sampler into a file on this path.
SamplingCollect
H
boolean
Perform profiling by sampling the AOT compiled code to collect data for profile-guided optimization.
SaveProfiles
H
boolean
Save per compilation profile information.
SaveProfilesPath
H
string
None
Path for saving compilation profiles. If the value is omitted the debug dump path will be used.
ScanObjectsParallel
H
boolean
Object scanning in parallel.
ScheduledDuplicationSimulation
H
boolean
Simulation can either only process fixed nodes or schedule the graph and also process floating nodes.
SerializationConfigurationFiles
H
string
<path>*
One or several (comma-separated) paths to JSON files that specify lists of serialization configurations.
SerializationConfigurationResources
H
string
<string>*
Resources describing program elements to be made available for serialization (see SerializationConfigurationFiles).
SerializationDenyConfigurationFiles
H
string
<path>*
One or several (comma-separated) paths to JSON files that specify lists of serialization configurations.
SerializationDenyConfigurationResources
H
string
<string>*
Resources describing program elements that must not be made available for serialization.
ServiceLoaderFeatureExcludeServiceProviders
H
string
<string>*
Comma-separated list of service providers that should be excluded.
ServiceLoaderFeatureExcludeServices
H
string
<string>*
Comma-separated list of services that should be excluded.
SharedLibrary
H
boolean
Build shared library.
ShowConfiguration
H
string
none
Writes to the VM log information about the compiler configuration selected.
ShowDumpFiles
H
boolean
Print the name of each dump file path as it's created.
ShowSubstitutionSourceInfo
H
boolean
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.
SignalHandlerBasedExecutionSampler
H
boolean
Determines if JFR uses a signal handler for execution sampling.
SimulateClassInitializer
H
boolean
Simulate the effects of class initializer at image build time, to avoid class initialization at run time.
SimulateClassInitializerCollectAllReasons
H
boolean
Configuration for SimulateClassInitializer: Collect all reasons why a class initializer cannot be simulated.
SimulateClassInitializerMaxAllocatedBytes
H
long
40000
Configuration for SimulateClassInitializer: Maximum number of bytes allocated in the image heap for each class initializer.
SimulateClassInitializerMaxInlineDepth
H
long
200
Configuration for SimulateClassInitializer: Maximum inlining depth during simulation.
SimulateClassInitializerMaxLoopIterations
H
long
2000
Configuration for SimulateClassInitializer: Maximum number of loop iterations that are unrolled during simulation.
SimulationBasedLoopPeeling
H
boolean
Use DBDS algorithm to simulate the impact of peeling on a loop.
SimulationPruneUnlikelyBranches
H
boolean
Ignore low frequency branches during simulation.
SizeForIPEAFrequencyDecrease
H
long
500
Size of the IR that forces a reduction in the number of IPEA runs made.
SmallCompiledLowLevelGraphSize
H
long
330
If the previous low-level graph size of the method exceeds the threshold, it is not inlined.
SmallGraphDuplicationBudgetFactor
H
double
1
See 'DuplicationBudgetFactor': for small graphs.
SmallGraphSize
H
long
2000
Node cost graph size for a graph to be considered 'small'.
SmallRootIrPenaltyCoefficient
H
double
0.02
Reduces the likelihood of exploring call graphs with IR size much larger than the root.
SnippetCounters
H
boolean
Enable counters for various paths in snippets.
SoftRefLRUPolicyMSPerMB
H
long
1000
This number of milliseconds multiplied by the free heap memory in MByte is the time span for which a soft reference will keep its referent alive after its last access. Serial GC only.
SourceLevelDebug
H
boolean
Preserve the local variable information for every Java source line to allow line-by-line stepping in the debugger. Allow the lookup of Java-level method information, e.g., in stack traces.
SourceLevelDebugFilter
H
string
<string>*
Constrain debug info generation to the comma-separated list of package prefixes given to this option.
SpawnIsolates
H
boolean
Support multiple isolates.
SpectrePHTBarriers
H
string
None
Select a strategy to mitigate speculative bounds check bypass (aka Spectre-PHT or Spectre V1).
SpectrePHTIndexMasking
H
boolean
Mask indices to scope access to allocation size after bounds check.
SpeculativeExecutionBarriers
H
boolean
Stop speculative execution on all branch targets with execution barrier instructions.
SpeculativeGuardMovement
H
boolean
Move loop invariant guards (e.g., array bounds checks) out of loops.
SpeculativeStoreCheck
H
boolean
Speculates that arrays have exact type to optimize store checks.
StackOverflowCheckInPrologue
H
boolean
Check for stack overflow in method prologue.
StackRedZoneSize
H
long
8192
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.
StackTrace
H
boolean
Deprecated, has no effect.
StackYellowZoneSize
H
long
32768
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.
StaticExecutable
H
boolean
Build statically linked executable (requires static libc and zlib).
StaticExecutableWithDynamicLibC
H
boolean
Builds a statically linked executable with libc dynamically linked.
StaticLibStdCpp
H
boolean
Builds image with libstdc++ statically linked into the image (if needed).
StrengthenGraphWithConstants
H
boolean
Perform constant folding in StrengthenGraphs.
StressExplicitExceptionCode
H
boolean
Stress the code emitting explicit exception throwing code.
StressInvokeWithExceptionNode
H
boolean
Stress the code emitting invokes with explicit exception edges.
StressTestEarlyReads
H
boolean
Stress the code by emitting reads at earliest instead of latest point.
StrictConfiguration
H
boolean
When configuration files do not match their schema, abort the image build instead of emitting a warning.
StrictDeoptInsertionChecks
H
boolean
Perform checks that guards and deopts aren't introduced in graphs that should handle exceptions explicitly.
StrictImageHeap
H
boolean
Enable the strict image heap mode that allows all classes to be used at build-time but also requires types of all objects in the heap to be explicitly marked for build-time initialization.
StrictProfiles
H
boolean
Throw an error if an attempt is made to overwrite/update a profile loaded from disk.
StrictQueryCodeCompilation
H
boolean
Use strict checks when performing query code compilation.
StringIndexOfConstantLimit
H
long
4096
String.indexOf invocations will be evaluated at compile time if the receiver is a constant and its length is smaller than this value.
StripDebugInfo
H
boolean
Use a separate file for debug info.
StripMineALot
H
boolean
Force strip mining of all loops that can be strip mined.
StripMineCountedLoops
H
boolean
StripMineInvertedLoops
H
boolean
Strip mine inverted loops.
StripMineNonCountedLoops
H
boolean
SubstitutionChecksumResult
H
string
None
Instead of reporting substitution mismatches on the command line, write the result to the specified JSON file.
SupportCompileInIsolates
H
boolean
Support runtime compilation in separate isolates (enable at runtime with option CompileInIsolates).
SupportJsrBytecodes
H
boolean
SupportOSRWithLocks
H
boolean
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.
SupportPredefinedClasses
H
boolean
Enable support for predefining additional classes.
SupportRecurringCallback
H
boolean
Support a per-thread timer that is called at a specific interval.
SuppressStderr
H
boolean
Suppress console error output for unittests.
SuppressStdout
H
boolean
Suppress console normal output for unittests.
SystemicCompilationFailureRate
H
long
1
Compilation failure rate indicating a systemic compilation problem that will issue a warning. The value is made absolute and clamped to produce P, a value between 0 and 100. Systemic failure is detected if the percent of failing compilations in a sliding time window > P. A negative value will cause the VM to exit after issuing the warning. Set to 0 to disable systemic compilation problem detection.
TargetPlatform
H
string
Selects native-image compilation target (in <OS>-<architecture> format). Defaults to host's OS-architecture pair.
TempDirectory
H
string
<path>*
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.
ThrowLinkAtBuildTimeIOExceptions
H
boolean
Instead of warning, throw IOExceptions for link-at-build-time resources at build time.
ThrowMissingRegistrationErrors
H
string
<string>*
Throw Native Image-specific errors when trying to access an element that has not been registered.
ThrowMissingRegistrationErrorsPaths
H
string
<string>*
Trigger missing registration errors from all types in the given class or module-path entries.
ThrowUnsafeOffsetErrors
H
boolean
Throw unsafe operation offset errors.
Time
H
string
None
Pattern for specifying scopes in which timing is enabled. See the Dump option for the pattern syntax. An empty value enables all timers unconditionally.
TimeStampProfiling
H
boolean
Profile method execution time.
TimedDynamicCounters
H
long
-1
Turn on the benchmark counters, and displays the results every n milliseconds.
Timers
H
string
None
Comma separated names of timers that are enabled irrespective of the value for Time option. An empty value enables all timers unconditionally.
TraceBytecodeParserLevel
H
long
0
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.
TraceClassInitialization
H
string
<string>*
Comma-separated list of fully-qualified class names that class initialization is traced for.
TraceDuplicatedMethods
H
boolean
Trace duplicated methods.
TraceEscapeAnalysis
H
boolean
TraceExceptionHandlerStub
H
boolean
Trace execution of stub used to handle an exception thrown by a callee.
TraceInlineDuringParsing
H
boolean
Traces inlining performed during bytecode parsing.
TraceInlining
H
boolean
Enable tracing of inlining decisions.
TraceInliningForStubsAndSnippets
H
boolean
Enable inlining decision tracing in stubs and snippets.
TraceLIRGeneratorLevel
H
long
0
The trace level for the LIR generator.
TraceLocalizationFeature
H
boolean
When enabled, localization feature details are printed.
TraceLoggingFeature
H
boolean
When enabled, logging feature details are printed.
TraceMonitorsMethodFilter
H
string
None
Trace monitor operations in methods whose fully qualified name contains this substring.
TraceMonitorsTypeFilter
H
string
None
Trace monitor operations on objects whose type contains this substring.
TraceNativeToolUsage
H
boolean
Trace all native tool invocations as part of image building.
TraceObjectInstantiation
H
string
<string>*
Comma-separated list of fully-qualified class names that object instantiation is traced for.
TraceParserPlugins
H
boolean
Traces use of plugins during bytecode parsing.
TraceSecurityServices
H
boolean
Enable tracing of security services automatic registration.
TraceUnwindStub
H
boolean
Trace execution of the stub that routes an exception to a handler in the calling frame.
TraceVMOperations
H
boolean
Trace VMOperation execution.
TrackAccessChain
H
boolean
Track the callers for methods and accessing methods for fields.
TrackGraphSizesInDuplication
H
boolean
Enable (if Count is enabled) graph size tracking during every duplication iteration.
TrackIPEAStatistics
H
string
none
Track IPEA statistics in substratePriorityInliner.
TrackInliningStatistics
H
string
none
Track inlining statistics (inlining duration, call tree size, compiler node counts, and the number of callsites). One of: none, interactive.
TrackInputFlows
H
boolean
Track the input for type flows.
TrackMemUse
H
string
None
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.
TrackNodeInsertion
H
boolean
Track source stack trace where a node was inserted into the graph.
TrackNodeSourcePosition
H
boolean
Track the NodeSourcePosition.
TrackPrimitiveValues
H
boolean
Track primitive values using the infrastructure of points-to analysis.
TreatRuntimeCodeInfoReferencesAsWeak
H
boolean
Determines if references from runtime-compiled code to Java heap objects should be treated as strong or weak.
TrivialInliningSize
H
long
10
Graphs with less than this number of nodes are trivial and therefore always inlined.
TrivialLoopSizeLimitForPeeling
H
double
512
Loop peeling will consider any loop with a size (in terms of estimated machine instructions) below this value to be a prime candidate for peeling. Larger loops will only be considered for peeling if the simulated benefit of peeling is relatively high. The larger the loop, the greater the expected benefit has to be.
TruffleCompilerConfiguration
H
string
None
Select a compiler configuration for Truffle compilation (default: use Graal system compiler configuration).
TruffleHostInlining
H
boolean
Whether Truffle host inlining is enabled.
TruffleHostInliningBaseBudget
H
long
5000
Maximum budget for Truffle host inlining for runtime compiled methods.
TruffleHostInliningByteCodeInterpreterBudget
H
long
100000
Maximum budget for Truffle host inlining for runtime compiled methods with a BytecodeInterpreterSwitch annotation.
TruffleHostInliningMaxExplorationDepth
H
long
1000
Determines the maximum call depth for exploration during host inlining.
TruffleHostInliningMaxSubtreeInvokes
H
long
20
Maximum number of subtree invokes for a subtree to get inlined until it is considered too complex.
TruffleHostInliningMinFrequency
H
double
0.001
Minimum relative frequency for calls to get inlined. Default 0.001 on HotSpot and no minimum frequency on SVM.
TruffleHostInliningPrintExplored
H
boolean
When logging is activated for this phase enables printing of only explored, but ultimately not inlined call trees.
TruffleImmutableFrameFields
H
boolean
Whether Truffle should mark final frame fields as immutable.
TruffleTrustedNonNullCast
H
boolean
Whether Truffle trusted non-null casts are enabled.
TruffleTrustedTypeCast
H
boolean
Whether Truffle trusted type casts are enabled.
TrustFinalDefaultFields
H
boolean
Determines whether to treat final fields with default values as constant.
TryExplodeOverPhis
H
boolean
PullThroughPhiOptimization: Enable floating node duplication over multiple phi nodes at once.
TryPhiPhiPulls
H
boolean
PullThroughPhiOptimization: Enable floating node duplication over phis where the target node has different phis as input.
TuneInlinerExploration
H
double
0
Increases or decreases the time spent exploring inlining opportunities under the assumption that more time results in better peak performance and less time reduces time to reach (a lower) peak performance. The value of the option is clamped between -1 and 1 inclusive. Anything below 0, reduces the exploration time and anything above 0 increases exploration time. Note that this option is only a heuristic and should be tuned for any specific application.
TypeCheckMaxHints
H
long
2
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.
TypeCheckMinProfileHitProbability
H
double
0.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.
TypeFlowPrinterInRadius
H
long
0
How many levels of inputs to print. A value of 0 prints only the target flow.
TypeFlowPrinterOutRadius
H
long
0
How many levels of outputs to print. A value of 0 prints only the target flow.
TypeFlowSaturationCutoff
H
long
20
The maximum number of types recorded in a type flow. -1 indicates no limitation.
TypicalCallGraphSize
H
long
100
Denotes the call graph size that is considered medium size.
TypicalGraphSize
H
long
3250
The typical graph size at which inlining pressure must start growing.
TypicalGraphSizeInvokeBonus
H
long
70
The increase in estimated typical graph size after inlining, per each extra invoke.
TypicalGraphSizeMax
H
long
15000
The maximum in estimated inlined typical graph size.
UnlockExperimentalVMOptions
H
boolean
Enable and disable normal processing of flags relating to experimental options.
UnresolvedIsError
H
boolean
Deprecated, option no longer has any effect.
UnrollEmptyLoops
H
boolean
Unroll empty loops.
UnrollInvertedLoops
H
boolean
Unroll inverted (tail counted) loops.
UnrollMaxIterations
H
long
16
UnrollMultiEndLoops
H
boolean
Unroll loops with multiple loop ends.
UnrollMultiExitLoops
H
boolean
Unroll loops with multiple loop exits.
UnsafeOffsetWarningsAreFatal
H
boolean
Print unsafe operation offset warnings.
UseApplicationCodeSourceLocation
H
boolean
Return the application path as the Class.getProtectionDomain().getCodeSource().getLocation() for all classes that have no explicit ProtectionDomain.
UseBranchesWithin32ByteBoundary
H
boolean
Force branch instructions to align with 32-bytes boundary, to mitigate the jcc erratum. See https://www.intel.com/content/dam/support/us/en/documents/processors/mitigations-jump-conditional-code-erratum.pdf for more details. If not set explicitly, the default value will be determined according to the CPU model.
UseCAPCache
H
boolean
Indicate the C Annotation Processor to use previously cached native information when generating C Type information.
UseCalleeSavedRegisters
H
boolean
Use callee saved registers to reduce spilling for low-frequency calls to stubs (if callee saved registers are supported by the architecture).
UseCompilationStatistics
H
boolean
Enables CompilationStatistics.
UseCompressedReferenceShift
H
boolean
Use bit-shifting to enlarge the address range with narrow references.
UseCompressedReferences
H
boolean
Use compressed references (32-bit instead of 64-bit references to Java objects).
UseContainerSupport
H
boolean
Enable detection and runtime container configuration support.
UseDedicatedVMOperationThread
H
boolean
Determines if VM operations should be executed in a dedicated thread.
UseDirectCallTrampolinesALot
H
boolean
Force many trampolines to be needed for inter-method calls. Normally trampolines are only used when a method destination is outside the range of a pc-relative branch instruction.
UseEpsilonGC
H
boolean
Use a no-op GC.
UseExceptionProbability
H
boolean
UseExperimentalReachabilityAnalysis
H
boolean
Use experimental Reachability Analysis instead of points-to.
UseG1GC
H
boolean
Determines if the G1 garbage collector should be used.
UseGraphCache
H
boolean
Turn on graph caching.
UseIPEA
H
boolean
Use InterproceduralPartialEscapeAnalysisPhase in priorityInliner.
UseImagebuildDebugSections
H
boolean
Emit debuginfo debug.svm.imagebuild.* sections with detailed image-build options.
UseLibC
H
string
None
Selects the libc implementation to use. Available implementations: glibc, musl, bionic.
UseLoopEndFrequencies
H
boolean
Derive loop frequencies only from backedge frequencies instead of from loop exit frequencies.
UseLoopLimitChecks
H
boolean
UseMethodChecks
H
boolean
Perform method-based checks during inlining.
UseMonitorFastPath
H
boolean
Use thin locking fast path in snippets.
UseNullRegion
H
boolean
Determines if a null region is present between the heap base and the image heap.
UseOldMethodHandleIntrinsics
H
boolean
Force using legacy method handle intrinsics.
UsePartialEscapeSelectiveInlining
H
boolean
Use PartialEscapeSelectiveInliningPhase to give PartialEscape phase more opportunities.
UsePriorityInlining
H
boolean
Use priority-based inlining.
UsePriorityInliningPEA
H
boolean
Turn on partial escape analysis during inlining.
UseReachabilityMethodSummaries
H
boolean
Use method summaries for Reachability Analysis.
UseRememberedSet
H
boolean
Determines if a remembered sets is used, which is necessary for collecting the young and old generation independently.
UseSerialGC
H
boolean
Use a serial GC.
UseServiceLoaderFeature
H
boolean
Automatically register services for run-time lookup using ServiceLoader.
UseSnippetGraphCache
H
boolean
Use a cache for snippet graphs.
UseSnippetTemplateCache
H
boolean
Use a LRU cache for snippet templates.
UseStringInlining
H
boolean
Determines if the string inlining optimization should be used.
UseTLAB
H
boolean
Use thread-local object allocation. G1 GC only.
UseThinLocking
H
boolean
Use thin locking to optimize monitor operations.
UseTrappingNullChecks
H
boolean
Use traps for null checks instead of explicit null-checks.
UseTypeCheckHints
H
boolean
VMContinuations
H
boolean
Support for continuations which are used by virtual threads. If disabled, virtual threads can be started but each of them is backed by a platform thread.
VTunePath
H
string
Path to VTune installation (usually /opt/intel/oneapi/vtune/latest/ or /opt/intel/vtune_amplifier).
VectorFoldMinIterations
H
long
4
Only generate SIMD loops for vector folds expected to iterate at least this many times.
VectorIntrinsics
H
boolean
Enable vectorized array copy intrinsics.
VectorPolynomialIntrinsics
H
boolean
Enable vectorized polynomial intrinsics.
VectorUnroll
H
long
1
Unroll vectorized loops.
Vectorization
H
boolean
Enable vectorization.
VectorizeAllocation
H
boolean
Enable vectorized array initialization.
VectorizeConditional
H
boolean
Enable vectorization of conditional code.
VectorizeDeopts
H
boolean
Enable vectorization of loops with conditional deopts before writes.
VectorizeFoldShaped
H
boolean
Enable vectorization of loops implementing a higher-order 'fold' function.
VectorizeGather
H
boolean
Enable vectorization of vector gather operations.
VectorizeHashes
H
boolean
Enable vectorization of hashCode patterns.
VectorizeIntegerMinMax
H
boolean
Enable vectorization of integer min/max operations.
VectorizeLoops
H
boolean
Enable vectorization of loops.
VectorizeMapShaped
H
boolean
Enable vectorization of loops implementing a higher-order 'map' function.
VectorizeNegativeStride
H
boolean
Enable vectorization of loops with negative strides.
VectorizeReachabilityFences
H
boolean
Enable vectorization of loops with reachability fences.
VectorizeSIMD
H
boolean
Enable detection of SIMD patterns.
VectorizeSafepoints
H
boolean
Enable vectorization of loops with safepoints.
VectorizeSequence
H
boolean
Enable vectorization of sequence values.
Verify
H
string
None
Pattern for specifying scopes in which logging is enabled. See the Dump option for the pattern syntax.
VerifyAfterGC
H
boolean
Verify the heap after doing a garbage collection if VerifyHeap is enabled. Serial GC only.
VerifyBalancedMonitors
H
boolean
Emit extra code to dynamically check monitor operations are balanced.
VerifyBeforeGC
H
boolean
Verify the heap before doing a garbage collection if VerifyHeap is enabled. Serial GC only.
VerifyDeoptimizationEntryPoints
H
boolean
Verify that all possible deoptimization entry points have been properly compiled and registered in the metadata.
VerifyDuplicationOperations
H
boolean
VerifyGraalGraphEdges
H
boolean
Perform expensive verification of graph inputs, usages, successors and predecessors.
VerifyGraalGraphs
H
boolean
Verify graphs often during compilation when assertions are turned on.
VerifyGraalPhasesSize
H
boolean
Verify before - after relation of the relative, computed, code size of a graph.
VerifyHeap
H
boolean
Verify the heap before and after each collection.
VerifyHeapAtReturn
H
boolean
Perform platform dependent validation of the Java heap at returns.
VerifyKillCFGUnusedNodes
H
boolean
Verify that there are no new unused nodes when performing killCFG.
VerifyLoopVectorization
H
boolean
Run expensive checks to verify the graph after loop vectorization.
VerifyNamingConventions
H
boolean
Verify naming conventions during image construction.
VerifyPhases
H
boolean
VerifyReferences
H
boolean
Verify all object references if VerifyHeap is enabled. Serial GC only.
VerifyReferencesPointIntoValidChunk
H
boolean
Verify that object references point into valid heap chunks if VerifyHeap is enabled. Serial GC only.
VerifyRememberedSet
H
boolean
Verify the remembered set if VerifyHeap is enabled. Serial GC only.
VerifySubstitutionChecksum
H
string
None
Verify substitution checksums in the specified directory.
VerifyTypes
H
boolean
Verify type states computed by the static analysis at run time. This is useful when diagnosing problems in the static analysis, but reduces peak performance significantly.
VerifyWriteBarrierElimination
H
boolean
Add code to verify that eliminated barriers weren't needed.
VerifyWriteBarriers
H
boolean
Verify write barriers. Serial GC only.
Virtualize
H
string
Build the native image for a virtualized environment. The argument is a path to a JSON file that specifies the virtualized environment properties.
WarnAboutCodeSignatureMismatch
H
boolean
Print to stdout when a compilation performed with different profiles generates different backend code.
WarnAboutGraphSignatureMismatch
H
boolean
Print to stdout when a compilation performed with different profiles generates different frontend IR.
WarnAboutMissingReflectionOrJNIMetadataElements
H
boolean
Warn when reflection and JNI configuration files have elements that could not be found on the classpath or modulepath.
WarnAboutNotCachedLoadedAccess
H
boolean
Print to stdout when requesting profiling info not present in a loaded profile.
WarnMissingIntrinsic
H
boolean
Print a warning when a missing intrinsic is seen.
WriteSinkingExcludeFields
H
string
None
Exclude certain fields from write sinking. Fields are specified with the same syntax as method filters, minus the signature part.
WriteSubstitutionChecksum
H
string
None
Write substitution checksums to the specified directory.
ZapChunks
H
boolean
Fill unused memory chunks with a sentinel value. Serial and epsilon GC only.
ZapConsumedHeapChunks
H
boolean
After use, Fill memory chunks with a sentinel value. Serial and epsilon GC only.
ZapProducedHeapChunks
H
boolean
Before use, fill memory chunks with a sentinel value. Serial and epsilon GC only.
ZapStackOnMethodEntry
H
boolean
AbortOnBenchmarkCounterOverflow
R
boolean
Abort VM with SIGILL if benchmark counters controlled by the (Generic|Timed|Benchmark)DynamicCounters.
ActiveProcessorCount
R
long
-1
Overwrites the available number of processors provided by the OS. Any value < 0 means using the processor count from the OS.
AggregatedMetricsFile
R
string
None
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.
AliasArrayTypeFlows
R
boolean
Model all array type flows using a unique elements type flow abstraction.
AllocationProfilingThreshold
R
long
1048576
The minimum size in bytes required for printing an allocation profiling entry.
AllocationSiteSensitiveHeap
R
boolean
A context sensitive heap means that each heap allocated object is modeled by using at least the allocation site.
AlwaysInlineIntrinsics
R
boolean
Unconditionally inline intrinsics.
AlwaysInlineVTableStubs
R
boolean
AlwaysPreTouch
R
boolean
Force all freshly committed pages to be pre-touched. G1 GC only.
AnalysisContextSensitivity
R
string
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).
AnalysisSizeCutoff
R
long
8
The maximum size of type and method profiles returned by the static analysis. -1 indicates no limitation.
ArrayRegionEqualsConstantLimit
R
long
4096
Array region equality checks will be evaluated at compile time if the receiver is a constant and its length is smaller than this value.
AutomaticReferenceHandling
R
boolean
Determines if the reference handling is executed automatically or manually.
BaseTargetSpending
R
long
120
The base target spending used to estimate the inlining threshold; the higher, the likelier it is to inline.
BenchmarkCounterPrintingCutoff
R
boolean
Use a cutoff to print only most significant counters.
BenchmarkCountersDumpDynamic
R
boolean
Dump dynamic counters.
BenchmarkCountersDumpStatic
R
boolean
Dump static counters.
BenchmarkCountersFile
R
string
None
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.
BenchmarkDynamicCounters
R
string
None
Turn on the benchmark counters. The format of this option is:.
BlindConstants
R
boolean
Blind constants in code with a random key.
BootstrapInitializeOnly
R
boolean
Do not compile anything on bootstrap but just initialize the compiler.
BootstrapTimeout
R
double
15
Maximum time in minutes to spend bootstrapping (0 to disable this limit).
BootstrapWatchDogCriticalRateRatio
R
double
0.25
Ratio of the maximum compilation rate below which the bootstrap compilation rate must not fall (0 or less disables monitoring).
BreakChainedPhis
R
boolean
Break chained phis.
CAIAggressivelyOptimizeHot
R
boolean
Perform more aggressive optimization on compilation units deemed to be hot.
CAIApplyProfilesWhileExpanding
R
boolean
Apply sampling based profiles to candidates for inlining before doing the inlining.
CAIHotBonusWhileExpanding
R
long
50
Apply a bonus to the priority of hot cutoff nodes during exploration. Set to 0 to disable.
CAIHotBonusWhileInlining
R
long
0
Apply a bonus to the priority of hot nodes during inlining. Set to 0 to disable.
CMoveALot
R
boolean
Perform CMove transformation on every IfNode possible.
CallGraphCompilerNodeLimit
R
long
35000
Controls the maximum number of compiler nodes that can appear in the call graph.
CallGraphSizeLimit
R
long
1200
Controls the maximum size of the call graph before ceasing inlining.
CallGraphSizePenaltyCoefficient
R
double
0.01
Reduces the likelihood of exploring call graph subtrees that are large.
CanonicalGraphStringsCheckConstants
R
boolean
Exclude virtual nodes when dumping canonical text for graphs.
CanonicalGraphStringsExcludeVirtuals
R
boolean
Exclude virtual nodes when dumping canonical text for graphs.
CanonicalGraphStringsRemoveIdentities
R
boolean
Attempts to remove object identity hashes when dumping canonical text for graphs.
CanonicalizerVerifyGVNAllowed
R
boolean
Verify if the current graph state allows GVN to be performed.
ClearMetricsAfterBootstrap
R
boolean
Clear the debug metrics after bootstrap.
CollectImageBuildStatistics
R
boolean
Collect information during image build about devirtualized invokes and bytecode exceptions.
CollectYoungGenerationSeparately
R
boolean
Determines if a full GC collects the young generation separately or together with the old generation. Serial GC only.
CompilationBailoutAsFailure
R
boolean
Treat compilation bailouts like compilation failures.
CompilationCountLimit
R
long
0
The number of compilations allowed for any method before the VM exits (a value of 0 means there is no limit).
CompilationExcludePhases
R
string
None
Exclude certain phases from compilation, either unconditionally or with a method filter. Multiple exclusions can be specified separated by ':'. Phase names are matched as substrings, e.g.: CompilationExcludePhasesPartialEscape:LoopA.*,B.foo excludes PartialEscapePhase from all compilations and any phase containing 'Loop' in its name from compilations of all methods in class A and of method B.foo.
CompilationExpirationPeriod
R
double
300
Time limit in seconds before a compilation expires (0 to disable the limit). A non-zero value for this option is doubled if assertions are enabled and quadrupled if DetailedAsserts is true.
CompilationFailureAction
R
string
Silent
Specifies the action to take when compilation fails.
CompilationIsolateAddressSpaceSize
R
long
0
Size of the reserved address space of each compilation isolate (0: default for new isolates).
CompilationNoProgressPeriod
R
double
30
Time limit in seconds before a compilation expires (0 to disable the limit) because no progress was made in the compiler.
CompilationNoProgressStartTrackingProgressPeriod
R
double
10
Delay in seconds before compilation progress detection starts.
CompilationWatchDogStartDelay
R
long
0
Delay in seconds before watch dog monitors a compilation (0 disables monitoring).
CompilationWatchDogVMExitDelay
R
long
0
Number of seconds after which a compilation appearing to make no progress causes the VM to exit (0 disables VM exiting).
CompileGraalWithC1Only
R
boolean
In tiered mode compile Graal and JVMCI using optimized first tier code.
CompileInIsolates
R
boolean
Activate runtime compilation in separate isolates (enable support during image build with option SupportCompileInIsolates).
CompileInPerThreadReusedIsolates
R
boolean
Create one reusable isolate per compilation thread as opposed to one isolate per compilation (enable through CompileInIsolates).
CompilerConfiguration
R
string
None
Names the 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.
CompilerNodePenaltyCoefficient
R
double
0.006
Controls the likelihood of exploring subtrees that already have a lot of code during inlining.
ConcGCThreads
R
long
0
Number of concurrent GC threads G1 will use.
ConditionalElimination
R
boolean
ConditionalEliminationBeforeAnalysis
R
boolean
Run conditional elimination before static analysis.
ConditionalEliminationMaxIterations
R
long
4
ConsiderVectorizableLoops
R
boolean
Consider the vectorizability of loop during the duplication of a merge inside a loop.There are rare cases where duplication can destroy vectorization.
CostNewLiveVariable
R
long
4
PullThroughPhiOptimization: Abstract cost for the creation of a new live value: new values can have a negativeimpact on register allocation, therefore we penalize it.
CostReductionFactor
R
double
32
PullThroughPhiOptimization: Cost/Benefit heuristic for EE floating node duplication: reduce cost by a constant factor when comparing with relative benefit.
CostReductionFactorHotCode
R
double
128
See CostReductionFactor.
Count
R
string
None
Pattern for specifying scopes in which counters are enabled. See the Dump option for the pattern syntax. An empty value enables all counters unconditionally.
CountedStripMiningBudget
R
double
0.1
Code size budget of the strip mining transformation in terms of NodeCostSize.
CountedStripMiningBudgetHotCode
R
double
2.5
See CountedStripMiningBudget.
CountedStripMiningInnerLoopTrips
R
long
4096
The max number of iterations the counted inner loop takes.
CountedStripMiningLogCounters
R
boolean
Print counter phi values on each outer and inner loop iteration.
CountedStripMiningMinFrequency
R
long
4
Minimal frequency to consider a loop for strip mining.
CountedStripMiningNodeSizeSmallGraphs
R
long
2000
Code size in NodeSize defining when code size heuristics starts capping strip mining.
Counters
R
string
None
Comma separated names of counters that are enabled irrespective of the value for Count option. An empty value enables all counters unconditionally.
CrashAt
R
string
None
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.
CutoffCodeSizePenaltyCoefficient
R
double
0.00001
Controls the likelihood of further exploring subtrees with a lot of code during inlining.
DebugPeelingSynonyms
R
boolean
Debug simulation synonyms during simulation-based loop peeling.
DebugStubsAndSnippets
R
boolean
Enable debug output for stub code generation and snippet preparation.
DefaultLoopFrequency
R
double
100
Default frequency for loops with unknown local frequency.
DefaultUnswitchFactor
R
double
0.7
Default unswitching factor for control split node with unkown profile data.
DeoptALot
R
boolean
DeoptAfterOSR
R
boolean
Deoptimize OSR compiled code when the OSR entry loop is finished if there is no mature profile available for the rest of the method.
DeoptsToDisableOptimisticOptimization
R
long
40
DetailedAsserts
R
boolean
Enable expensive assertions if normal assertions (i.e. -ea or -esa) are enabled.
DetectInvertedLoopsAsCounted
R
boolean
DevirtualizeHotCallees
R
boolean
Devirtualizes callees that are hot.
DiagnoseDumpLevel
R
string
:3
Specify the dump level if CompilationFailureAction#Diagnose is used.See CompilationFailureAction for details. file:doc-files/CompilationFailureActionHelp.txt.
DiagnosticDetails
R
string
Specifies how many details are printed for certain diagnostic thunks, e.g.: 'DumpThreads:1,DumpRegisters:2'. A value of 1 will result in the maximum amount of information, higher values will print less information. By default, the most detailed output is enabled for all diagnostic thunks. Wildcards (*) are supported in the name of the diagnostic thunk.
DisableExplicitGC
R
boolean
Ignore calls to System.gc().
DisableIntercept
R
boolean
Disable intercepting exceptions in debug scopes.
DisableIntrinsics
R
string
None
Disable intrinsics matching the given method filter (see MethodFilter option for details). For example, 'DisableIntrinsicsString.equals' disables intrinsics for any method named 'equals' in a class whose simple name is 'String'. You can append ':verbose' at the end of the filter value to print out disabled intrinsics as they are encountered during compilation (e.g., 'String.equals:verbose').
DominatorUsageTreeMaxDepth
R
long
16
Dump
R
string
None
Filter pattern for specifying scopes in which dumping is enabled.
DumpAfterEveryBCI
R
boolean
Dump the current graph after every bci to IGV.
DumpAfterEveryLowering
R
boolean
Dump lowering after every node to igv.
DumpDetailedNodeTypeStats
R
boolean
Gather statistics on local variables and their lifetimes relative to FrameStates.
DumpEndVersusExitLoopFrequencies
R
boolean
Debug flag to dump loop frequency differences computed based on loop end or exit nodes.If the frequencies diverge a lot, this may indicate missing profiles on control flowinside the loop body.
DumpHeapAndExit
R
boolean
Create a heap dump and exit.
DumpMethodsData
R
boolean
Dump a JSON array containing all methods included in the image and exit.
DumpOnError
R
boolean
Send compiler IR to dump handlers on error.
DumpOnPhaseChange
R
string
None
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.
DumpPath
R
string
graal_dumps
The directory where various Graal dump files are written.
DumpingErrorsAreFatal
R
boolean
Treat any exceptions during dumping as fatal.
DuplicateALot
R
boolean
Perform Duplications as long as there is any sane improvement.
DuplicateMethods
R
boolean
Enable or Disable the Hot method duplication phase.
DuplicationBudgetFactor
R
double
0.25
Percentage in node cost graph size for the duplication budget. Computed relative to the methods code size.
DuplicationBudgetFactorHotCode
R
double
2.5
See DuplicationBudgetFactor.
DuplicationBudgetFactorLate
R
double
0.5
Percentage in node cost graph size for the late duplication budget. Computed relative to the methods code size.
DuplicationCostReductionFactor
R
long
64
Cost/Benefit heuristic for EE simulation-based code duplication: reduce cost by a constant factor when comparing with relative benefit.
DuplicationCostReductionFactorHotCode
R
long
256
See DuplicationCostReductionFactor.
DuplicationMinBranchFrequency
R
double
0.66
Ignore low frequency branches during duplication.
DynamicCountersPrintGroupSeparator
R
boolean
Use grouping separators for number printing.
EEPeelAlot
R
boolean
EagerSnippets
R
boolean
Eagerly construct extra snippet info.
EarlyCodeEmissionOrder
R
boolean
Enable early code emission order computation instead of late code emission order computation.
EarlyExpandCheckCast
R
boolean
Try to improve code generation by making checkcast operations better optimizable early in the compilation pipeline.
EarlyGVN
R
boolean
Perform early global value numbering.
EarlyLICM
R
boolean
Perform early loop invariant code motion.
EmitStringSubstitutions
R
boolean
Emit substitutions for String methods.
EnableSignalHandling
R
boolean
Enables signal handling.
EnterpriseCloneReadElimination
R
boolean
Try to eliminate array clone operations by handling clone operations in early read elimination.
EnterpriseEAIterations
R
long
3
Enterprise PEA Iterations.
EnterpriseEarlyGVN
R
boolean
Perform an extended version of early global value numbering on a graph.Considers only graphs without floating guards.
EnterpriseEarlyInversionGVN
R
boolean
Enterprise Loop Inversion for GVN.
EnterpriseExactIVOpt
R
boolean
Try to improve counted loop detection by specially handling math exact operations with code duplication.
EnterprisePartialUnroll
R
boolean
Enable EE version of partial loop unrolling that considers more loop shapes for unrolling.
EnterpriseRCELogRangeCheckValues
R
boolean
Log all range check sub values to stdout.
EnterpriseRangeCheckElimination
R
boolean
Perform range check elimination for java long type range checks.
EnterpriseReadElimination
R
boolean
Run more read eliminations early in the compilation pipeline.
ErgoHeapSizeLimit
R
long
0
Maximum ergonomically set heap size (in bytes); zero means use MaxRAM * MaxRAMPercentage / 100. G1 GC only.
EscapeAnalysisBeforeAnalysis
R
boolean
Run partial escape analysis on compiler graphs before static analysis.
EscapeAnalysisIterations
R
long
2
EscapeAnalysisLoopCutoff
R
long
20
EscapeAnalyzeOnly
R
string
None
ExactFullUnrollMaxNodes
R
long
800
ExactPartialUnrollMaxNodes
R
long
200
ExcludeFunctionFromDuplication
R
string
None
Exclude compilations that MethodFilter.match this string from the duplication optimization.
ExitOnOutOfMemoryError
R
boolean
Exit on the first occurrence of an out-of-memory error that is thrown because the Java heap is out of memory.
ExpandAllProximityBonus
R
double
6
The decrease in call graph expansion pressure when there are few call nodes left to explore.
ExpandAllProximityBonusInertia
R
double
2
The inertia at which the expand-all proximity bonus decreases with the number of yet unexpanded nodes.
ExpansionInertiaBaseValue
R
long
550
The slowness at which the expansion pressure grows with code size; the higher it is, the slower the pressure growth.
ExpansionInertiaInvokeBonus
R
long
14
The extra slowness at which the expansion pressure grows with the code size, for each extra invoke node.
ExpansionInertiaMax
R
long
2000
The max slowness at which the expansion pressure grows with the code size.
ExpectedEdenSize
R
long
33554432
Soft upper limit for used eden size. The hinted GC will be performed if the used eden size exceeds this value.
ExplicitGCInvokesConcurrent
R
boolean
A System.gc() request invokes a concurrent collection. G1 GC only.
ExtendedAsserts
R
boolean
Enable extended asserts which slow down analysis.
FailedLoopExplosionIsFatal
R
boolean
Do not bail out but throw an exception on failed loop explosion.
FallbackExecutorRuntimeJavaArg
R
string
<string>*
Internal option used to specify runtime java arguments for FallbackExecutor.
Try to float non-constant division operations to expose global value numbering of divisions.
ForceAdversarialLayout
R
boolean
Place N-byte constants in the data section such that they are misaligned with respect to N*2. For example, place 4 byte constants at offset 4, 12 or 20, etc. This layout is used to detect instructions that load constants with alignment smaller than the fetch size. For instance, an XORPS instruction that does a 16-byte fetch of a 4-byte float not aligned to 16 bytes will cause a segfault.
ForceDumpGraphsBeforeCompilation
R
boolean
Force-dump graphs before compilation.
ForceExplicitReachabilityFence
R
boolean
Force an explicit compiler node for Reference.reachabilityFence, instead of relying on FrameState liveness.
ForceGuardHoistingLoopDuplicationWithoutPGO
R
boolean
Consider methods for guard hoisting loop duplication even if not using PGO.
ForceUnroll
R
boolean
Force partial unrolling of loops if at all possible.
FrameStateLivenessStatistics
R
boolean
Gather statistics on local variables and their lifetimes relative to FrameStates.
FullUnroll
R
boolean
FullUnrollAsPEACleanup
R
boolean
Perform full unrolling as a Partial Escape Analysis Cleanup.
FullUnrollCodeSizeBudgetFactorForLargeGraphs
R
double
2
Maximum factor by which full unrolling can increase code size for large graphs. The FullUnrollSmallGraphThreshold option determines which graphs are small.
FullUnrollCodeSizeBudgetFactorForSmallGraphs
R
double
10
Maximum factor by which full unrolling can increase code size for small graphs. The FullUnrollSmallGraphThreshold option determines which graphs are small.
FullUnrollConstantCompareBoost
R
long
15
FullUnrollMaxApplication
R
long
60
FullUnrollMaxIterations
R
long
600
FullUnrollMaxNodes
R
long
700
FullUnrollSmallGraphThreshold
R
long
1000
The threshold in terms of NodeSize for a graph to be considered small for the purpose of full unrolling. Applied in conjunction with the FullUnrollCodeSizeBudgetFactorForSmallGraphs and FullUnrollCodeSizeBudgetFactorForLargeGraphs options.
G1ConcMarkStepDurationMillis
R
double
10
Target duration of individual concurrent marking steps in milliseconds.
G1ConcRefinementThreads
R
long
0
The number of parallel remembered set update threads. Will be set ergonomically by default.
G1ConfidencePercent
R
long
50
Confidence level for MMU/pause predictions.
G1HeapWastePercent
R
long
5
Amount of space, expressed as a percentage of the heap size, that G1 is willing not to collect to avoid expensive GCs.
G1MixedGCCountTarget
R
long
8
The target number of mixed GCs after a marking cycle.
G1PeriodicGCInterval
R
long
0
Number of milliseconds after a previous GC to wait before triggering a periodic gc. A value of zero disables periodically enforced gc cycles.
G1PeriodicGCInvokesConcurrent
R
boolean
Determines the kind of periodic GC. Set to true to have G1 perform a concurrent GC as periodic GC, otherwise use a STW Full GC.
G1PeriodicGCSystemLoadThreshold
R
double
0
Maximum recent system wide load as returned by the 1m value of getloadavg() at which G1 triggers a periodic GC. A load above this value cancels a given periodic GC. A value of zero disables this check.
G1RSetUpdatingPauseTimePercent
R
long
10
A target percentage of time that is allowed to be spend on processing remembered set update buffers during the collection pause.
G1RefProcDrainInterval
R
long
1000
The number of discovered reference objects to process before draining concurrent marking work queues.
G1ReservePercent
R
long
10
It determines the minimum reserve we should have in the heap to minimize the probability of promotion failure.
G1SATBBufferEnqueueingThresholdPercent
R
long
60
Before enqueueing them, each mutator thread tries to do some filtering on the SATB buffers it generates. If post-filtering the percentage of retained entries is over this threshold the buffer will be enqueued for processing. A value of 0 specifies that mutator threads should not do such filtering.
G1SATBBufferSize
R
long
1024
Number of entries in an SATB log buffer.
G1UpdateBufferSize
R
long
256
Size of an update buffer.
G1UseAdaptiveIHOP
R
boolean
Adaptively adjust the initiating heap occupancy from the initial value of InitiatingHeapOccupancyPercent. The policy attempts to start marking in time based on application behavior.
G1UseConcRefinement
R
boolean
Control whether concurrent refinement is performed. Disabling effectively ignores G1RSetUpdatingPauseTimePercent.
G1VerifyHeapRegionCodeRoots
R
boolean
Verify the code root lists attached to each heap region.
GCDebugStartCycle
R
long
-1
Start tracing compiled GC barriers after N garbage collections (disabled if N < 0).
GCDrainStackTargetSize
R
long
64
Number of entries we will try to leave on the stack during gc. G1 GC only.
GCPauseIntervalMillis
R
long
201
Time slice for MMU specification. G1 GC only.
GCTimeRatio
R
long
12
Adaptive size policy application time to GC time ratio. G1 GC only.
GenJavaCodeFilter
R
string
None
Generate Java code before high tier lowering for methods that MethodFilter.match this string.
GenJavaCodeSaveDirectory
R
string
None
Path for saving generated Java code. If the value is omitted the debug dump path will be used.
Turn on the benchmark counters, and displays the results on VM shutdown.
GraalArithmeticStubs
R
boolean
Use Graal arithmetic stubs instead of HotSpot stubs where possible.
GraalCompileOnly
R
string
None
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.
GraphCompressionThreshold
R
long
70
Graal graph compression is performed when percent of live nodes falls below this value.
GuardHoistingLoopDuplication
R
boolean
Duplicate certain loops and eliminate their guards.
GuardHoistingLoopDuplicationHoistFraction
R
double
0.5
Duplicate only loops where at least this fraction of guards can be hoisted.
GuardHoistingLoopDuplicationMaxSize
R
long
64
Duplicate only loops up to this estimated size.
GuardHoistingLoopDuplicationMaxSizeHotCode
R
long
2048
See GuardHoistingLoopDuplicationMaxSize.
GuardHoistingLoopDuplicationMinBodyIterations
R
long
4
Duplicate only loops with at least this many expected iterations of the loop body.
See GuardHoistingLoopDuplicationMinBodyIterations.
GuardHoistingLoopDuplicationMinHotness
R
long
1
Duplicate only loops in methods executed at least this number of times.
GuardPriorities
R
boolean
HeapDumpOnOutOfMemoryError
R
boolean
Dump heap to file (see HeapDumpPath) the first time the image throws java.lang.OutOfMemoryError because it ran out of Java heap.
HeapDumpPath
R
string
Path of the file or directory in which heap dumps are created. An empty value means a default file name will be used. An existing directory means the dump will be placed in the directory and have the default file name.
HeapSizePerGCThread
R
long
44040192
Size of heap (bytes) per GC thread used in calculating the number of GC threads. G1 GC only.
HeapVerifierVerbosity
R
long
0
Control heap verifier verbosity level: 0 - quiet, 1 - info, 2 - warning, 3 - all.
HighTierInversion
R
boolean
HighTierPartialUnrolling
R
boolean
Enable EE partial unrolling in high tier.
HotCodeMinSelfTime
R
double
0.001
Minimal self time for a compilation unit to be considered hot globally.
HotSpotDeoptExplicitExceptions
R
boolean
Testing only option that forces deopts for exception throws.
HotSpotPostOnExceptions
R
boolean
Testing only option that forces deopts for exception throws.
HotSpotPrintInlining
R
boolean
Print inlining optimizations.
HybridStaticContext
R
boolean
Enable hybrid context for static methods, i.e. uses invocation site as context for static methods.
IgnoreBadDuplications
R
boolean
Ignore duplications with a bad benefit cost relation.
IgnoreDeoptUsages
R
boolean
ImageObjectTreeExpandRoots
R
string
Override the default suppression of specified roots. See: StaticAnalysisReports.md.
ImageObjectTreeExpandTypes
R
string
Override the default suppression of specified types. See: StaticAnalysisReports.md.
ImageObjectTreeSuppressRoots
R
string
Suppress the expansion of specified roots. See: StaticAnalysisReports.md.
ImageObjectTreeSuppressTypes
R
string
Suppress the expansion of specified types. See: StaticAnalysisReports.md.
ImplicitExceptionWithoutStacktraceIsFatal
R
boolean
Determines if implicit exceptions are fatal if they don't have a stack trace.
InfeasiblePathCorrelation
R
boolean
InfeasiblePathCorrelationWindowSize
R
long
10
Limit of the number of dominating if nodes to consider in infeasible path correlation to avoid compile time explosion.
InitialHeapSize
R
long
0
Initial heap size (in bytes); zero means use ergonomics. G1 GC only.
InitialRAMPercentage
R
double
1.5625
Percentage of real memory used for initial heap size. G1 GC only.
InitiatingHeapOccupancyPercent
R
long
45
The percent occupancy (IHOP) of the current old generation capacity above which a concurrent mark cycle will be initiated. Its value may change over time if adaptive IHOP is enabled, otherwise the value remains constant. In the latter case a value of 0 will result as frequent as possible concurrent marking cycles. A value of 100 disables concurrent marking. Fragmentation waste in the old generation is not considered free space in this calculation. G1 GC only.
InjectedCompilationDelay
R
long
0
The number of seconds by which to slow down each compilation. The compilations slowed down can be restricted with MethodFilter. This option exists to test the compilation watchdog.
Inline
R
boolean
Enable inlining.
InlineAllBonus
R
double
1
The bonus applied to call nodes that can be fully inlined.
InlineBeforeAnalysis
R
boolean
Deprecated, option no longer has any effect.
InlineDuringParsing
R
boolean
Inlines trivial methods during bytecode parsing.
InlineDuringParsingMaxDepth
R
long
10
Maximum depth when inlining during bytecode parsing.
InlineEverything
R
boolean
InlineGraalStubs
R
boolean
Embed all the emitted code for Graal-generated stubs.
InlineMegamorphicCalls
R
boolean
Inline calls with megamorphic type profile (i.e., not all types could be recorded).
InlineMonomorphicCalls
R
boolean
Inline calls with monomorphic type profile.
InlinePartialIntrinsicExitDuringParsing
R
boolean
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.
InlinePolymorphicCalls
R
boolean
Inline calls with polymorphic type profile.
InlineVTableStubs
R
boolean
InlinedCompilerNodeLimit
R
long
20000
Controls the maximum number of compiler nodes that can be inlined into the compiled method.
InliningCoefficient
R
double
0.02
The coefficient used to compute the inlining threshold; the higher, the more to inline.
InliningDepthError
R
long
1000
Maximum inlining depth during partial evaluation before reporting an infinite recursion.
InsertPreMainPostOnly
R
boolean
Do not unroll the main loop, only create pre-main-post.
InspectGraphs
R
boolean
Inspect analysis graphs.
InspectServerContentPath
R
string
inspect
Path to the contents of the Inspect web server.
InstallSegfaultHandler
R
boolean
Install segfault handler that prints register contents and full Java stacktrace.
InterceptBailout
R
boolean
Intercept also bailout exceptions.
Intrinsify
R
boolean
Use compiler intrinsifications.
InversionMinLocalFrequency
R
double
2
Minimal loop frequency for a loop to be considered for inversion.
InversionMinRelativeFrequency
R
double
1
Minimal relative frequency for a loop to be considered for inversion.
InvertMultiEndLoops
R
boolean
InvertNonLeafLoops
R
boolean
InvertVectorizableLoops
R
boolean
IsolatedLoopHeaderAlignment
R
long
32
Alignment in bytes for loop header blocks that have no fall through paths.
IterativePeelingLimit
R
long
2
Allow iterative peeling of loops up to this many times (each time the peeling phase runs).
IterativePeelingOuterFrequencyBonusThreshold
R
double
4
Allow iterative peeling of loops with an outer frequency bonus above this value.
JfrBasedExecutionSamplerStatistics
R
boolean
Print statistics collected during JFR-based execution sampler run.
LIRDynMoveProfileMethod
R
boolean
Enable dynamic move profiling per method.
LIRInstructionVerifierPath
R
string
None
Path to jar file containing LIR instruction verifier.
LIROptConstantLoadOptimization
R
boolean
Enable constant load optimization.
LIROptControlFlowOptimizer
R
boolean
LIROptEdgeMoveOptimizer
R
boolean
LIROptLSRAEliminateSpillMoves
R
boolean
Enable spill move elimination.
LIROptLSRAOptimizeSpillPosition
R
boolean
Enable spill position optimization.
LIROptLSStackSlotAllocator
R
boolean
Use linear scan stack slot allocation.
LIROptNullCheckOptimizer
R
boolean
LIROptRedundantMoveElimination
R
boolean
LIROptStackMoveOptimizer
R
boolean
LIROptimization
R
boolean
Enable LIR level optimizations.
LIRProfileMethods
R
boolean
Enables profiling of methods.
LIRProfileMoves
R
boolean
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).
LSRAOptSplitOnly
R
boolean
LSRA optimization: Only split but do not reassign.
LSRAOptimization
R
boolean
Enable LSRA optimization.
LargeChildrenCountPenaltyCoefficient
R
double
0.005
Reduces the likelihood of exploring call graphs that have a lot of children below the root.
LimitInlinedInvokes
R
double
5
LimitObjectArrayLength
R
boolean
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.
ListMetrics
R
boolean
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.
LoadExceptionObjectInVM
R
boolean
Use a VM runtime call to load and clear the exception object from the thread at the start of a compiled exception handler.
LoadProfiles
R
string
None
Load per compilation profile information.
LocalsPerCounter
R
long
16
Number of cpu locals per counter. It has to be a power of 2.
Log
R
string
None
Pattern for specifying scopes in which logging is enabled. See the Dump option for the pattern syntax.
LogFile
R
string
None
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(). If the current runtime is in an isolate, then %i will be replaced by '<isolate id>' otherwise %i is removed. An %I is the same as %i except that the replacement is '<isolate id>@<isolate address>'. Using %o as filename sends logging to System.out whereas %e sends logging to System.err.
LogVerbose
R
boolean
Enable more verbose log output when available.
LoopBoundOptimizationPhase
R
boolean
Try to improve counted loop detection by finding more precise loop bounds.
LoopExitVsLoopEndFrequencyDiff
R
double
1000
Scaling factor of frequency difference computed based on loop ends or exits.
LoopHeaderAlignment
R
long
16
Alignment in bytes for loop header blocks.
LoopInversion
R
boolean
LoopMaxUnswitch
R
long
3
LoopOnFatalError
R
boolean
Execute an endless loop before printing diagnostics for a fatal error.
LoopPeeling
R
boolean
LoopPredication
R
boolean
Hoists array bounds checks out of simple loops. This is ignored if SpeculativeGuardMovement is enabled.
LoopPredicationMainPath
R
boolean
Restricts LoopPredication to only focus on array bounds checks that dominate the back edge of a loop.
LoopRotation
R
boolean
Enable Loop Rotation to let the compiler detect more loops as counted.
LoopRotationAssertCountedAfter
R
boolean
LoopRotationToxicNodeSetMaxNodecost
R
long
512
Maximum size in NodeSize of the code to be duplicated during rotation.
LoopUnswitch
R
boolean
LoopUnswitchFrequencyBoost
R
double
20
Number of nodes allowed for a loop unswitching per loop frequency. The number of nodes allowed for the unswitching is proportional to the relative frequency of the loop by this constant.
LoopUnswitchFrequencyMaxFactor
R
double
0.95
Maximun value for the frequency factor of an invariant.
LoopUnswitchFrequencyMinFactor
R
double
0.05
Minimum value for the frequency factor of an invariant.
LoopUnswitchMaxIncrease
R
long
2000
Maximum loop unswitching code size increase in nodes.
LoopUnswitchMinSplitFrequency
R
double
1
Lower bound for the minimun frequency of an invariant condition to be unswitched.
LoopUnswitchTrivial
R
long
20
Number of nodes allowed for a loop unswitching regardless of the loop frequency.
LoopVectorizationKeepPostLoop
R
boolean
Keep the original loop as the post-loop during loop vectorization.
LoopVectorizationMaxBodyNodes
R
long
16
The maximal number of fixed body nodes to consider in loop vectorization.
MarkStackSize
R
long
4194304
Size of marking stack. G1 GC only.
MarkStackSizeMax
R
long
536870912
Maximum size of marking stack. G1 GC only.
MatchExpressions
R
boolean
Allow backend to match complex expressions.
MaxCallingContextDepth
R
long
0
The maximum length of the methods context chains.
MaxCallingContextWidth
R
long
0
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.
MaxCompilationProblemsPerAction
R
long
2
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.
MaxConstantObjectsPerType
R
long
0
The maximum number of constant objects recorded for each type before merging the constants into one unique constant object per type. If the value is 0 there is no limit.
MaxDirectMemorySize
R
long
0
Maximum total size of NIO direct-buffer allocations.
MaxDuplicationAnchor
R
long
2147483647
Maximum duplication anchor number.
MaxDuplicationFactor
R
double
2
Max amount of extra effort to expend handling irreducible loops. A value < 1 disables support for irreducible loops.
MaxGCPauseMillis
R
long
200
Adaptive size policy maximum GC pause time goal in millisecond, or the maximum GC time per MMU time slice. G1 GC only.
MaxGraphSizeNodeCost
R
long
100000
Maximum node cost graph size for duplication. If a graph is bigger duplication will stop.
MaxHeapContextDepth
R
long
0
The maximum length of the context used to model a heap object in addition to the allocation site; used only when ContextSensitiveHeap is enabled.
MaxHeapContextWidth
R
long
0
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.
MaxHeapFree
R
long
0
The maximum free bytes reserved for allocations, in bytes (0 for automatic according to GC policy). Serial GC only.
MaxHeapSize
R
long
0
The maximum heap size at run-time, in bytes.
MaxJavaStackTraceDepth
R
long
1024
The maximum number of lines in the stack trace for Java exceptions (0 means all).
MaxMispredictionCostIncreaseFactor
R
double
2
Abstract measure of the cost of branch misprediction. Higher values make generation of conditional moves more likely.
MaxNewSize
R
long
0
The maximum size of the young generation at run-time, in bytes.
MaxObjectSetSize
R
long
100
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.
MaxPolymorphicDispatches
R
long
4
The maximum number of dispatches in guarded polymorphic inlining.
MaxPriorityInliningPeelingIterations
R
long
10
Max number of precise inlining peeling iterations.
MaxRAM
R
long
0
Physical memory size (in bytes). By default, the value is queried from the OS/container during VM startup.
MaxRAMPercentage
R
double
25
Maximum percentage of real memory used for maximum heap size. G1 GC only.
MaxRounds
R
long
1000
Maximum number of expand/inline rounds during a single run of the phase.
MaxSimulationIterations
R
long
2
Maximum simulation-duplication iterations of the duplication optimization per invocation.
MaxSimulationIterationsHotCode
R
long
4
See MaxSimulationIterations.
MaxSplitsPerNode
R
long
32
MaxTemplatesPerSnippet
R
long
50
MaxTenuringThreshold
R
long
15
Maximum value for tenuring threshold. G1 GC only.
MaxUnswitchSuccessors
R
long
64
Maximum number of split successors before aborting unswitching.
MaxValueNodesPartialEscapeSelectiveInlining
R
long
35000
Controls the maximum number of value nodes that can appear in the final graph.
MaxVectorAlignmentUnroll
R
long
4
Maximum number of unrolled alignment instructions.
MaxVectorUnroll
R
long
16
Maximum length of linear-code vector operations.
MaximumDesiredSize
R
long
20000
Maximum desired size of the compiler graph in nodes.
MaximumEscapeAnalysisArrayLength
R
long
128
The maximum length of an array that will be escape analyzed.
MaximumHeapSizePercent
R
long
80
The maximum heap size as percent of physical memory. Serial and epsilon GC only.
MaximumInliningSize
R
long
300
Inlining is explored up to this number of nodes in the graph for each call site.
MaximumLoopExplosionCount
R
long
10000
Max number of loop explosions per method.
MaximumRecursiveInlining
R
long
5
Maximum level of recursive inlining.
MaximumTransitiveEnabledPullFactor
R
long
2
PullThroughPhiOptimization: Maximum number of algorithm iterations per optimization invocation.
MaximumYoungGenerationSizePercent
R
long
10
The maximum size of the young generation as a percentage of the maximum heap size. Serial and epsilon GC only.
MegamorphicInliningMinMethodProbability
R
double
0.33
Minimum probability for methods to be inlined for megamorphic type profiles.
MemUseTrackers
R
string
None
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.
MethodFilter
R
string
None
Pattern for matching methods. The syntax for a pattern is:.
MethodFilterRootOnly
R
boolean
Only check MethodFilter against the root method in the context if true, otherwise check all methods.
MethodInlineBailoutLimit
R
long
5000
Per-compilation method inlining exploration limit before giving up (use 0 to disable).
MetricsFile
R
string
None
File to which metrics are dumped per compilation.
MidTierInversion
R
boolean
MidTierPartialUnrolling
R
boolean
Enable EE partial unrolling in mid tier.
MinBlockFrequencyPull
R
double
0.66
PullThroughPhiOptimization: Ignore low frequency branches during duplication.
MinCallingContextDepth
R
long
0
The minimum length of the methods context chains.
MinDuplicationAnchor
R
long
1
Skip n duplication anchors.
MinHeapContextDepth
R
long
0
The minimum length of the context used to model a heap object in addition to the allocation site; used only when ContextSensitiveHeap is enabled.
MinHeapDeltaBytes
R
long
172032
The minimum change in heap space due to GC (in bytes). G1 GC only.
MinHeapFreeRatio
R
long
40
The minimum percentage of heap free after GC to avoid expansion. G1 GC only.
MinHeapSize
R
long
0
The minimum heap size at run-time, in bytes.
MinPolymorphicDispatchProbability
R
double
0.1
The minimum probability for using a dispatch in guarded polymorphic inlining.
MinRAMPercentage
R
double
50
Minimum percentage of real memory used for maximum heap size on systems with small physical memory size. G1 GC only.
MinTLABSize
R
long
2048
Minimum allowed TLAB size (in bytes). G1 GC only.
MinifyInvertedPhis
R
boolean
Break chained phis.
MinimalBulkZeroingSize
R
long
2048
If applicable, use bulk zeroing instructions when the zeroing size in bytes exceeds this threshold.
MinimalGraphNodeSizeCheckSize
R
long
1000
Minimal size in NodeSize to check the graph size increases of phases.
MinimalRegions
R
boolean
Try to reduce duplication code size to the minimal amount of code.
MinimumBlindedConstantSize
R
long
4
Minimum size (in bytes) of constants to blind.
MinimumPeelFrequency
R
double
0.35
MoveGuardsUpwards
R
boolean
Move guard nodes to earlier places in the dominator tree if all successors of basic block share a common guard condition.
MultiExitCostFactor
R
long
32
Cost/Benefit heuristic for EE unrolling: If a loop has multiple exits, cost is increased by this value for every none-sinking loop exit.
MultiExitCostFactorSink
R
long
2
Cost/Benefit heuristic for EE unrolling: If a loop has multiple exits, cost is increased by this value for every sinking loop exit.
NDCV
R
long
0
Run level for NoDeadCodeVerifyHandler (0 off, 1 info, 2 verbose, 3 fatal).
NewRatio
R
long
2
Ratio of old/new generation sizes. G1 GC only.
NewSize
R
long
1048576
Initial new generation size (in bytes). G1 GC only.
NonCountedStripMinedBenefitBoost
R
long
64
Benefit boost for strip mined non counted loops.
NonCountedStripMiningBudget
R
double
0.1
Code size budget of the non-counted strip mining transformation in terms of NodeCostSize.
NonCountedStripMiningBudgetHotCode
R
double
2.5
See NonCountedStripMiningBudget.
NonCountedStripMiningForceStripAll
R
boolean
Force non-counted strip mining for all loops (also counted ones), test flag only.
NonCountedStripMiningIgnoreSmallLoops
R
boolean
Ignore small loops from strip mining, the iv overhead can cause slowdowns.
NonCountedStripMiningInnerLoopTrips
R
long
-1
The max number of iterations the counted inner loop takes. If -1, the frequency of the loop will be used to derive an inner frequency.
NonCountedStripMiningMaximumInnerLoopTrips
R
long
8192
If NonCountedStripMiningInnerLoopTrips -1: Maximum loop trips for strip mined non-counted loops.
NonCountedStripMiningMinFrequency
R
double
16
Minimal loop frequency to consider a non-counted loop for strip mining.
NonCountedStripMiningMinimumInnerLoopTrips
R
long
512
If NonCountedStripMiningInnerLoopTrips -1: Minimum loop trips for strip mined non-counted loops.
NonCountedStripMiningReuseIVs
R
boolean
Try to reuse pre-existing induction variables inside non-counted loops for the strip-mined loop's exit check.
ObjdumpExecutables
R
string
None
Comma separated list of candidate GNU objdump executables. If not specified, disassembling via GNU objdump is disabled. Otherwise, the first existing executable in the list is used.
OldPLABSize
R
long
1024
Size of old gen promotion LAB's (in HeapWords). G1 GC only.
OldSize
R
long
5242880
Initial tenured generation size (in bytes). G1 GC only.
OmitHotExceptionStacktrace
R
boolean
OptAssumptions
R
boolean
OptBulkAllocation
R
boolean
OptCompressedFrameStateValues
R
boolean
OptConditionalMoves
R
boolean
Optimize simple if branches with conditional moves.
OptConvertDeoptsToGuards
R
boolean
OptDeDuplication
R
boolean
OptDeoptimizationGrouping
R
boolean
OptDevirtualizeInvokesOptimistically
R
boolean
OptDuplication
R
boolean
OptEarlyReadElimination
R
boolean
OptEliminateGuards
R
boolean
OptExactArithmetic
R
boolean
OptFloatingReads
R
boolean
OptGuardRangeGrouping
R
boolean
OptImplicitNullChecks
R
boolean
OptLockElimination
R
boolean
OptLoopPhiStamps
R
boolean
Inject stamps on induction variables.
OptMethodDuplication
R
boolean
Duplicate methods to form hot part and cold part areas.
OptPropagateEquality
R
boolean
Propagate equality into dominated nodes.
OptPullThroughPhi
R
boolean
OptReadElimination
R
boolean
OptScheduleOutOfLoops
R
boolean
OptStringConcat
R
boolean
Optimize StringBuilder construction.
OptStringConcatDump
R
boolean
Dump graphs to help debug operation.
OptStringConcatDumpUnhandled
R
boolean
Dump graphs to help debug operation.
OptWriteBarrierElimination
R
boolean
Eliminate redundant write barriers.
OptWriteMotion
R
boolean
Perform write sinking, which moves writes inside loops after them, effectively reducing their frequency.
OptimisticAliasingAnalysis
R
boolean
OptimisticAliasingUseSpeculation
R
boolean
Use speculation and deoptimization in optimistic aliasing analysis.
OptimizationLog
R
string
None
Enable the structured optimization log and specify where it is printed.
OptimizationLogPath
R
string
None
Path to the directory where the optimization log is saved if OptimizationLog is set to Directory. Directories are created if they do no exist.
OptimizeLoopAccesses
R
boolean
Enable access node optimizations for loops.
OptimizeReturnedParameter
R
boolean
Analysis: Detect methods that return one of their parameters and hardwire the parameter straight to the return.
OptimizeVectorAPI
R
boolean
Expand Vector API operations to optimized machine instructions.
OverrideProfiles
R
boolean
Allow multiple compilations of the same method by overriding existing profiles.
PLABWeight
R
long
75
Percentage (0-100) used to weight the current sample when computing exponentially decaying average for ResizePLAB. G1 GC only.
ParGCArrayScanChunk
R
long
50
Scan a subset of object array and push remainder, if array is bigger than this. G1 GC only.
ParallelGCBufferWastePct
R
long
10
Wasted fraction of parallel allocation buffer. G1 GC only.
ParallelGCThreads
R
long
0
Number of parallel threads G1 will use.
ParallelRefProcBalancingEnabled
R
boolean
Enable balancing of reference processing queues. G1 GC only.
Limit the parsing context depth. Default value is arbitrary set at 100.
PartialEscapeAnalysis
R
boolean
PartialRedundancyElimination
R
boolean
Enable partial redundancy elimination.
PartialUnroll
R
boolean
PartialUnrollCostReductionFactorHighTier
R
long
2
Cost/Benefit heuristic for EE unrolling in high tier: reduce cost by a constant factor when comparing with relative benefit.
PartialUnrollCostReductionFactorHotCodeMidTier
R
long
32
See PartialUnrollCostReductionFactorMidTier.
PartialUnrollCostReductionFactorMidTier
R
long
8
Cost/Benefit heuristic for EE unrolling in mid tier: reduce cost by a constant factor when comparing with relative benefit.
PartialUnrollMaxIterationsHighTier
R
long
4
Maximum number of iterations to unroll for a high tier main loop.
PartialUnrollMaxIterationsMidTier
R
long
16
Maximum number of iterations to unroll for a mid tier main loop.
PartialUnrollMaxSizeHighTier
R
long
256
Maximum node cost size of a loop to be considered for high tier unrolling.
PartialUnrollMaxSizeHotCodeMidTier
R
long
1024
See PartialUnrollMaxSizeMidTier.
PartialUnrollMaxSizeMidTier
R
long
256
Maximum node cost size of a loop to be considered for mid tier tier unrolling.
PartialUnrollMinFrequency
R
long
4
Minimal loop frequency to consider a loop for partial unrolling.
PathProfileCutThreshold
R
long
10
The limit on the number of paths at control-flow merges. Decreasing this value reduces the number of paths, but also shortens them.
PathProfileDumpFile
R
string
None
Dump information for path profile (null or file name). If set to null, then dumping is disabled.
PathProfileFrequentThreshold
R
long
500
Maximum acceptable number of paths coming from the inbound of a merge if both of them are frequent.
PathProfileGlobalLowFrequencyRatio
R
double
0.1
If some block's relative frequency drops below this number times the maximum relative frequency in the graph, then the block is considered infrequent.
PathProfileLocalLowFrequencyRatio
R
double
10
If the ratio of the merge's frequency with its inbound's frequency is greater than this threshold, then the inbound is considered infrequent.
PathProfileMaxTotalCounters
R
long
4000000
Maximum number of counters to use in path profiling for all instrumented methods.
PathProfilePolicy
R
string
None
Enable or disable the path-profiling algorithm. If it enables it, it also allows to select which mode to execute.
PathProfileRegenerate
R
boolean
Controls whether the path-regeneration algorithm is executed.
PeelALot
R
boolean
Stress test for the loop peeling optimization by applying it aggressively.
PeelOnlyLoopWithNodeID
R
long
-1
Peel only the loop with the specific loop begin node ID for debugging purposes.
PeelingConsideredMinLoopIterations
R
double
1.5
Minimal loop body iterations necessary to consider peeling.
PeelingConsideredMinRelativeFrequency
R
double
4
Minimal relative frequency of loop begin necessary to consider peeling.
PeelingHighTierCostReductionFactor
R
double
64
Cost/Benefit heuristic for EE simulation-based loop peeling in high tier: reduce cost by a constant factor when comparing with relative benefit.
PeelingMidTierCostReductionFactor
R
double
8
Cost/Benefit heuristic for EE simulation-based loop peeling in mid tier: reduce cost by a constant factor when comparing with relative benefit.
PenalizeComplexLoopControlFlow
R
boolean
Increase the cost of duplicating control flow splits inside loops if they are not foldable.The generally tend to complicate control flow and generate worse code in the backend.
PercentTimeInIncrementalCollection
R
long
50
Percentage of total collection time that should be spent on young generation collections. Serial GC with collection policy 'BySpaceAndTime' only.
PerfDataMemorySize
R
long
32768
Size of performance data memory region. Will be rounded up to a multiple of the native os page size.
PerfDataSamplingInterval
R
long
200
Jvmstat instrumentation sampling interval (in milliseconds).
PerfMaxStringConstLength
R
long
1024
Maximum PerfStringConstant string length before truncation.
PhiMinificationMinimalLoopFrequency
R
double
2
Minimal loop frequency to consider a loop for inverted phi minifaction.
PreTouchParallelChunkSize
R
long
1073741824
Per-thread chunk size for parallel memory pre-touch. G1 GC only.
PreferUnsignedComparison
R
boolean
Rewrite signed comparisons to unsigned ones if the result is equal.
PrefetchCopyIntervalInBytes
R
long
-1
How far ahead to prefetch destination area (< 0 means off). G1 GC only.
PrefetchScanIntervalInBytes
R
long
-1
How far ahead to prefetch scan area (< 0 means off). G1 GC only.
PrintAnalysisCallTree
R
boolean
Print analysis call tree, a breadth-first tree reduction of the call graph.
PrintAnalysisCallTreeType
R
string
TXT
Change the output format of the analysis call tree, available options are TXT and CSV. See: Reports.md.
PrintAnalysisStatistics
R
boolean
Print analysis results statistics.
PrintBBInfo
R
boolean
Enables dumping of basic blocks relative PC and frequencies in the dump directory.
PrintBackendCFG
R
boolean
Enable dumping scheduled HIR, LIR, register allocation and code generation info to the C1Visualizer.
PrintBlockMapping
R
boolean
Enable dumping CFG built during initial BciBlockMapping.
PrintCallEdges
R
boolean
Print call edges with other analysis results statistics.
PrintCanonicalGraphStringFlavor
R
long
0
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).
PrintCanonicalGraphStrings
R
boolean
Enable dumping canonical text from for graphs.
PrintCompilation
R
boolean
Print an informational line to the console for each completed compilation.
PrintDetailedAllocationProfiling
R
boolean
Print detailed information for each allocation site.
PrintFlags
R
string
None
Show available options based on comma-separated option-types (allowed categories: User, Expert, Debug).
PrintFlagsWithExtraHelp
R
string
None
Print extra help, if available, based on comma-separated option names. Pass * to show all options that contain extra help.
PrintGC
R
boolean
Print summary GC information after each collection.
PrintGCSummary
R
boolean
Print summary GC information after application main method returns. Serial GC only.
PrintGCTimes
R
boolean
Print the time for each of the phases of each collection, if +VerboseGC. Serial GC only.
PrintGraph
R
string
File
Where IdealGraphVisualizer graph dumps triggered by Dump or DumpOnError should be written.
PrintGraphFile
R
boolean
Setting to true sets PrintGraphfile, setting to false sets PrintGraphnetwork.
PrintGraphHost
R
string
127.0.0.1
Host part of the address to which graphs are dumped.
PrintGraphPort
R
long
4445
Port part of the address to which graphs are dumped in binary format.
PrintGraphStateDiff
R
boolean
Prints the difference in the graph state caused by each phase of the suite.
PrintGraphWithSchedule
R
boolean
Schedule graphs as they are dumped.
PrintIRWithLIR
R
boolean
Print HIR along side LIR as the latter is generated.
PrintImageObjectTree
R
boolean
Print image object hierarchy.
PrintIntrinsics
R
boolean
Print the registered intrinsics in a format compatible with DisableIntrinsics.
PrintLIRWithAssembly
R
boolean
Include the LIR as comments with the final assembly.
PrintLoweringScheduleToTTY
R
boolean
Print schedule result pre lowering to TTY.
PrintPointsToStatistics
R
boolean
Report analysis statistics.
PrintProfileLoading
R
boolean
Print to stdout when a profile is loaded.
PrintProfilingInformation
R
boolean
Print profiling information when parsing a method's bytecode.
PrintSynchronizedAnalysis
R
boolean
Print types used for Java synchronization.
PrintUnmodifiedGraphs
R
boolean
Dump a graph even if it has not changed since it was last dumped. Change detection is based on adding and deleting nodes or changing inputs.
PriorityForceInline
R
string
None
Unconditionally inline all methods matching the pattern using the priority-based inliner. See the MethodFilter option for a description of the pattern syntax.
PriorityInliningPolicy
R
string
The policy to use, must be empty for automatic resolution.
PriorityInliningTuningPolicy
R
string
DomainSpecific
Comma-separated list of analysis policies for exploring the methods in the call graph and for inlining, empty for no policy.
PriorityNeverInline
R
string
None
Never inline methods matching the pattern using the priority-based inliner. See the MethodFilter option for a description of the pattern syntax.
ProfileAllocations
R
boolean
Enable profiling of allocation sites.
ProfileAllocationsContext
R
string
AllocatingMethod
Control the naming and granularity of the counters when using ProfileAllocations.
ProfileAnalysisOperations
R
boolean
Track the progress of the static analysis.
ProfileCompiledMethods
R
boolean
ProfileConstantObjects
R
boolean
Track the creation of constant objects.
ProfileLockElimination
R
boolean
ProfileMethodFilter
R
string
None
Restrict saving or loading of profiles based on this filter. See the MethodFilter option for the pattern syntax.
ProfileMonitors
R
boolean
Enable profiling of monitor operations.
ProfileOptBulkAllocation
R
boolean
ProfileSelfTime
R
boolean
Excludes time spent in invoked methods; measures total time including subcalls when turned off.
ProfilesDumpFile
R
string
default.iprof
Value should point to a profile dump file.
ProfilingDumpPeriod
R
long
-1
Integer greater than zero representing the duration in seconds that will be used to trigger a profile dump. Any integer less than one disables periodic dumps.
ProfilingDumpVerbose
R
boolean
Emit a message to stderr after dumping a profile.
PropagateEqualityDepth
R
long
6
Maximum depth of dependency when propagating equals property.
PruneLargeDominatorUsageTrees
R
boolean
PullThroughPhiCodeSizeIncrease
R
double
0.1
PullThroughPhiOptimization: Percentage in node cost graph size for the floating node duplication budget. Computed relative to the method's graph size.
PullThroughPhiCodeSizeIncreaseHotCode
R
double
2.5
See PullThroughPhiCodeSizeIncrease.
QueuedAllocationWarningCount
R
long
0
Number of times an allocation that queues behind a GC will retry before printing a warning. G1 GC only.
RawConditionalElimination
R
boolean
ReadEliminationMaxLoopVisits
R
long
5
ReadProxySchedulingStrategy
R
string
LATEST_OUT_OF_LOOPS
Chose the scheduling strategy for inserting the read proxies.
ReassociateExpressions
R
boolean
Re-associate loop invariants and constants.
ReduceDCE
R
boolean
Disable optional dead code eliminations.
RegisterPressure
R
string
None
Comma separated list of registers that register allocation is limited to.
RelativeBenefitInliningCoefficient
R
double
0.001
The coefficient used to compute the inlining threshold; the higher, the hard to inline.
RelaxTypeFlowStateConstraints
R
boolean
Allow a type flow state to contain types not compatible with its declared type.
RemoveLoopSafepoints
R
boolean
Remove safepoints on counted loop ends.
RemoveNeverExecutedCode
R
boolean
RemoveSaturatedTypeFlows
R
boolean
Enable the type flow saturation analysis performance optimization.
ReplaceInputsWithConstantsBasedOnStamps
R
boolean
ReservedAddressSpaceSize
R
long
0
The number of bytes that should be reserved for the heap address space.
Dynamically resize TLAB size for threads. G1 GC only.
RespectVectorization
R
boolean
Try avoid unrolling vectorizable loops.
ReuseRecursiveDuplicatedMethods
R
boolean
Do not duplicate recursive methods but rather reuse a previous duplicate.
RewriteStripMinedCounterTo32Bit
R
boolean
Rewrite the counter of a strip mined loop to have a 32bit type.
RootSizePenaltyCoefficient
R
double
0.1
Reduces likelihood of spending a lot of time inlining when the IR is already large.
RootSizePenaltyTypicalGraphSize
R
long
3250
At what size of the root IR graph do we start to consider applying a exploration penalty.
RotateNonLeafLoops
R
boolean
RotationMinLocalFrequency
R
double
2
Minimal loop frequency for a loop to be considered for rotation.
RotationMinRelativeFrequency
R
double
1
Minimal relative frequency for a loop to be considered for rotation.
SIMDArithmeticReduceMinLength
R
long
16
Minimum vector length for matching SIMD arithmetic reduce patterns.
SIMDVectorizationCheckLoadGroupProfitability
R
boolean
Check for profitability when grouping memory loads to SIMD loads.
SIMDVectorizationDirectLoadStore
R
boolean
Allow SIMDVectorization to vectorize load to store opportunities when there are no matching SIMD operations between load and store.
SIMDVectorizationSingletons
R
boolean
Enable matching of singleton groups to increase corner-case matching.
SIMDVectorizationVolatileLoads
R
boolean
Allow load grouping to include grouping of volatile loads. Note currently this may generate incorrect results.
SIMDVectorizationVolatileWrites
R
boolean
Allow store grouping to include grouping of volatile writes. Note currently this may generate incorrect results.
SIMDVectorizationWindowSize
R
long
4
Set the number of dominating and dominated blocks scanned per block.
SafepointPromptnessFailureNanos
R
long
0
Exit the VM if I can not come to a safepoint in this many nanoseconds. 0 implies forever.
SafepointPromptnessWarningNanos
R
long
0
Print a warning if I can not come to a safepoint in this many nanoseconds. 0 implies forever.
SaveProfiles
R
boolean
Save per compilation profile information.
SaveProfilesPath
R
string
None
Path for saving compilation profiles. If the value is omitted the debug dump path will be used.
ScanObjectsParallel
R
boolean
Object scanning in parallel.
ScheduledDuplicationSimulation
R
boolean
Simulation can either only process fixed nodes or schedule the graph and also process floating nodes.
ShowConfiguration
R
string
none
Writes to the VM log information about the compiler configuration selected.
ShowDumpFiles
R
boolean
Print the name of each dump file path as it's created.
ShowSubstitutionSourceInfo
R
boolean
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.
SimulationBasedLoopPeeling
R
boolean
Use DBDS algorithm to simulate the impact of peeling on a loop.
SimulationPruneUnlikelyBranches
R
boolean
Ignore low frequency branches during simulation.
SmallCompiledLowLevelGraphSize
R
long
330
If the previous low-level graph size of the method exceeds the threshold, it is not inlined.
SmallGraphDuplicationBudgetFactor
R
double
1
See 'DuplicationBudgetFactor': for small graphs.
SmallGraphSize
R
long
2000
Node cost graph size for a graph to be considered 'small'.
SmallRootIrPenaltyCoefficient
R
double
0.02
Reduces the likelihood of exploring call graphs with IR size much larger than the root.
SnippetCounters
R
boolean
Enable counters for various paths in snippets.
SoftRefLRUPolicyMSPerMB
R
long
1000
Number of milliseconds per MB of free space in the heap. G1 GC only.
SpectrePHTBarriers
R
string
None
Select a strategy to mitigate speculative bounds check bypass (aka Spectre-PHT or Spectre V1).
SpectrePHTIndexMasking
R
boolean
Mask indices to scope access to allocation size after bounds check.
SpeculativeExecutionBarriers
R
boolean
Stop speculative execution on all branch targets with execution barrier instructions.
SpeculativeGuardMovement
R
boolean
Move loop invariant guards (e.g., array bounds checks) out of loops.
SpeculativeStoreCheck
R
boolean
Speculates that arrays have exact type to optimize store checks.
StackSize
R
long
0
The size of each thread stack at run-time, in bytes.
StartFlightRecording
R
string
Start flight recording with options.
StrengthenGraphWithConstants
R
boolean
Perform constant folding in StrengthenGraphs.
StressExplicitExceptionCode
R
boolean
Stress the code emitting explicit exception throwing code.
StressInvokeWithExceptionNode
R
boolean
Stress the code emitting invokes with explicit exception edges.
StressTestEarlyReads
R
boolean
Stress the code by emitting reads at earliest instead of latest point.
StrictDeoptInsertionChecks
R
boolean
Perform checks that guards and deopts aren't introduced in graphs that should handle exceptions explicitly.
StrictProfiles
R
boolean
Throw an error if an attempt is made to overwrite/update a profile loaded from disk.
StringIndexOfConstantLimit
R
long
4096
String.indexOf invocations will be evaluated at compile time if the receiver is a constant and its length is smaller than this value.
StripMineALot
R
boolean
Force strip mining of all loops that can be strip mined.
StripMineCountedLoops
R
boolean
StripMineInvertedLoops
R
boolean
Strip mine inverted loops.
StripMineNonCountedLoops
R
boolean
SupportJsrBytecodes
R
boolean
SupportOSRWithLocks
R
boolean
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.
SurvivorRatio
R
long
8
Ratio of eden/survivor space size. G1 GC only.
SystemicCompilationFailureRate
R
long
1
Compilation failure rate indicating a systemic compilation problem that will issue a warning. The value is made absolute and clamped to produce P, a value between 0 and 100. Systemic failure is detected if the percent of failing compilations in a sliding time window > P. A negative value will cause the VM to exit after issuing the warning. Set to 0 to disable systemic compilation problem detection.
TLABAllocationWeight
R
long
35
Allocation averaging weight. G1 GC only.
TLABRefillWasteFraction
R
long
64
Maximum TLAB waste at a refill (internal fragmentation). G1 GC only.
TLABSize
R
long
0
Starting TLAB size (in bytes); zero means set ergonomically. G1 GC only.
TLABWasteIncrement
R
long
4
Increment allowed waste at slow allocation. G1 GC only.
TLABWasteTargetPercent
R
long
1
Percentage of Eden that can be wasted. G1 GC only.
TargetPLABWastePct
R
long
10
Target wasted space in last buffer as percent of overall allocation. G1 GC only.
TargetSurvivorRatio
R
long
50
Desired percentage of survivor space used after scavenge. G1 GC only.
TearDownFailureNanos
R
long
0
The number of nanoseconds before tearing down an isolate gives a failure message. 0 implies no message.
TearDownWarningNanos
R
long
0
The number of nanoseconds before and between which tearing down an isolate gives a warning message. 0 implies no warning.
Time
R
string
None
Pattern for specifying scopes in which timing is enabled. See the Dump option for the pattern syntax. An empty value enables all timers unconditionally.
TimeStampProfiling
R
boolean
Profile method execution time.
TimedDynamicCounters
R
long
-1
Turn on the benchmark counters, and displays the results every n milliseconds.
Timers
R
string
None
Comma separated names of timers that are enabled irrespective of the value for Time option. An empty value enables all timers unconditionally.
TraceAuxiliaryImageClassHistogram
R
boolean
Enables detailed tracing of auxiliary image events.
TraceAuxiliaryImageReferenceTree
R
boolean
Enables detailed tracing of auxiliary image events.
TraceBytecodeParserLevel
R
long
0
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.
TraceCodeCache
R
boolean
Print logging information for runtime code cache modifications.
TraceDeoptimization
R
boolean
Print logging information for every deoptimization.
TraceDeoptimizationDetails
R
boolean
Print verbose logging information for every deoptimization.
TraceDuplicatedMethods
R
boolean
Trace duplicated methods.
TraceEscapeAnalysis
R
boolean
TraceExceptionHandlerStub
R
boolean
Trace execution of stub used to handle an exception thrown by a callee.
TraceHeapChunks
R
boolean
Trace heap chunks during collections, if +VerboseGC. Serial GC only.
TraceInlineDuringParsing
R
boolean
Traces inlining performed during bytecode parsing.
TraceInlining
R
boolean
Enable tracing of inlining decisions.
TraceInliningForStubsAndSnippets
R
boolean
Enable inlining decision tracing in stubs and snippets.
TraceLIRGeneratorLevel
R
long
0
The trace level for the LIR generator.
TraceMonitorsMethodFilter
R
string
None
Trace monitor operations in methods whose fully qualified name contains this substring.
TraceMonitorsTypeFilter
R
string
None
Trace monitor operations on objects whose type contains this substring.
TraceParserPlugins
R
boolean
Traces use of plugins during bytecode parsing.
TraceUnwindStub
R
boolean
Trace execution of the stub that routes an exception to a handler in the calling frame.
TrackAccessChain
R
boolean
Track the callers for methods and accessing methods for fields.
TrackGraphSizesInDuplication
R
boolean
Enable (if Count is enabled) graph size tracking during every duplication iteration.
TrackIPEAStatistics
R
string
none
Track IPEA statistics in substratePriorityInliner.
TrackInliningStatistics
R
string
none
Track inlining statistics (inlining duration, call tree size, compiler node counts, and the number of callsites). One of: none, interactive.
TrackInputFlows
R
boolean
Track the input for type flows.
TrackMemUse
R
string
None
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.
TrackNodeInsertion
R
boolean
Track source stack trace where a node was inserted into the graph.
TrackNodeSourcePosition
R
boolean
Track the NodeSourcePosition.
TrackPrimitiveValues
R
boolean
Track primitive values using the infrastructure of points-to analysis.
TrivialInliningSize
R
long
10
Graphs with less than this number of nodes are trivial and therefore always inlined.
TrivialLoopSizeLimitForPeeling
R
double
512
Loop peeling will consider any loop with a size (in terms of estimated machine instructions) below this value to be a prime candidate for peeling. Larger loops will only be considered for peeling if the simulated benefit of peeling is relatively high. The larger the loop, the greater the expected benefit has to be.
TruffleCompilerConfiguration
R
string
None
Select a compiler configuration for Truffle compilation (default: use Graal system compiler configuration).
TruffleHostInlining
R
boolean
Whether Truffle host inlining is enabled.
TruffleHostInliningBaseBudget
R
long
5000
Maximum budget for Truffle host inlining for runtime compiled methods.
TruffleHostInliningByteCodeInterpreterBudget
R
long
100000
Maximum budget for Truffle host inlining for runtime compiled methods with a BytecodeInterpreterSwitch annotation.
TruffleHostInliningMaxExplorationDepth
R
long
1000
Determines the maximum call depth for exploration during host inlining.
TruffleHostInliningMaxSubtreeInvokes
R
long
20
Maximum number of subtree invokes for a subtree to get inlined until it is considered too complex.
TruffleHostInliningMinFrequency
R
double
0.001
Minimum relative frequency for calls to get inlined. Default 0.001 on HotSpot and no minimum frequency on SVM.
TruffleHostInliningPrintExplored
R
boolean
When logging is activated for this phase enables printing of only explored, but ultimately not inlined call trees.
TruffleImmutableFrameFields
R
boolean
Whether Truffle should mark final frame fields as immutable.
TruffleTrustedNonNullCast
R
boolean
Whether Truffle trusted non-null casts are enabled.
TruffleTrustedTypeCast
R
boolean
Whether Truffle trusted type casts are enabled.
TrustFinalDefaultFields
R
boolean
Determines whether to treat final fields with default values as constant.
TryExplodeOverPhis
R
boolean
PullThroughPhiOptimization: Enable floating node duplication over multiple phi nodes at once.
TryPhiPhiPulls
R
boolean
PullThroughPhiOptimization: Enable floating node duplication over phis where the target node has different phis as input.
TuneInlinerExploration
R
double
0
Increases or decreases the time spent exploring inlining opportunities under the assumption that more time results in better peak performance and less time reduces time to reach (a lower) peak performance. The value of the option is clamped between -1 and 1 inclusive. Anything below 0, reduces the exploration time and anything above 0 increases exploration time. Note that this option is only a heuristic and should be tuned for any specific application.
TypeCheckMaxHints
R
long
2
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.
TypeCheckMinProfileHitProbability
R
double
0.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.
TypeFlowPrinterInRadius
R
long
0
How many levels of inputs to print. A value of 0 prints only the target flow.
TypeFlowPrinterOutRadius
R
long
0
How many levels of outputs to print. A value of 0 prints only the target flow.
TypeFlowSaturationCutoff
R
long
20
The maximum number of types recorded in a type flow. -1 indicates no limitation.
TypicalCallGraphSize
R
long
100
Denotes the call graph size that is considered medium size.
TypicalGraphSize
R
long
3250
The typical graph size at which inlining pressure must start growing.
TypicalGraphSizeInvokeBonus
R
long
70
The increase in estimated typical graph size after inlining, per each extra invoke.
TypicalGraphSizeMax
R
long
15000
The maximum in estimated inlined typical graph size.
UnresolvedIsError
R
boolean
Deprecated, option no longer has any effect.
UnrollEmptyLoops
R
boolean
Unroll empty loops.
UnrollInvertedLoops
R
boolean
Unroll inverted (tail counted) loops.
UnrollMaxIterations
R
long
16
UnrollMultiEndLoops
R
boolean
Unroll loops with multiple loop ends.
UnrollMultiExitLoops
R
boolean
Unroll loops with multiple loop exits.
UseBranchesWithin32ByteBoundary
R
boolean
Force branch instructions to align with 32-bytes boundary, to mitigate the jcc erratum. See https://www.intel.com/content/dam/support/us/en/documents/processors/mitigations-jump-conditional-code-erratum.pdf for more details. If not set explicitly, the default value will be determined according to the CPU model.
UseCompilationStatistics
R
boolean
Enables CompilationStatistics.
UseDynamicNumberOfGCThreads
R
boolean
Dynamically choose the number of threads up to a maximum of ParallelGCThreads that G1 will use for garbage collection work.
UseExceptionProbability
R
boolean
UseExperimentalReachabilityAnalysis
R
boolean
Use experimental Reachability Analysis instead of points-to.
UseGraphCache
R
boolean
Turn on graph caching.
UseLoopEndFrequencies
R
boolean
Derive loop frequencies only from backedge frequencies instead of from loop exit frequencies.
UseLoopLimitChecks
R
boolean
UsePerfData
R
boolean
Flag to disable jvmstat instrumentation for performance testing.
UsePriorityInlining
R
boolean
Use priority-based inlining.
UsePriorityInliningPEA
R
boolean
Turn on partial escape analysis during inlining.
UseReachabilityMethodSummaries
R
boolean
Use method summaries for Reachability Analysis.
UseSnippetGraphCache
R
boolean
Use a cache for snippet graphs.
UseSnippetTemplateCache
R
boolean
Use a LRU cache for snippet templates.
UseTrappingNullChecks
R
boolean
Use traps for null checks instead of explicit null-checks.
UseTypeCheckHints
R
boolean
UsedEdenProportionThreshold
R
double
0.75
Ratio of used bytes to total allocated bytes for eden space. Setting it to a smaller value will trade more triggered hinted GCs for less resident set size.
VTuneAbsoluteFilenames
R
boolean
Use absolute path for source-filenames in VTune events.
VTuneRuntimeSourceDestDir
R
string
None
Directory where Java source-files will be placed for the debugger.
VectorFoldMinIterations
R
long
4
Only generate SIMD loops for vector folds expected to iterate at least this many times.
VectorIntrinsics
R
boolean
Enable vectorized array copy intrinsics.
VectorPolynomialIntrinsics
R
boolean
Enable vectorized polynomial intrinsics.
VectorUnroll
R
long
1
Unroll vectorized loops.
Vectorization
R
boolean
Enable vectorization.
VectorizeAllocation
R
boolean
Enable vectorized array initialization.
VectorizeConditional
R
boolean
Enable vectorization of conditional code.
VectorizeDeopts
R
boolean
Enable vectorization of loops with conditional deopts before writes.
VectorizeFoldShaped
R
boolean
Enable vectorization of loops implementing a higher-order 'fold' function.
VectorizeGather
R
boolean
Enable vectorization of vector gather operations.
VectorizeHashes
R
boolean
Enable vectorization of hashCode patterns.
VectorizeIntegerMinMax
R
boolean
Enable vectorization of integer min/max operations.
VectorizeLoops
R
boolean
Enable vectorization of loops.
VectorizeMapShaped
R
boolean
Enable vectorization of loops implementing a higher-order 'map' function.
VectorizeNegativeStride
R
boolean
Enable vectorization of loops with negative strides.
VectorizeReachabilityFences
R
boolean
Enable vectorization of loops with reachability fences.
VectorizeSIMD
R
boolean
Enable detection of SIMD patterns.
VectorizeSafepoints
R
boolean
Enable vectorization of loops with safepoints.
VectorizeSequence
R
boolean
Enable vectorization of sequence values.
VerboseGC
R
boolean
Print more information about the heap before and after each collection.
Verify
R
string
None
Pattern for specifying scopes in which logging is enabled. See the Dump option for the pattern syntax.
VerifyAfterGC
R
boolean
Verify memory system after GC. G1 GC only.
VerifyBalancedMonitors
R
boolean
Emit extra code to dynamically check monitor operations are balanced.
VerifyBeforeGC
R
boolean
Verify memory system before GC. G1 GC only.
VerifyDuplicationOperations
R
boolean
VerifyDuringGC
R
boolean
Verify memory system during GC (between phases). G1 GC only.
VerifyGCStartAt
R
long
0
GC invoke count where +VerifyHeap kicks in. G1 GC only.
VerifyGraalGraphEdges
R
boolean
Perform expensive verification of graph inputs, usages, successors and predecessors.
VerifyGraalGraphs
R
boolean
Verify graphs often during compilation when assertions are turned on.
VerifyGraalPhasesSize
R
boolean
Verify before - after relation of the relative, computed, code size of a graph.
VerifyHeapAtReturn
R
boolean
Perform platform dependent validation of the Java heap at returns.
VerifyKillCFGUnusedNodes
R
boolean
Verify that there are no new unused nodes when performing killCFG.
VerifyLoopVectorization
R
boolean
Run expensive checks to verify the graph after loop vectorization.
VerifyPhases
R
boolean
VerifyRememberedSets
R
boolean
Verify GC remembered sets. G1 GC only.
VerifyWriteBarrierElimination
R
boolean
Add code to verify that eliminated barriers weren't needed.
WarnAboutCodeSignatureMismatch
R
boolean
Print to stdout when a compilation performed with different profiles generates different backend code.
WarnAboutGraphSignatureMismatch
R
boolean
Print to stdout when a compilation performed with different profiles generates different frontend IR.
WarnAboutNotCachedLoadedAccess
R
boolean
Print to stdout when requesting profiling info not present in a loaded profile.
WarnMissingIntrinsic
R
boolean
Print a warning when a missing intrinsic is seen.
WriteSinkingExcludeFields
R
string
None
Exclude certain fields from write sinking. Fields are specified with the same syntax as method filters, minus the signature part.
WriteableCodeCache
R
boolean
Allocate code cache with write access, allowing inlining of objects.
YoungPLABSize
R
long
4096
Size of young gen promotion LAB's (in HeapWords). G1 GC only.