Skip to main content

native-image Expert Options - Oracle GraalVM 22.0.1

Other versions:22.0.122.3.322.3.222.3.022.2.022.1.022.0.0.221.3.020.3.4

Name
Type
Data Type
Default value
Description
AOTInlineHbooleanDeprecated.
AOTPriorityInlineHbooleanEnable use of priority inlining during AOT compilation.
AOTTrivialInlineHbooleanPerform trivial method inlining in the AOT compiled native image.
APIFunctionPrefixHstringgraal_Prefix that is added to the names of API functions.
AbortOnBenchmarkCounterOverflowHbooleanAbort VM with SIGILL if benchmark counters controlled by the (Generic|Timed|Benchmark)DynamicCounters.
AbortOnFieldReachableHstring<string>*Print a trace and abort the build process if any field matching the specified pattern becomes reachable.
AbortOnMethodReachableHstring<string>*Print a trace and abort the build process if any method matching the specified pattern becomes reachable.
AbortOnTypeReachableHstring<string>*Print a trace and abort the build process if any type matching the specified pattern becomes reachable.
AddAllCharsetsHbooleanMake all hosted charsets available at run time.
AddAllFileSystemProvidersHbooleanMake all supported providers returned by FileSystemProvider.installedProviders() available at run time.
AddExportsHstring<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.
AddOpensHstring<string>*Value <module>/<package><target-module>(,<target-module>)* updates <module> to open <package> to <target-module>, regardless of module declaration.
AddReadsHstring<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.
AdditionalHeaderBytesHlong0Add additional header bytes to each object, for diagnostic purposes.
AdditionalSecurityProvidersHstring<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.
AdditionalSecurityServiceTypesHstring<string>*Comma-separated list of additional security service types (fully qualified class names) for automatic registration. Note that these must be JCA compliant.
AdoptedPGOEnabledHstring<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. .
AggregatedMetricsFileHstringNoneFile 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.
AliasArrayTypeFlowsHbooleanModel all array type flows using a unique elements type flow abstraction.
AlignedHeapChunkSizeHlong524288The size of an aligned chunk. Serial and epsilon GC only.
AllocateInstancePrefetchLinesHlong1Number of cache lines to load after the object address using prefetch instructions.
AllocatePrefetchDistanceHlong192Sets 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.
AllocatePrefetchInstrHlong0Sets 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.
AllocatePrefetchLinesHlong4Number of cache lines to load after the array allocation using prefetch instructions.
AllocatePrefetchStepSizeHlong64Sets the step size (in bytes) for sequential prefetch instructions.
AllocatePrefetchStyleHlong1Generated 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.
AllocationProfilingHbooleanEnable runtime profiling of allocation.
AllocationSiteSensitiveHeapHbooleanA context sensitive heap means that each heap allocated object is modeled by using at least the allocation site.
AllowDeprecatedAutomaticFeatureHbooleanAllow using deprecated @AutomaticFeature annotation. If set to false, an error is shown instead of a warning.
AllowDeprecatedBuilderClassesOnImageClasspathHbooleanInstead of abort, only warn if image builder classes are found on the image class-path.
AllowDeprecatedInitializeAllClassesAtBuildTimeHbooleanInstead of abort, only warn if --initialize-at-build-time is used.
AllowFoldMethodsHbooleanAllow MethodTypeFlow to see @Fold methods.
AllowIncompleteClasspathHbooleanDeprecated.
AllowJRTFileSystemHbooleanEnable support for reading Java modules (jimage format) and the jrt:// file system. Requires java.home to be set at runtime.
AllowVMInspectionHbooleanEnables features that allow the VM to be inspected during run time.
AllowVMInternalThreadsHbooleanDetermines if VM internal threads (e.g., a dedicated VM operation or reference handling thread) are allowed in this image.
AlwaysInlineIntrinsicsHbooleanUnconditionally inline intrinsics.
AlwaysInlineVTableStubsHboolean
AnalysisContextSensitivityHstringinsensControls 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).
AnalysisSizeCutoffHlong8The maximum size of type and method profiles returned by the static analysis. -1 indicates no limitation.
ArrayRegionEqualsConstantLimitHlong4096Array region equality checks will be evaluated at compile time if the receiver is a constant and its length is smaller than this value.
AssertInitializationSpecifiedForAllClassesHbooleanAssert class initialization is specified for all classes.
AsyncSignalSafeDiagnosticsHbooleanOnly print diagnostic output that is async signal safe.
AutomaticUnsafeTransformationLogLevelHlong1Automatic unsafe field value transformation logging level: Disabled0, Basic1, Info2, Debug3.).
AuxiliaryEngineCacheHbooleanEnable the auxiliary engine cache features at runtime.
BaseTargetSpendingHlong120The base target spending used to estimate the inlining threshold; the higher, the likelier it is to inline.
BenchmarkCounterPrintingCutoffHbooleanUse a cutoff to print only most significant counters.
BenchmarkCountersDumpDynamicHbooleanDump dynamic counters.
BenchmarkCountersDumpStaticHbooleanDump static counters.
BenchmarkCountersFileHstringNoneFile 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.
BenchmarkDynamicCountersHstringNoneTurn on the benchmark counters. The format of this option is:.
BlindConstantsHbooleanBlind constants in code with a random key.
BootstrapInitializeOnlyHbooleanDo not compile anything on bootstrap but just initialize the compiler.
BootstrapTimeoutHdouble15Maximum time in minutes to spend bootstrapping (0 to disable this limit).
BootstrapWatchDogCriticalRateRatioHdouble0.25Ratio of the maximum compilation rate below which the bootstrap compilation rate must not fall (0 or less disables monitoring).
BreakChainedPhisHbooleanBreak chained phis.
BuildOutputBreakdownsHbooleanShow code and heap breakdowns as part of the build output.
BuildOutputColorfulHbooleanColor build output (enabled by default if colors are supported by terminal).
BuildOutputGCWarningsHbooleanPrint GC warnings as part of build output.
BuildOutputJSONFileHstring<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.
BuildOutputLinksHbooleanShow links in build output (defaults to the value of BuildOutputColorful).
BuildOutputNativeImageOptionsEnvVarValueHstringNoneInternal option to forward the value of NATIVE_IMAGE_OPTIONS.
BuildOutputPrefixHbooleanPrefix build output with '<pid>:<image name>'.
BuildOutputProgressHbooleanReport progress in build output (default is adaptive).
BuildOutputRecommendationsHbooleanShow recommendations as part of the build output.
BuildOutputSilentHbooleanSilence build output.
BuildReportHbooleanCreate a Native Image Build Report.
BuildReportSamplerFlamegraphHbooleanAdd sampler output in form of a flame graph to Native Image Build Report.
CAIAggressiveColdCodeOptimizationsHbooleanDetermine if the optimizer should run aggressive optimizations on cold code (rarely executed code during the PGO run).
CAIAggressivelyOptimizeHotHbooleanPerform more aggressive optimization on compilation units deemed to be hot.
CAIApplyProfilesWhileExpandingHbooleanApply sampling based profiles to candidates for inlining before doing the inlining.
CAIColdCodeMaxInvocationsHlong3Maximum 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.
CAIHotBonusWhileExpandingHlong50Apply a bonus to the priority of hot cutoff nodes during exploration. Set to 0 to disable.
CAIHotBonusWhileInliningHlong0Apply a bonus to the priority of hot nodes during inlining. Set to 0 to disable.
CAIHotContextsRatioHdouble0.05The minimal percentage of the total time that has to be spent in a method invoked from a calling-context to consider them as hot.
CAIPrintCalleesHbooleanWhether to print the hot compilation units.
CAPCacheDirHstringDirectory where information generated by the CAnnotation Processor are cached.
CCompilerOptionHstring<string>*Provide custom C compiler option used for query code compilation.
CCompilerPathHstringNoneProvide custom path to C compiler used for query code compilation and linking.
CFIHstringNONEOptions for configuring control flow integrity (CFI) enforcement.
CLibraryPathHstring<path>*Search path for C libraries passed to the linker (list of comma-separated directories).
CMoveALotHbooleanPerform CMove transformation on every IfNode possible.
CPUFeaturesHstring<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.
CStandardHstringC89C standard to use in header files. Possible values are 'C89', 'C99', and 'C11'.
CallGraphCompilerNodeLimitHlong35000Controls the maximum number of compiler nodes that can appear in the call graph.
CallGraphSizeLimitHlong1200Controls the maximum size of the call graph before ceasing inlining.
CallGraphSizePenaltyCoefficientHdouble0.01Reduces the likelihood of exploring call graph subtrees that are large.
CanonicalGraphStringsCheckConstantsHbooleanExclude virtual nodes when dumping canonical text for graphs.
CanonicalGraphStringsExcludeVirtualsHbooleanExclude virtual nodes when dumping canonical text for graphs.
CanonicalGraphStringsRemoveIdentitiesHbooleanAttempts to remove object identity hashes when dumping canonical text for graphs.
CanonicalizerVerifyGVNAllowedHbooleanVerify if the current graph state allows GVN to be performed.
CheckBootModuleDependenciesHlong1Temporary option to disable checking of image builder module dependencies or increasing its verbosity.
CheckIsolateThreadAtEntryHbooleanAt CEntryPoints check that the passed IsolateThread is valid.
CheckRecurringCallbackOnNativeToJavaTransitionHbooleanTest whether a thread's recurring callback is pending on each transition from native code to Java.
CheckToolchainHbooleanCheck if native-toolchain is known to work with native-image.
ClampMLInferredProfilesHbooleanClamp the ML-inferred profiles.
ClassHstringClass containing the default entry point method. Optional if --shared is used.
ClassInitializationHstring<string>*A comma-separated list of classes appended with their initialization strategy (':build_time', ':rerun', or ':run_time').
ClearMetricsAfterBootstrapHbooleanClear the debug metrics after bootstrap.
CodeAlignmentHlong16Alignment of AOT and JIT compiled code in bytes.
CodeCacheCountersHbooleanCount accesses to the image and runtime code info table.
CodeInfoEncoderCountersHbooleanStatistics about code and deoptimization information.
CodeInfoIndexGranularityHlong256The granularity of the index for looking up code metadata. Should be a power of 2. Larger values make the index smaller, but access slower.
CodeSectionLayoutOptimizationHstringNoneEnable code-section layout optimization when writing the native image (optimization valid only with --pgo).
CodeSectionLayoutOptimizationClosestIsBestGraphSizeHlong4000When code-section layout optimization is on, specify size of the graph used for closest-is-best algorithm.
CodeSectionLayoutOptimizationSizeLimitHbooleanWhen code-section layout optimization is on, define if a size limit within closest-is-best algorithm is used.
CollectImageBuildStatisticsHbooleanCollect information during image build about devirtualized invokes and bytecode exceptions.
ColorHstringautoColor build output ('always', 'never', or 'auto').
CompilationBailoutAsFailureHbooleanTreat compilation bailouts like compilation failures.
CompilationCountLimitHlong0The number of compilations allowed for any method before the VM exits (a value of 0 means there is no limit).
CompilationExcludePhasesHstringNoneExclude 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.
CompilationExpirationPeriodHdouble300Time 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.
CompilationFailureActionHstringSilentSpecifies the action to take when compilation fails.
CompilationNoProgressPeriodHdouble30Time limit in seconds before a compilation expires (0 to disable the limit) because no progress was made in the compiler.
CompilationNoProgressStartTrackingProgressPeriodHdouble10Delay in seconds before compilation progress detection starts.
CompilationWatchDogStartDelayHlong0Delay in seconds before watch dog monitors a compilation (0 disables monitoring).
CompilationWatchDogVMExitDelayHlong0Number of seconds after which a compilation appearing to make no progress causes the VM to exit (0 disables VM exiting).
CompileGraalWithC1OnlyHbooleanIn tiered mode compile Graal and JVMCI using optimized first tier code.
CompilerBackendHstringlirBackend used by the compiler.
CompilerConfigurationHstringNoneNames 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.
CompilerNodePenaltyCoefficientHdouble0.006Controls the likelihood of exploring subtrees that already have a lot of code during inlining.
ConditionalEliminationHboolean
ConditionalEliminationBeforeAnalysisHbooleanRun conditional elimination before static analysis.
ConditionalEliminationMaxIterationsHlong4
ConfigurationFileDirectoriesHstring<path>*Directories directly containing configuration files for dynamic features at runtime.
ConfigurationResourceRootsHstring<string>*Resource path above configuration resources for dynamic features at runtime.
ConfigureReflectionMetadataHbooleanEnable runtime instantiation of reflection objects for non-invoked methods.
ConsiderVectorizableLoopsHbooleanConsider the vectorizability of loop during the duplication of a merge inside a loop.There are rare cases where duplication can destroy vectorization.
ContendedPaddingWidthHlong128How many bytes to pad fields and classes marked @Contended with.
ContextAwareInliningHbooleanUse PGO sampling data to do context aware inlining.
CopyLanguageResourcesHbooleanAutomatically 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.
CopyPrimitiveElementArraysHbooleanReturn copies of primitive element arrays when referencing them from native code.
CostNewLiveVariableHlong4PullThroughPhiOptimization: Abstract cost for the creation of a new live value: new values can have a negativeimpact on register allocation, therefore we penalize it.
CostReductionFactorHdouble32PullThroughPhiOptimization: Cost/Benefit heuristic for EE floating node duplication: reduce cost by a constant factor when comparing with relative benefit.
CostReductionFactorHotCodeHdouble128See CostReductionFactor.
CountHstringNonePattern for specifying scopes in which counters are enabled. See the Dump option for the pattern syntax. An empty value enables all counters unconditionally.
CountWriteBarriersHbooleanInstrument write barriers with counters. Serial GC only.
CountedStripMiningBudgetHdouble0.1Code size budget of the strip mining transformation in terms of NodeCostSize.
CountedStripMiningBudgetHotCodeHdouble2.5See CountedStripMiningBudget.
CountedStripMiningInnerLoopTripsHlong4096The max number of iterations the counted inner loop takes.
CountedStripMiningLogCountersHbooleanPrint counter phi values on each outer and inner loop iteration.
CountedStripMiningMinFrequencyHlong4Minimal frequency to consider a loop for strip mining.
CountedStripMiningNodeSizeSmallGraphsHlong2000Code size in NodeSize defining when code size heuristics starts capping strip mining.
CountersHstringNoneComma separated names of counters that are enabled irrespective of the value for Count option. An empty value enables all counters unconditionally.
CrashAtHstringNonePattern 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.
CreateJvmShimHbooleanCreate a `jvm` shim for native libraries that link against that library.
CutoffCodeSizePenaltyCoefficientHdouble0.00001Controls the likelihood of further exploring subtrees with a lot of code during inlining.
DashboardAllHbooleanIn the dashboard dump, include all available information about the native image (this takes precedence over more specific flags).
DashboardBgvHbooleanSet dashboard to use BGV format for dump.
DashboardCodeHbooleanIn the dashboard dump, include the breakdown of the code size across different packages.
DashboardDumpHstringNoneEnable dashboard dumps to the specified file.
DashboardHeapHbooleanIn the dashboard dump, include the breakdown of the object sizes in the heap across different classes.
DashboardJsonHbooleanSet dashboard to use JSON format for dump.
DashboardPointsToHbooleanIn the dashboard dump, include the information about the points-to analysis.
DashboardPrettyHbooleanSet dashboard to use pretty print in JSON format.
DeadlockWatchdogExitOnTimeoutHbooleanExit the image builder VM after printing call stacks.
DeadlockWatchdogIntervalHlong10The interval in minutes between watchdog checks (0 disables the watchdog).
DebugCodeInfoMaxDepthHlong2147483647Specify maximum inlining depth to consider when building DebugCodeInfo.
DebugCodeInfoUseSourceMappingsHbooleanDo not use SourceMappings for generating DebugCodeInfo (i.e. only use Infopoints).
DebugInfoSourceCacheRootHstringsourcesDirectory under which to create source file cache for Application or GraalVM classes.
DebugInfoSourceSearchPathHstring<path>*Search path for source files for application or GraalVM classes (list of comma-separated directories or jar files).
DebugPeelingSynonymsHbooleanDebug simulation synonyms during simulation-based loop peeling.
DebugStubsAndSnippetsHbooleanEnable debug output for stub code generation and snippet preparation.
DefaultCharsetHstringUTF-8Default charset of the image, by the default it is the same as the default charset of the image builder.
DefaultLocaleHstringen-USDefault locale of the image, by the default it is the same as the default locale of the image builder.
DefaultLoopFrequencyHdouble100Default frequency for loops with unknown local frequency.
DefaultUnswitchFactorHdouble0.7Default unswitching factor for control split node with unkown profile data.
DeleteLocalSymbolsHbooleanUse linker option to remove all local symbols from image.
DeoptALotHboolean
DeoptAfterOSRHbooleanDeoptimize OSR compiled code when the OSR entry loop is finished if there is no mature profile available for the rest of the method.
DeoptimizeAllHbooleanCompiles all methods as deoptimization targets for testing.
DeoptsToDisableOptimisticOptimizationHlong40
DetailedAssertsHbooleanEnable expensive assertions if normal assertions (i.e. -ea or -esa) are enabled.
DetectInvertedLoopsAsCountedHboolean
DetectUserDirectoriesInImageHeapHbooleanWhen set to true, the image generator verifies that the image heap does not contain a home directory as a substring.
DevirtualizeHotCalleesHbooleanDevirtualizes callees that are hot.
DiagnoseDumpLevelHstring:3Specify the dump level if CompilationFailureAction#Diagnose is used.See CompilationFailureAction for details. file:doc-files/CompilationFailureActionHelp.txt.
DiagnosticBufferSizeHlong30Specifies the number of entries that diagnostic buffers have.
DiagnosticsDirHstring<path>*Sets the dir where diagnostic information is dumped.
DiagnosticsModeHbooleanEnables the diagnostic mode.
DisableInterceptHbooleanDisable intercepting exceptions in debug scopes.
DisableIntrinsicsHstringNoneDisable 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').
DisableTypeIdResultVerificationHbooleanFor internal purposes only. Disables type id result verification even when running with assertions enabled.
DisableURLProtocolsHstring<string>*List of comma separated URL protocols that must never be included.
DominatorUsageTreeMaxDepthHlong16
DumpHstringNoneFilter pattern for specifying scopes in which dumping is enabled.
DumpAfterEveryBCIHbooleanDump the current graph after every bci to IGV.
DumpAfterEveryLoweringHbooleanDump lowering after every node to igv.
DumpDetailedNodeTypeStatsHbooleanGather statistics on local variables and their lifetimes relative to FrameStates.
DumpEndVersusExitLoopFrequenciesHbooleanDebug 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.
DumpFoldedReflectionElementsHbooleanDump folded reflection elements.
DumpHeapHstring<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.
DumpOnErrorHbooleanSend compiler IR to dump handlers on error.
DumpOnPhaseChangeHstringNoneDump 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.
DumpOutlinedSBGraphsHbooleanDump all graphs for outlined String, StringBuilder, and StringBuffer aggregations.
DumpPathHstringgraal_dumpsThe directory where various Graal dump files are written.
DumpRuntimeCompilationOnSignalHbooleanDumps all runtime compiled methods on SIGUSR2.
DumpTargetInfoHbooleanShow native-toolchain information and image-build settings.
DumpThreadStacksOnSignalHbooleanDumps all thread stacktraces on SIGQUIT/SIGBREAK.
DumpingErrorsAreFatalHbooleanTreat any exceptions during dumping as fatal.
DuplicateALotHbooleanPerform Duplications as long as there is any sane improvement.
DuplicateMethodsHbooleanEnable or Disable the Hot method duplication phase.
DuplicationBudgetFactorHdouble0.25Percentage in node cost graph size for the duplication budget. Computed relative to the methods code size.
DuplicationBudgetFactorHotCodeHdouble2.5See DuplicationBudgetFactor.
DuplicationBudgetFactorLateHdouble0.5Percentage in node cost graph size for the late duplication budget. Computed relative to the methods code size.
DuplicationCostReductionFactorHlong64Cost/Benefit heuristic for EE simulation-based code duplication: reduce cost by a constant factor when comparing with relative benefit.
DuplicationCostReductionFactorHotCodeHlong256See DuplicationCostReductionFactor.
DuplicationMinBranchFrequencyHdouble0.66Ignore low frequency branches during duplication.
DynamicCountersPrintGroupSeparatorHbooleanUse grouping separators for number printing.
DynamicProxyConfigurationFilesHstring<path>*One or several (comma-separated) paths to JSON files that specify lists of interfaces that define Java proxy classes.
DynamicProxyConfigurationResourcesHstring<string>*Resources describing program elements to be made available for reflection (see ProxyConfigurationFiles).
DynamicProxyTracingHbooleanEnable trace logging for dynamic proxy.
EEPeelAlotHboolean
EagerSnippetsHbooleanEagerly construct extra snippet info.
EarlyCodeEmissionOrderHbooleanEnable early code emission order computation instead of late code emission order computation.
EarlyExpandCheckCastHbooleanTry to improve code generation by making checkcast operations better optimizable early in the compilation pipeline.
EarlyGVNHbooleanPerform early global value numbering.
EarlyLICMHbooleanPerform early loop invariant code motion.
EmitStringSubstitutionsHbooleanEmit substitutions for String methods.
EnableAllSecurityServicesHbooleanAdd all security service classes to the generated image.
EnableLoggingFeatureHbooleanEnable the feature that provides support for logging.
EnableMonitoringFeaturesHstring<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'.
EnablePLTGOTHbooleanEnables support for dynamic method address resolution. Should never be enabled directly.
EnableSecurityServicesFeatureHbooleanEnable automatic registration of security services.
EnableURLProtocolsHstring<string>*List of comma separated URL protocols to enable.
EnableWildcardExpansionHbooleanEnable wildcard expansion in command line arguments on Windows.
EnforceMaxRuntimeCompileMethodsHbooleanEnforce 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.
EnterpriseCloneReadEliminationHbooleanTry to eliminate array clone operations by handling clone operations in early read elimination.
EnterpriseEAIterationsHlong3Enterprise PEA Iterations.
EnterpriseEarlyGVNHbooleanPerform an extended version of early global value numbering on a graph.Considers only graphs without floating guards.
EnterpriseEarlyInversionGVNHbooleanEnterprise Loop Inversion for GVN.
EnterpriseExactIVOptHbooleanTry to improve counted loop detection by specially handling math exact operations with code duplication.
EnterprisePartialUnrollHbooleanEnable EE version of partial loop unrolling that considers more loop shapes for unrolling.
EnterpriseRCELogRangeCheckValuesHbooleanLog all range check sub values to stdout.
EnterpriseRangeCheckEliminationHbooleanPerform range check elimination for java long type range checks.
EnterpriseReadEliminationHbooleanRun more read eliminations early in the compilation pipeline.
EntryPointNamePrefixHstringPrefix that is added to the names of entry point methods.
ErrorFileHstringsvm_err_b_%t_pid%p.mdIf 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).).
EscapeAnalysisBeforeAnalysisHbooleanRun partial escape analysis on compiler graphs before static analysis.
EscapeAnalysisIterationsHlong2
EscapeAnalysisLoopCutoffHlong20
EscapeAnalyzeOnlyHstringNone
ExactFullUnrollMaxNodesHlong800
ExactPartialUnrollMaxNodesHlong200
ExcludeFunctionFromDuplicationHstringNoneExclude compilations that MethodFilter.match this string from the duplication optimization.
ExcludeResourcesHstring<string>*Regexp to match names of resources to be excluded from the image.
ExitAfterAnalysisHbooleanExit after analysis.
ExitAfterCAPCacheHbooleanExit image generation after C Annotation Processor Cache creation.
ExitAfterQueryCodeGenerationHbooleanOutput query code for target platform without executing it.
ExitAfterRelocatableImageWriteHbooleanExit after writing relocatable file.
ExpandAllProximityBonusHdouble6The decrease in call graph expansion pressure when there are few call nodes left to explore.
ExpandAllProximityBonusInertiaHdouble2The inertia at which the expand-all proximity bonus decreases with the number of yet unexpanded nodes.
ExpansionInertiaBaseValueHlong550The slowness at which the expansion pressure grows with code size; the higher it is, the slower the pressure growth.
ExpansionInertiaInvokeBonusHlong14The extra slowness at which the expansion pressure grows with the code size, for each extra invoke node.
ExpansionInertiaMaxHlong2000The max slowness at which the expansion pressure grows with the code size.
ExtendedAssertsHbooleanEnable extended asserts which slow down analysis.
FailedLoopExplosionIsFatalHbooleanDo not bail out but throw an exception on failed loop explosion.
FallbackExecutorClasspathHstringNoneInternal option used to specify Classpath for FallbackExecutor.
FallbackExecutorJavaArgHstring<string>*Internal option used to specify java arguments for FallbackExecutor.
FallbackExecutorMainClassHstringNoneInternal option used to specify MainClass for FallbackExecutor.
FallbackExecutorSystemPropertyHstring<string>*Internal option used to specify system properties for FallbackExecutor.
FallbackThresholdHlong5Define when fallback-image generation should be used.
FeaturesHstring<string>*A comma-separated list of fully qualified Feature implementation classes.
FloatingDivNodesHbooleanTry to float non-constant division operations to expose global value numbering of divisions.
FoldSecurityManagerGetterHbooleanFold SecurityManager getter.
ForceAdversarialLayoutHbooleanPlace 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.
ForceExplicitReachabilityFenceHbooleanForce an explicit compiler node for Reference.reachabilityFence, instead of relying on FrameState liveness.
ForceGuardHoistingLoopDuplicationWithoutPGOHbooleanConsider methods for guard hoisting loop duplication even if not using PGO.
ForceNoROSectionRelocationsHbooleanUse only a writable native image heap (requires ld.gold linker).
ForceUnrollHbooleanForce partial unrolling of loops if at all possible.
ForeignAPISupportHbooleanSupport for calls via the Java Foreign Function and Memory API.
ForeignConfigurationFilesHstring<path>*Files describing stubs allowing foreign calls.
ForeignResourcesHstring<string>*Resources describing stubs allowing foreign calls.
FrameStateLivenessStatisticsHbooleanGather statistics on local variables and their lifetimes relative to FrameStates.
FullUnrollHboolean
FullUnrollAsPEACleanupHbooleanPerform full unrolling as a Partial Escape Analysis Cleanup.
FullUnrollCodeSizeBudgetFactorForLargeGraphsHdouble2Maximum factor by which full unrolling can increase code size for large graphs. The FullUnrollSmallGraphThreshold option determines which graphs are small.
FullUnrollCodeSizeBudgetFactorForSmallGraphsHdouble10Maximum factor by which full unrolling can increase code size for small graphs. The FullUnrollSmallGraphThreshold option determines which graphs are small.
FullUnrollConstantCompareBoostHlong15
FullUnrollMaxApplicationHlong60
FullUnrollMaxIterationsHlong600
FullUnrollMaxNodesHlong700
FullUnrollSmallGraphThresholdHlong1000The 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.
G1DebugLevelHstringproductSpecifies the debug level of the linked G1 GC [product, fastdebug, or debug].
G1HeapRegionSizeHlong1048576Size of the G1 regions in bytes. Supported values are 1, 2, 4, 8, 16, 32, 64, 128, 256, or 512M.
GCCardSizeInBytesHlong512Card table entry size (in bytes) for the G1 GC.
GCDebugStartCycleHlong-1Start tracing compiled GC barriers after N garbage collections (disabled if N < 0).
GatherSafepointStatisticsHbooleanGather statistics about each safepoint.
GenJavaCodeFilterHstringNoneGenerate Java code before high tier lowering for methods that MethodFilter.match this string.
GenJavaCodeSaveDirectoryHstringNonePath for saving generated Java code. If the value is omitted the debug dump path will be used.
GenJavaCodeWithCommentsHbooleanGenerate comments alongside variable declarations.
GenLoopSafepointsHboolean
GenerateBuildArtifactsFileHbooleanCreate 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.
GenerateDebugInfoHlong0Insert debug info into the generated native image or library.
GenericDynamicCountersHbooleanTurn on the benchmark counters, and displays the results on VM shutdown.
GraalArithmeticStubsHbooleanUse Graal arithmetic stubs instead of HotSpot stubs where possible.
GraalCompileOnlyHstringNoneA 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.
GraalOSHbooleanCompile the application for GraalOS.
GraphCompressionThresholdHlong70Graal graph compression is performed when percent of live nodes falls below this value.
GreyToBlackObjRefDemographicsHbooleanDevelop demographics of the object references visited. Serial GC only.
GuaranteeSubstrateTypesLinkedHbooleanEnsure all created SubstrateTypes are linked.
GuardHoistingLoopDuplicationHbooleanDuplicate certain loops and eliminate their guards.
GuardHoistingLoopDuplicationHoistFractionHdouble0.5Duplicate only loops where at least this fraction of guards can be hoisted.
GuardHoistingLoopDuplicationMaxSizeHlong64Duplicate only loops up to this estimated size.
GuardHoistingLoopDuplicationMaxSizeHotCodeHlong2048See GuardHoistingLoopDuplicationMaxSize.
GuardHoistingLoopDuplicationMinBodyIterationsHlong4Duplicate only loops with at least this many expected iterations of the loop body.
GuardHoistingLoopDuplicationMinBodyIterationsHotCodeHlong0See GuardHoistingLoopDuplicationMinBodyIterations.
GuardHoistingLoopDuplicationMinHotnessHlong1Duplicate only loops in methods executed at least this number of times.
GuardMaxCondExitProbabilityHdouble0.8Maximum execution probability of a branch that contains the ControlSinkNode.
GuardMinCondEstimatedAssemblyHdouble50Minimum estimated assembly size of a branch that triggers the exit guard.
GuardMinLoopProbabilityHdouble0.2Minimum loop body execution probability.
GuardPrioritiesHboolean
HeapChunkHeaderPaddingHlong0Number 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.
HeapDumpDefaultFilenamePrefixHstringsvm-heapdump-A prefix that is used for heap dump filenames if no heap dump filename was specified explicitly.
HeapVerifierVerbosityHlong0Control heap verifier verbosity level: 0 - quiet, 1 - info, 2 - warning, 3 - all.
HighTierInversionHboolean
HighTierPartialUnrollingHbooleanEnable EE partial unrolling in high tier.
HotCodeMinSelfTimeHdouble0.001Minimal self time for a compilation unit to be considered hot globally.
HotCompilationBaseTargetSpendingHlong300BaseTargetSpending value for the hot compilations.
HotCompilationCompilerNodePenaltyCoefficientHdouble0CompilerNodePenaltyCoefficient value for the hot compilations.
HotCompilationCutoffCodeSizePenaltyCoefficientHdouble0CutoffCodeSizePenaltyCoefficient value for the hot compilations.
HotCompilationExpansionInertiaBaseValueHlong550ExpansionInertiaBaseValue value for the hot compilations.
HotCompilationLargeChildrenCountPenaltyCoefficientHdouble0LargeChildrenCountPenaltyCoefficient value for the hot compilations.
HotCompilationMaxPolymorphicDispatchesHlong3MaxPolymorphicDispatches value for the hot compilations.
HotCompilationMinPolymorphicDispatchProbabilityHdouble0.09MinPolymorphicDispatchProbability value for the hot compilations.
HotCompilationRelativeBenefitInliningCoefficientHdouble0.0002RelativeBenefitInliningCoefficient value for the hot compilations.
HotCompilationSmallRootIrPenaltyCoefficientHdouble0SmallRootIrPenaltyCoefficient value for the hot compilations.
HotCompilationTypicalGraphSizeHlong4320TypicalGraphSize value for the hot compilations.
HotCompilationTypicalGraphSizeInvokeBonusHlong20TypicalGraphSizeInvokeBonus value for the hot compilations.
HotSpotDeoptExplicitExceptionsHbooleanTesting only option that forces deopts for exception throws.
HotSpotPostOnExceptionsHbooleanTesting only option that forces deopts for exception throws.
HotSpotPrintInliningHbooleanPrint inlining optimizations.
HybridStaticContextHbooleanEnable hybrid context for static methods, i.e. uses invocation site as context for static methods.
IPEACutoffMaterializationWeightHdouble0Weight of a materialization triggered by an Invoke corresponding to a CutoffNode in the CallTree for IPEA.
IPEAFrequencyHlong3Indicates how often to run IPEA analysis.
IPEAMaterializationBoostConstantHlong12Boost for Parent Nodes based on reduction of materializations.
IPEAMaxForceHlong2Indicates how often to force IPEA analysis when otherwise inlining would not continue.
IPEAStatisticsHistogramBucketsHlong12Track IPEA statistics in substratePriorityInliner.
IPEAVirtualEscapeBoostSingleHlong12Boost for CutoffNode for single escaping object.
IgnoreBadDuplicationsHbooleanIgnore duplications with a bad benefit cost relation.
IgnoreDeoptUsagesHboolean
IgnoreMaxHeapSizeWhileInVMOperationHbooleanIgnore the maximum heap size while a VM operation is executed.
ImageBuildIDHstringImage Build ID is a 128-bit UUID string generated randomly, once per bundle or digest of input args when bundles are not used.
ImageHeapCardMarkingHbooleanEnables card marking for image heap objects, which arranges them in chunks. Automatically enabled when supported. Serial GC only.
ImageObjectTreeExpandRootsHstringOverride the default suppression of specified roots. See: StaticAnalysisReports.md.
ImageObjectTreeExpandTypesHstringOverride the default suppression of specified types. See: StaticAnalysisReports.md.
ImageObjectTreeSuppressRootsHstringSuppress the expansion of specified roots. See: StaticAnalysisReports.md.
ImageObjectTreeSuppressTypesHstringSuppress the expansion of specified types. See: StaticAnalysisReports.md.
ImageSymbolsPrefixHstringCommon prefix used by method symbols in image.
IncludeAllFromModuleHstring<string>*Include all classes, methods, and fields from given modules.
IncludeAllFromPathHstring<string>*Include all classes, methods, fields, and resources from given paths.
IncludeAllLocalesHbooleanMake all hosted locales available at run time.
IncludeAllTimeZonesHbooleanWhen true, all time zones will be pre-initialized in the image.
IncludeDebugHelperMethodsHbooleanDetermines 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.
IncludeLocalesHstring<string>*Comma separated list of locales to be included into the image. The default locale is included in the list automatically if not present.
IncludeMethodDataHbooleanInclude a list of methods included in the image for runtime inspection.
IncludeNodeSourcePositionsHbooleanTrack NodeSourcePositions during runtime-compilation.
IncludeResourceBundlesHstring<string>*Comma separated list of bundles to be included into the image.
IncludeResourcesHstring<string>*Regexp to match names of resources to be included in the image.
IncludeSBOMHstring<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'.
IncludeTimeZonesHstringThe time zones, in addition to the default zone of the host, that will be pre-initialized in the image.
InfeasiblePathCorrelationHboolean
InfeasiblePathCorrelationWindowSizeHlong10Limit of the number of dominating if nodes to consider in infeasible path correlation to avoid compile time explosion.
InitialCollectionPolicyHstringAdaptiveThe garbage collection policy, either Adaptive (default) or BySpaceAndTime. Serial GC only.
InjectedCompilationDelayHlong0The 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.
InlineHbooleanEnable inlining.
InlineAllBonusHdouble1The bonus applied to call nodes that can be fully inlined.
InlineBeforeAnalysisHbooleanDeprecated, option no longer has any effect.
InlineBeforeAnalysisAllowedDepthHlong20Maximum call depth for method inlined before static analysis.
InlineBeforeAnalysisAllowedInliningsHlong10000Maximum number of methods inlined for method inlined before static analysis.
InlineBeforeAnalysisAllowedInvokesHlong1Maximum number of invokes for method inlined before static analysis.
InlineBeforeAnalysisAllowedNodesHlong1Maximum number of computation nodes for method inlined before static analysis.
InlineBeforeAnalysisMethodHandleAllowedDepthHlong1000Maximum call depth for method handle internals inlined before static analysis.
InlineBeforeAnalysisMethodHandleAllowedInliningsHlong10000Maximum number of methods inlined for method handle internals before static analysis.
InlineBeforeAnalysisMethodHandleAllowedInvokesHlong1000Maximum number of invokes for method handle internals inlined before static analysis.
InlineBeforeAnalysisMethodHandleAllowedNodesHlong10000Maximum number of computation nodes for method handle internals inlined before static analysis.
InlineDuringParsingHbooleanInlines trivial methods during bytecode parsing.
InlineDuringParsingMaxDepthHlong10Maximum depth when inlining during bytecode parsing.
InlineEverythingHboolean
InlineGraalStubsHbooleanEmbed all the emitted code for Graal-generated stubs.
InlineMegamorphicCallsHbooleanInline calls with megamorphic type profile (i.e., not all types could be recorded).
InlineMonomorphicCallsHbooleanInline calls with monomorphic type profile.
InlinePartialIntrinsicExitDuringParsingHbooleanInlines 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.
InlinePolymorphicCallsHbooleanInline calls with polymorphic type profile.
InlineVTableStubsHboolean
InlinedCompilerNodeLimitHlong20000Controls the maximum number of compiler nodes that can be inlined into the compiled method.
InliningCoefficientHdouble0.02The coefficient used to compute the inlining threshold; the higher, the more to inline.
InliningDepthErrorHlong1000Maximum inlining depth during partial evaluation before reporting an infinite recursion.
InsertPreMainPostOnlyHbooleanDo not unroll the main loop, only create pre-main-post.
InspectGraphsHbooleanInspect analysis graphs.
InspectServerContentPathHstringinspectPath to the contents of the Inspect web server.
InstallExitHandlersHbooleanProvide java.lang.Terminator exit handlers.
InterceptBailoutHbooleanIntercept also bailout exceptions.
InternalSymbolsAreGlobalHbooleanCompatibility 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.
InternalThreadStackSizeHlong2097152The size of each internal thread stack, in bytes.
IntrinsifyHbooleanUse compiler intrinsifications.
IntrinsifyStringFormatHbooleanIntrinsify String.format with constant format strings.
InversionMinLocalFrequencyHdouble2Minimal loop frequency for a loop to be considered for inversion.
InversionMinRelativeFrequencyHdouble1Minimal relative frequency for a loop to be considered for inversion.
InvertMultiEndLoopsHboolean
InvertNonLeafLoopsHboolean
InvertVectorizableLoopsHboolean
IsolatedLoopHeaderAlignmentHlong32Alignment in bytes for loop header blocks that have no fall through paths.
IterativePeelingLimitHlong2Allow iterative peeling of loops up to this many times (each time the peeling phase runs).
IterativePeelingOuterFrequencyBonusThresholdHdouble4Allow iterative peeling of loops with an outer frequency bonus above this value.
JNIHbooleanEnable Java Native Interface (JNI) support.
JNIConfigurationFilesHstring<path>*Files describing program elements to be made accessible via JNI (for syntax, see ReflectionConfigurationFiles).
JNIConfigurationResourcesHstring<string>*Resources describing program elements to be made accessible via JNI (see JNIConfigurationFiles).
JNIEnhancedErrorCodesHbooleanJNI functions will return more specific error codes.
JNIExportSymbolsHbooleanExport Invocation API symbols.
JNIVerboseLookupErrorsHbooleanReport information about known JNI elements when lookup fails.
JfrBasedExecutionSamplerHbooleanUse JFR-based execution sampler.
LIRDynMoveProfileMethodHbooleanEnable dynamic move profiling per method.
LIRInstructionVerifierPathHstringNonePath to jar file containing LIR instruction verifier.
LIROptConstantLoadOptimizationHbooleanEnable constant load optimization.
LIROptControlFlowOptimizerHboolean
LIROptEdgeMoveOptimizerHboolean
LIROptLSRAEliminateSpillMovesHbooleanEnable spill move elimination.
LIROptLSRAOptimizeSpillPositionHbooleanEnable spill position optimization.
LIROptLSStackSlotAllocatorHbooleanUse linear scan stack slot allocation.
LIROptNullCheckOptimizerHboolean
LIROptRedundantMoveEliminationHboolean
LIROptStackMoveOptimizerHboolean
LIROptimizationHbooleanEnable LIR level optimizations.
LIRProfileMethodsHbooleanEnables profiling of methods.
LIRProfileMovesHbooleanEnables 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).
LSRAOptSplitOnlyHbooleanLSRA optimization: Only split but do not reassign.
LSRAOptimizationHbooleanEnable LSRA optimization.
LargeArrayThresholdHlong131072The size at or above which an array will be allocated in its own unaligned chunk. Serial and epsilon GC only.
LargeChildrenCountPenaltyCoefficientHdouble0.005Reduces the likelihood of exploring call graphs that have a lot of children below the root.
LimitInlinedInvokesHdouble5
LimitObjectArrayLengthHbooleanEnable 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.
LinkAtBuildTimeHstring<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.
LinkAtBuildTimePathsHstring<string>*Require all types in given class or module-path entries to be fully defined at image build-time.
LinkerRPathHstring<string>*Path passed to the linker as the -rpath (list of comma-separated directories).
ListCPUFeaturesHbooleanShow CPU features specific to the target platform and exit.
ListMetricsHbooleanLists 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.
ListModulesHbooleanList observable modules and exit.
LoadExceptionObjectInVMHbooleanUse a VM runtime call to load and clear the exception object from the thread at the start of a compiled exception handler.
LoadProfilesHstringNoneLoad per compilation profile information.
LocalizationCompressBundlesHstring<string>*Regular expressions matching which bundles should be compressed.
LocalizationCompressInParallelHbooleanCompress the bundles in parallel.
LocalizationOptimizedModeHbooleanOptimize the resource bundle lookup using a simple map.
LocalizationSubstituteLoadLookupHbooleanStore the resource bundle content more efficiently in the fallback mode.
LocalsPerCounterHlong16Number of cpu locals per counter. It has to be a power of 2.
LogHstringNonePattern for specifying scopes in which logging is enabled. See the Dump option for the pattern syntax.
LogFileHstringNoneFile 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.
LogVerboseHbooleanEnable more verbose log output when available.
LoopBoundOptimizationPhaseHbooleanTry to improve counted loop detection by finding more precise loop bounds.
LoopExitVsLoopEndFrequencyDiffHdouble1000Scaling factor of frequency difference computed based on loop ends or exits.
LoopHeaderAlignmentHlong16Alignment in bytes for loop header blocks.
LoopInversionHboolean
LoopMaxUnswitchHlong3
LoopPeelingHboolean
LoopPredicationHbooleanHoists array bounds checks out of simple loops. This is ignored if SpeculativeGuardMovement is enabled.
LoopPredicationMainPathHbooleanRestricts LoopPredication to only focus on array bounds checks that dominate the back edge of a loop.
LoopRotationHbooleanEnable Loop Rotation to let the compiler detect more loops as counted.
LoopRotationAssertCountedAfterHboolean
LoopRotationToxicNodeSetMaxNodecostHlong512Maximum size in NodeSize of the code to be duplicated during rotation.
LoopUnswitchHboolean
LoopUnswitchFrequencyBoostHdouble20Number 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.
LoopUnswitchFrequencyMaxFactorHdouble0.95Maximun value for the frequency factor of an invariant.
LoopUnswitchFrequencyMinFactorHdouble0.05Minimum value for the frequency factor of an invariant.
LoopUnswitchMaxIncreaseHlong2000Maximum loop unswitching code size increase in nodes.
LoopUnswitchMinSplitFrequencyHdouble1Lower bound for the minimun frequency of an invariant condition to be unswitched.
LoopUnswitchTrivialHlong20Number of nodes allowed for a loop unswitching regardless of the loop frequency.
LoopVectorizationKeepPostLoopHbooleanKeep the original loop as the post-loop during loop vectorization.
LoopVectorizationMaxBodyNodesHlong16The maximal number of fixed body nodes to consider in loop vectorization.
MLGraphFeaturesExtractionHbooleanExtract graph ML features to support the profile inference in the GraalVM Native Image.
MLProfileInferenceHbooleanEmploy static profiler to infer profiles in the GraalVM Native Image.
MLProfileInferenceGuardsHbooleanEmploy guards to tune the ML-inferred profiles.
MatchExpressionsHbooleanAllow backend to match complex expressions.
MaxCallingContextDepthHlong0The maximum length of the methods context chains.
MaxCallingContextWidthHlong0The maximum number of contexts to record for a method. It only affects the analysis when the max and min calling context depth are different.
MaxCompilationProblemsPerActionHlong2The 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.
MaxConstantObjectsPerTypeHlong0The 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.
MaxDuplicationAnchorHlong2147483647Maximum duplication anchor number.
MaxDuplicationFactorHdouble2Max amount of extra effort to expend handling irreducible loops. A value < 1 disables support for irreducible loops.
MaxGraphSizeNodeCostHlong100000Maximum node cost graph size for duplication. If a graph is bigger duplication will stop.
MaxHeapContextDepthHlong0The maximum length of the context used to model a heap object in addition to the allocation site; used only when ContextSensitiveHeap is enabled.
MaxHeapContextWidthHlong0The 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.
MaxInvokesInTrivialMethodHlong1Maximum number of invokes in a method so that it is considered trivial (for testing only).
MaxMispredictionCostIncreaseFactorHdouble2Abstract measure of the cost of branch misprediction. Higher values make generation of conditional moves more likely.
MaxNodesAfterTrivialInliningHlong2147483647The maximum number of nodes in a graph allowed after trivial inlining.
MaxNodesInTrivialLeafMethodHlong40Maximum number of nodes in a method so that it is considered trivial, if it does not have any invokes.
MaxNodesInTrivialMethodHlong20Maximum number of nodes in a method so that it is considered trivial.
MaxObjectSetSizeHlong100The 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.
MaxPolymorphicDispatchesHlong4The maximum number of dispatches in guarded polymorphic inlining.
MaxPriorityInliningPeelingIterationsHlong10Max number of precise inlining peeling iterations.
MaxReachableTypesHlong-1Maximum number of types allowed in the image. Used for tests where small number of types is necessary.
MaxRoundsHlong1000Maximum number of expand/inline rounds during a single run of the phase.
MaxRuntimeCodeOffsetInstructionsHlong0The maximum number of instructions to randomly offset the entry of runtime installed methods. Use this option for less predictable entry points.
MaxRuntimeCompileMethodsHstring<string>*Maximum number of methods allowed for runtime compilation.
MaxSimulationIterationsHlong2Maximum simulation-duplication iterations of the duplication optimization per invocation.
MaxSimulationIterationsHotCodeHlong4See MaxSimulationIterations.
MaxSplitsPerNodeHlong32
MaxSurvivorSpacesHstringNoneMaximum number of survivor spaces. Serial GC only.
MaxTemplatesPerSnippetHlong50
MaxThinLockRecursionHlong20Maximum recursive locking depth for thin locks.
MaxUnrolledObjectZeroingStoresHlong8Define the maximum number of stores for which the loop that zeroes out objects is unrolled.
MaxUnswitchSuccessorsHlong64Maximum number of split successors before aborting unswitching.
MaxValueNodesPartialEscapeSelectiveInliningHlong35000Controls the maximum number of value nodes that can appear in the final graph.
MaxVectorAlignmentUnrollHlong4Maximum number of unrolled alignment instructions.
MaxVectorUnrollHlong16Maximum length of linear-code vector operations.
MaximumDesiredSizeHlong20000Maximum desired size of the compiler graph in nodes.
MaximumEscapeAnalysisArrayLengthHlong128The maximum length of an array that will be escape analyzed.
MaximumInliningSizeHlong300Inlining is explored up to this number of nodes in the graph for each call site.
MaximumLoopExplosionCountHlong10000Max number of loop explosions per method.
MaximumRecursiveInliningHlong5Maximum level of recursive inlining.
MaximumTransitiveEnabledPullFactorHlong2PullThroughPhiOptimization: Maximum number of algorithm iterations per optimization invocation.
MegamorphicInliningMinMethodProbabilityHdouble0.33Minimum probability for methods to be inlined for megamorphic type profiles.
MemUseTrackersHstringNoneComma 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.
MethodHstringmainName of the main entry point method. Optional if --shared is used.
MethodFilterHstringNonePattern for matching methods. The syntax for a pattern is:.
MethodFilterRootOnlyHbooleanOnly check MethodFilter against the root method in the context if true, otherwise check all methods.
MethodInlineBailoutLimitHlong5000Per-compilation method inlining exploration limit before giving up (use 0 to disable).
MetricsFileHstringNoneFile to which metrics are dumped per compilation.
MicroArchitectureHstringNoneGenerate 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.
MidTierInversionHboolean
MidTierPartialUnrollingHbooleanEnable EE partial unrolling in mid tier.
MinBlockFrequencyPullHdouble0.66PullThroughPhiOptimization: Ignore low frequency branches during duplication.
MinCallingContextDepthHlong0The minimum length of the methods context chains.
MinDuplicationAnchorHlong1Skip n duplication anchors.
MinHeapContextDepthHlong0The minimum length of the context used to model a heap object in addition to the allocation site; used only when ContextSensitiveHeap is enabled.
MinPolymorphicDispatchProbabilityHdouble0.1The minimum probability for using a dispatch in guarded polymorphic inlining.
MinifyInvertedPhisHbooleanBreak chained phis.
MinimalBulkZeroingSizeHlong2048If applicable, use bulk zeroing instructions when the zeroing size in bytes exceeds this threshold.
MinimalGraphNodeSizeCheckSizeHlong1000Minimal size in NodeSize to check the graph size increases of phases.
MinimalRegionsHbooleanTry to reduce duplication code size to the minimal amount of code.
MinimumBlindedConstantSizeHlong4Minimum size (in bytes) of constants to blind.
MinimumPeelFrequencyHdouble0.35
MissingRegistrationReportingModeHstringThrowSelect the mode in which the missing reflection registrations will be reported.
ModuleHstringModule containing the class that contains the main entry point. Optional if --shared is used.
MoveGuardsUpwardsHbooleanMove guard nodes to earlier places in the dominator tree if all successors of basic block share a common guard condition.
MultiExitCostFactorHlong32Cost/Benefit heuristic for EE unrolling: If a loop has multiple exits, cost is increased by this value for every none-sinking loop exit.
MultiExitCostFactorSinkHlong2Cost/Benefit heuristic for EE unrolling: If a loop has multiple exits, cost is increased by this value for every sinking loop exit.
MultiThreadedHbooleanEnable support for threads and and thread-local variables (disable for single-threaded implementation).
NDCVHlong0Run level for NoDeadCodeVerifyHandler (0 off, 1 info, 2 verbose, 3 fatal).
NameHstringName of the output file to be generated.
NativeArchitectureHbooleanUses the native architecture, i.e., the architecture of a machine that builds an image.
NativeLinkerOptionHstring<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.
NeverInlineHstring<string>*Pattern for disabling inlining of methods during image generation.
NewCAPCacheHbooleanCreate a C Annotation Processor Cache. Will erase any previous cache at that same location.
NoDirectRelocationsInTextHbooleanForce no direct relocations to be present in the text section of the generated image.
NonCountedStripMinedBenefitBoostHlong64Benefit boost for strip mined non counted loops.
NonCountedStripMiningBudgetHdouble0.1Code size budget of the non-counted strip mining transformation in terms of NodeCostSize.
NonCountedStripMiningBudgetHotCodeHdouble2.5See NonCountedStripMiningBudget.
NonCountedStripMiningForceStripAllHbooleanForce non-counted strip mining for all loops (also counted ones), test flag only.
NonCountedStripMiningIgnoreSmallLoopsHbooleanIgnore small loops from strip mining, the iv overhead can cause slowdowns.
NonCountedStripMiningInnerLoopTripsHlong-1The max number of iterations the counted inner loop takes. If -1, the frequency of the loop will be used to derive an inner frequency.
NonCountedStripMiningMaximumInnerLoopTripsHlong8192If NonCountedStripMiningInnerLoopTrips -1: Maximum loop trips for strip mined non-counted loops.
NonCountedStripMiningMinFrequencyHdouble16Minimal loop frequency to consider a non-counted loop for strip mining.
NonCountedStripMiningMinimumInnerLoopTripsHlong512If NonCountedStripMiningInnerLoopTrips -1: Minimum loop trips for strip mined non-counted loops.
NonCountedStripMiningReuseIVsHbooleanTry to reuse pre-existing induction variables inside non-counted loops for the strip-mined loop's exit check.
NumberOfAnalysisThreadsHlong-1Deprecated, option no longer has any effect.
NumberOfThreadsHlong12The maximum number of threads to use concurrently during native image generation.
ObjdumpExecutablesHstringNoneComma 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.
ObjectInliningHbooleanDeprectated, has no effect.
ObjectInliningConfigurationFilesHstring<path>*Deprectated, has no effect.
ObjectInliningConfigurationResourcesHstring<string>*Deprectated, has no effect.
OmitHotExceptionStacktraceHboolean
OmitInlinedMethodDebugLineInfoHbooleanOmit generation of DebugLineInfo originating from inlined methods.
OptAssumptionsHboolean
OptBulkAllocationHboolean
OptCompressedFrameStateValuesHboolean
OptConditionalMovesHbooleanOptimize simple if branches with conditional moves.
OptConvertDeoptsToGuardsHboolean
OptDeDuplicationHboolean
OptDeoptimizationGroupingHboolean
OptDevirtualizeInvokesOptimisticallyHboolean
OptDuplicationHboolean
OptEarlyReadEliminationHboolean
OptEliminateGuardsHboolean
OptExactArithmeticHboolean
OptFloatingReadsHboolean
OptGuardRangeGroupingHboolean
OptImplicitNullChecksHboolean
OptInlineImageHeapConstantsHbooleanOptimize address operations that involve image heap constants.
OptLockEliminationHboolean
OptLoopPhiStampsHbooleanInject stamps on induction variables.
OptMethodDuplicationHbooleanDuplicate methods to form hot part and cold part areas.
OptPropagateEqualityHbooleanPropagate equality into dominated nodes.
OptPullThroughPhiHboolean
OptReadEliminationHboolean
OptScheduleOutOfLoopsHboolean
OptStaticFinalFieldFoldingHbooleanOptimize static final fields that get a constant assigned in the class initializer.
OptStringConcatHbooleanOptimize StringBuilder construction.
OptStringConcatDumpHbooleanDump graphs to help debug operation.
OptStringConcatDumpUnhandledHbooleanDump graphs to help debug operation.
OptWriteBarrierEliminationHbooleanEliminate redundant write barriers.
OptWriteMotionHbooleanPerform write sinking, which moves writes inside loops after them, effectively reducing their frequency.
OptimisticAliasingAnalysisHboolean
OptimisticAliasingUseSpeculationHbooleanUse speculation and deoptimization in optimistic aliasing analysis.
OptimizationLogHstringNoneEnable the structured optimization log and specify where it is printed.
OptimizationLogPathHstringNonePath to the directory where the optimization log is saved if OptimizationLog is set to Directory. Directories are created if they do no exist.
OptimizeHlong2Control code optimizations: b - optimize for fastest build time, 0 - no optimizations, 1 - basic optimizations, 2 - advanced optimizations, 3 - all optimizations for best performance.
OptimizeLoopAccessesHbooleanEnable access node optimizations for loops.
OptimizeReturnedParameterHbooleanAnalysis: Detect methods that return one of their parameters and hardwire the parameter straight to the return.
OptimizeVectorAPIHbooleanExpand Vector API operations to optimized machine instructions.
OptionalIdentityHashCodesHbooleanAllocate memory for identity hash codes only for those objects that need it.
OutlineAllocationsHbooleanOutline allocations into factory methods.
OutlineIndyStringConcatenationsHbooleanOutline string concatenation operations represented by invoke dynamic (indy) calls.
OutlineSBMaterializationsHbooleanAllow outlined sequences of (StringBuilder|StringBuffer).append() to be materialized into a (StringBuilder|StringBuilder) instance.
OutlineStringBufferAppendsHbooleanAttempt to outline sequences of StringBuffer.append() operations.
OutlineStringBuilderAppendsHbooleanAttempt to outline sequences of StringBuilder.append() operations.
OverrideProfilesHbooleanAllow multiple compilations of the same method by overriding existing profiles.
PGOAdoptedProfilesNormalizationValueHlong100000000000000The value that will be used to normalize adopted profiles.
PGOContextSensitivityEnabledHbooleanEnables context sensitivity in PGO.
PGOEnableProfileNormalizationHbooleanEnable/disable normalization of profiles.
PGOEnabledHstring<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. .
PGOIgnoreVersionCheckHbooleanPrevent PGO run from failing if the profile version is not correct, and apply profiles on a best-effort basis.
PGOPrintDroppedCallingContextsHbooleanPrint a list of all calling-contexts that are dropped during a PGO run.
PGOPrintUnmatchedPercentageHbooleanPrint the percentage of how many entries from the profile file(s) did not match the target application.
PGOProfilesNormalizationValueHlong1000000000000000The value that will be used to normalize collected profiles.
PageSizeHlong0Define PageSize of a machine that runs the image. The default 0 ( same as host machine page size).
ParseOnceHbooleanDeprecated, option no longer has any effect.
ParseOnceJITHbooleanDeprecated, option no longer has any effect.
ParseRuntimeOptionsHbooleanParse and consume standard options and system properties from the command line arguments when the VM is created.
ParsingContextMaxDepthHlong100Limit the parsing context depth. Default value is arbitrary set at 100.
PartialEscapeAnalysisHboolean
PartialRedundancyEliminationHbooleanEnable partial redundancy elimination.
PartialUnrollHboolean
PartialUnrollCostReductionFactorHighTierHlong2Cost/Benefit heuristic for EE unrolling in high tier: reduce cost by a constant factor when comparing with relative benefit.
PartialUnrollCostReductionFactorHotCodeMidTierHlong32See PartialUnrollCostReductionFactorMidTier.
PartialUnrollCostReductionFactorMidTierHlong8Cost/Benefit heuristic for EE unrolling in mid tier: reduce cost by a constant factor when comparing with relative benefit.
PartialUnrollMaxIterationsHighTierHlong4Maximum number of iterations to unroll for a high tier main loop.
PartialUnrollMaxIterationsMidTierHlong16Maximum number of iterations to unroll for a mid tier main loop.
PartialUnrollMaxSizeHighTierHlong256Maximum node cost size of a loop to be considered for high tier unrolling.
PartialUnrollMaxSizeHotCodeMidTierHlong1024See PartialUnrollMaxSizeMidTier.
PartialUnrollMaxSizeMidTierHlong256Maximum node cost size of a loop to be considered for mid tier tier unrolling.
PartialUnrollMinFrequencyHlong4Minimal loop frequency to consider a loop for partial unrolling.
PathHstringNoneDirectory of the image file to be generated.
PathProfileCutThresholdHlong10The limit on the number of paths at control-flow merges. Decreasing this value reduces the number of paths, but also shortens them.
PathProfileDumpFileHstringNoneDump information for path profile (null or file name). If set to null, then dumping is disabled.
PathProfileFrequentThresholdHlong500Maximum acceptable number of paths coming from the inbound of a merge if both of them are frequent.
PathProfileGlobalLowFrequencyRatioHdouble0.1If some block's relative frequency drops below this number times the maximum relative frequency in the graph, then the block is considered infrequent.
PathProfileLocalLowFrequencyRatioHdouble10If the ratio of the merge's frequency with its inbound's frequency is greater than this threshold, then the inbound is considered infrequent.
PathProfileMaxTotalCountersHlong4000000Maximum number of counters to use in path profiling for all instrumented methods.
PathProfilePolicyHstringNoneEnable or disable the path-profiling algorithm. If it enables it, it also allows to select which mode to execute.
PathProfileRegenerateHbooleanControls whether the path-regeneration algorithm is executed.
PeelALotHbooleanStress test for the loop peeling optimization by applying it aggressively.
PeelOnlyLoopWithNodeIDHlong-1Peel only the loop with the specific loop begin node ID for debugging purposes.
PeelingConsideredMinLoopIterationsHdouble1.5Minimal loop body iterations necessary to consider peeling.
PeelingConsideredMinRelativeFrequencyHdouble4Minimal relative frequency of loop begin necessary to consider peeling.
PeelingHighTierCostReductionFactorHdouble64Cost/Benefit heuristic for EE simulation-based loop peeling in high tier: reduce cost by a constant factor when comparing with relative benefit.
PeelingMidTierCostReductionFactorHdouble8Cost/Benefit heuristic for EE simulation-based loop peeling in mid tier: reduce cost by a constant factor when comparing with relative benefit.
PenalizeComplexLoopControlFlowHbooleanIncrease 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.
PerfDataMemoryMappedFileHbooleanDetermines if the collected performance data should be written to a memory-mapped file so that it can be accessed by external tools.
PhiMinificationMinimalLoopFrequencyHdouble2Minimal loop frequency to consider a loop for inverted phi minifaction.
PinnedObjectAddressingHbooleanAllows the addresses of pinned objects to be passed to other code.
PlatformInterfaceCompatibilityModeHbooleanEnable the behavior of old GraalVM versions. When enabled, interfaces not available for the current platform are filtered.
PredefinedClassesConfigurationFilesHstring<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.
PredefinedClassesConfigurationResourcesHstring<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.
PreferUnsignedComparisonHbooleanRewrite signed comparisons to unsigned ones if the result is equal.
PreserveFramePointerHbooleanSaves stack base pointer on the stack on method entry.
PreventStringValueEscapingHbooleanDetermines if aggressive method inlining should be used to prevent escaping of String.value.
PrintAOTCompilationHbooleanPrint logging information during compilation.
PrintAnalysisCallTreeHbooleanPrint analysis call tree, a breadth-first tree reduction of the call graph.
PrintAnalysisCallTreeTypeHstringTXTChange the output format of the analysis call tree, available options are TXT and CSV. See: Reports.md.
PrintAnalysisStatisticsHbooleanPrint analysis results statistics.
PrintBBInfoHbooleanEnables dumping of basic blocks relative PC and frequencies in the dump directory.
PrintBackendCFGHbooleanEnable dumping scheduled HIR, LIR, register allocation and code generation info to the C1Visualizer.
PrintBlockMappingHbooleanEnable dumping CFG built during initial BciBlockMapping.
PrintCallEdgesHbooleanPrint call edges with other analysis results statistics.
PrintCanonicalGraphStringFlavorHlong0Choose 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).
PrintCanonicalGraphStringsHbooleanEnable dumping canonical text from for graphs.
PrintClassInitializationHbooleanPrints class initialization info for all classes detected by analysis.
PrintCompilationHbooleanPrint an informational line to the console for each completed compilation.
PrintFeaturesHbooleanPrint a list of active features.
PrintFlagsHstringNoneShow available options based on comma-separated option-types (allowed categories: User, Expert, Debug).
PrintFlagsWithExtraHelpHstringNonePrint extra help, if available, based on comma-separated option names. Pass * to show all options that contain extra help.
PrintGOTHbooleanPrints the contents of the GOT.
PrintGraphHstringFileWhere IdealGraphVisualizer graph dumps triggered by Dump or DumpOnError should be written.
PrintGraphFileHbooleanSetting to true sets PrintGraphfile, setting to false sets PrintGraphnetwork.
PrintGraphHostHstring127.0.0.1Host part of the address to which graphs are dumped.
PrintGraphPortHlong4445Port part of the address to which graphs are dumped in binary format.
PrintGraphStateDiffHbooleanPrints the difference in the graph state caused by each phase of the suite.
PrintGraphWithScheduleHbooleanSchedule graphs as they are dumped.
PrintHeapHistogramHbooleanPrint class statistics of native image heap.
PrintIRWithLIRHbooleanPrint HIR along side LIR as the latter is generated.
PrintImageElementSizesHbooleanPrint the sizes of the elements of the built image.
PrintImageHeapConnectedComponentsHbooleanA native-image run with the flag `
+PrintImageHeapConnectedComponents`Hstring-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.
PrintImageHeapPartitionSizesHbooleanPrint the sizes of the native image heap as the image is built.
PrintImageObjectTreeHbooleanPrint image object hierarchy.
PrintIntrinsicsHbooleanPrint the registered intrinsics in a format compatible with DisableIntrinsics.
PrintJNIMethodsHbooleanPrint JNI methods added to generated image.
PrintLIRWithAssemblyHbooleanInclude the LIR as comments with the final assembly.
PrintLoweringScheduleToTTYHbooleanPrint schedule result pre lowering to TTY.
PrintMethodHistogramHbooleanPrint statistics of methods in native image heap.
PrintOutlinedSBMethodMetricsHbooleanPrint histogram and metrics about the OutlinedSBMethods created.
PrintPointsToStatisticsHbooleanReport analysis statistics.
PrintProfileLoadingHbooleanPrint to stdout when a profile is loaded.
PrintProfilingInformationHbooleanPrint profiling information when parsing a method's bytecode.
PrintRestrictHeapAccessPathHbooleanPrint path for @RestrictHeapAccess warnings.
PrintRestrictHeapAccessWarningsHbooleanPrint warnings for @RestrictHeapAccess annotations.
PrintRuntimeCompilationCallTreeHbooleanPrint call tree of methods reachable for runtime compilation.
PrintRuntimeCompileMethodsHbooleanPrint methods available for runtime compilation.
PrintSBOutliningCountersHbooleanPrint counters collected while attempting to outline sequences of StringBuffer and StringBuilder operations.
PrintSynchronizedAnalysisHbooleanPrint types used for Java synchronization.
PrintUninterruptibleCalleeDOTGraphHbooleanPrint (to stderr) a DOT graph of the @Uninterruptible annotations.
PrintUniverseHbooleanPrint information about classes, methods, and fields that are present in the native image.
PrintUnmodifiedGraphsHbooleanDump 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.
PriorityForceInlineHstringNoneUnconditionally inline all methods matching the pattern using the priority-based inliner. See the MethodFilter option for a description of the pattern syntax.
PriorityInliningPolicyHstringThe policy to use, must be empty for automatic resolution.
PriorityInliningTuningPolicyHstringDomainSpecificComma-separated list of analysis policies for exploring the methods in the call graph and for inlining, empty for no policy.
PriorityNeverInlineHstringNoneNever inline methods matching the pattern using the priority-based inliner. See the MethodFilter option for a description of the pattern syntax.
ProfileAllocationsHbooleanEnable profiling of allocation sites.
ProfileAllocationsContextHstringAllocatingMethodControl the naming and granularity of the counters when using ProfileAllocations.
ProfileAnalysisOperationsHbooleanTrack the progress of the static analysis.
ProfileCompiledMethodsHboolean
ProfileConstantObjectsHbooleanTrack the creation of constant objects.
ProfileDeoptimizationHbooleanPrint logging information during object file writing.
ProfileLockEliminationHboolean
ProfileMethodFilterHstringNoneRestrict saving or loading of profiles based on this filter. See the MethodFilter option for the pattern syntax.
ProfileMonitorsHbooleanEnable profiling of monitor operations.
ProfileOptBulkAllocationHboolean
ProfileSelfTimeHbooleanExcludes time spent in invoked methods; measures total time including subcalls when turned off.
ProfilingEnablePathProfilingHbooleanReplace profiling counters with path-profiling counters.
ProfilingEnableProfileDumpHooksHbooleanDump the PGO profiles on shutdown.
ProfilingEnabledHbooleanInstrument AOT compiled code to collect data for profile-guided optimization into default.iprof file.
ProfilingPackagePrefixesHstringNoneA comma-separated list of package prefixes for which the PGO profiles are collected.
ProfilingPathProfilingVerifyHbooleanCollect profiling counters, and verify that they match the path-profile counters.
ProfilingRDPIDHbooleanUse RDTSCP or RDPID if available to compute the index in the counter array. Setting this option to false ensures Knuth hashing is used instead.
PropagateEqualityDepthHlong6Maximum depth of dependency when propagating equals property.
ProtectionKeysHbooleanEnable support for Memory Protection Keys.
PruneLargeDominatorUsageTreesHboolean
PullThroughPhiCodeSizeIncreaseHdouble0.1PullThroughPhiOptimization: Percentage in node cost graph size for the floating node duplication budget. Computed relative to the method's graph size.
PullThroughPhiCodeSizeIncreaseHotCodeHdouble2.5See PullThroughPhiCodeSizeIncrease.
QueryCodeDirHstringDirectory where query code for target platform should be output.
RawConditionalEliminationHboolean
ReadEliminationMaxLoopVisitsHlong5
ReadProxySchedulingStrategyHstringLATEST_OUT_OF_LOOPSChose the scheduling strategy for inserting the read proxies.
ReassociateExpressionsHbooleanRe-associate loop invariants and constants.
ReduceDCEHbooleanDisable optional dead code eliminations.
ReflectionConfigurationFilesHstring<path>*One or several (comma-separated) paths to JSON files that specify which program elements should be made available via reflection.
ReflectionConfigurationResourcesHstring<string>*Resources describing program elements to be made available for reflection (see ReflectionConfigurationFiles).
ReflectionPluginTracingHbooleanEnable trace logging for reflection plugins.
RegisterPressureHstringNoneComma separated list of registers that register allocation is limited to.
RelativeBenefitInliningCoefficientHdouble0.001The coefficient used to compute the inlining threshold; the higher, the hard to inline.
RelaxTypeFlowStateConstraintsHbooleanAllow a type flow state to contain types not compatible with its declared type.
RemoveLoopSafepointsHbooleanRemove safepoints on counted loop ends.
RemoveNeverExecutedCodeHboolean
RemoveSaturatedTypeFlowsHbooleanEnable the type flow saturation analysis performance optimization.
RemoveUnneededDeoptSupportHbooleanRemove Deopt(Entries,Anchors,Proxies) determined to be unneeded after the runtime compiled graphs have been finalized.
RemoveUnusedSymbolsHbooleanUse linker option to prevent unreferenced symbols in image.
ReplaceInputsWithConstantsBasedOnStampsHboolean
ReportAnalysisForbiddenTypeHstring<string>*Report error if <typename>[:<UsageKind>{,<UsageKind>}] is discovered during analysis (valid values for UsageKind: InHeap, Allocated, Reachable).
ReportExceptionStackTracesHbooleanShow exception stack traces for exceptions during image building.).
ReportPerformedSubstitutionsHbooleanReport performed substitutions.
ReportUnsafeOffsetWarningsHbooleanPrint unsafe operation offset warnings.
ReportUnsupportedElementsAtRuntimeHbooleanReport usage of unsupported methods and fields at run time when they are accessed the first time, instead of as an error during image building.
ReservedAuxiliaryImageBytesHlong0Size in bytes of an address space to reserve for auxiliary images.
ResourceConfigurationFilesHstring<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.
ResourceConfigurationResourcesHstring<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.
RespectVectorizationHbooleanTry avoid unrolling vectorizable loops.
ReturnAfterAnalysisHbooleanReturn after analysis.
ReuseRecursiveDuplicatedMethodsHbooleanDo not duplicate recursive methods but rather reuse a previous duplicate.
RewriteStripMinedCounterTo32BitHbooleanRewrite the counter of a strip mined loop to have a 32bit type.
RootSizePenaltyCoefficientHdouble0.1Reduces likelihood of spending a lot of time inlining when the IR is already large.
RootSizePenaltyTypicalGraphSizeHlong3250At what size of the root IR graph do we start to consider applying a exploration penalty.
RotateNonLeafLoopsHboolean
RotationMinLocalFrequencyHdouble2Minimal loop frequency for a loop to be considered for rotation.
RotationMinRelativeFrequencyHdouble1Minimal relative frequency for a loop to be considered for rotation.
RunMainInNewThreadHbooleanInitializes and runs main entry point in a new native thread.
RunReachabilityHandlersConcurrentlyHbooleanRun reachability handlers concurrently during analysis.
RuntimeAssertionsHstring<string>*Enable or disable Java assert statements at run time.
RuntimeCheckedCPUFeaturesHstring<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: ''.
RuntimeCompilationInlineBeforeAnalysisHbooleanPerform InlineBeforeAnalysis on runtime compiled methods.
RuntimeSystemAssertionsHbooleanEnable or disable Java system assertions at run time.
SIMDArithmeticReduceMinLengthHlong16Minimum vector length for matching SIMD arithmetic reduce patterns.
SIMDVectorizationCheckLoadGroupProfitabilityHbooleanCheck for profitability when grouping memory loads to SIMD loads.
SIMDVectorizationDirectLoadStoreHbooleanAllow SIMDVectorization to vectorize load to store opportunities when there are no matching SIMD operations between load and store.
SIMDVectorizationSingletonsHbooleanEnable matching of singleton groups to increase corner-case matching.
SIMDVectorizationVolatileLoadsHbooleanAllow load grouping to include grouping of volatile loads. Note currently this may generate incorrect results.
SIMDVectorizationVolatileWritesHbooleanAllow store grouping to include grouping of volatile writes. Note currently this may generate incorrect results.
SIMDVectorizationWindowSizeHlong4Set the number of dominating and dominated blocks scanned per block.
SafepointCheckInEpilogueHbooleanCheck for safepoints in method epilogue.
SafepointSamplerStatsHstringDump some stats about the safepoint sampler into a file on this path.
SamplingCollectHbooleanPerform profiling by sampling the AOT compiled code to collect data for profile-guided optimization.
SaveProfilesHbooleanSave per compilation profile information.
SaveProfilesPathHstringNonePath for saving compilation profiles. If the value is omitted the debug dump path will be used.
ScanObjectsParallelHbooleanObject scanning in parallel.
ScheduledDuplicationSimulationHbooleanSimulation can either only process fixed nodes or schedule the graph and also process floating nodes.
SerializationConfigurationFilesHstring<path>*One or several (comma-separated) paths to JSON files that specify lists of serialization configurations.
SerializationConfigurationResourcesHstring<string>*Resources describing program elements to be made available for serialization (see SerializationConfigurationFiles).
SerializationDenyConfigurationFilesHstring<path>*One or several (comma-separated) paths to JSON files that specify lists of serialization configurations.
SerializationDenyConfigurationResourcesHstring<string>*Resources describing program elements that must not be made available for serialization.
ServiceLoaderFeatureExcludeServiceProvidersHstring<string>*Comma-separated list of service providers that should be excluded.
ServiceLoaderFeatureExcludeServicesHstring<string>*Comma-separated list of services that should be excluded.
SharedLibraryHbooleanBuild shared library.
ShowConfigurationHstringnoneWrites to the VM log information about the compiler configuration selected.
ShowDumpFilesHbooleanPrint the name of each dump file path as it's created.
ShowSubstitutionSourceInfoHbooleanControls 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.
SignalHandlerBasedExecutionSamplerHbooleanDetermines if JFR uses a signal handler for execution sampling.
SimulateClassInitializerHbooleanSimulate the effects of class initializer at image build time, to avoid class initialization at run time.
SimulateClassInitializerCollectAllReasonsHbooleanConfiguration for SimulateClassInitializer: Collect all reasons why a class initializer cannot be simulated.
SimulateClassInitializerMaxAllocatedBytesHlong40000Configuration for SimulateClassInitializer: Maximum number of bytes allocated in the image heap for each class initializer.
SimulateClassInitializerMaxInlineDepthHlong200Configuration for SimulateClassInitializer: Maximum inlining depth during simulation.
SimulateClassInitializerMaxLoopIterationsHlong2000Configuration for SimulateClassInitializer: Maximum number of loop iterations that are unrolled during simulation.
SimulationBasedLoopPeelingHbooleanUse DBDS algorithm to simulate the impact of peeling on a loop.
SimulationPruneUnlikelyBranchesHbooleanIgnore low frequency branches during simulation.
SizeForIPEAFrequencyDecreaseHlong500Size of the IR that forces a reduction in the number of IPEA runs made.
SmallCompiledLowLevelGraphSizeHlong330If the previous low-level graph size of the method exceeds the threshold, it is not inlined.
SmallGraphDuplicationBudgetFactorHdouble1See 'DuplicationBudgetFactor': for small graphs.
SmallGraphSizeHlong2000Node cost graph size for a graph to be considered 'small'.
SmallRootIrPenaltyCoefficientHdouble0.02Reduces the likelihood of exploring call graphs with IR size much larger than the root.
SnippetCountersHbooleanEnable counters for various paths in snippets.
SoftRefLRUPolicyMSPerMBHlong1000This 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.
SourceLevelDebugHbooleanPreserve 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.
SourceLevelDebugFilterHstring<string>*Constrain debug info generation to the comma-separated list of package prefixes given to this option.
SpawnIsolatesHbooleanSupport multiple isolates.
SpectrePHTBarriersHstringNoneSelect a strategy to mitigate speculative bounds check bypass (aka Spectre-PHT or Spectre V1).
SpectrePHTIndexMaskingHbooleanMask indices to scope access to allocation size after bounds check.
SpeculativeExecutionBarriersHbooleanStop speculative execution on all branch targets with execution barrier instructions.
SpeculativeGuardMovementHbooleanMove loop invariant guards (e.g., array bounds checks) out of loops.
SpeculativeStoreCheckHbooleanSpeculates that arrays have exact type to optimize store checks.
StackOverflowCheckInPrologueHbooleanCheck for stack overflow in method prologue.
StackRedZoneSizeHlong8192Size (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.
StackTraceHbooleanDeprecated, has no effect.
StackYellowZoneSizeHlong32768Size (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.
StaticExecutableHbooleanBuild statically linked executable (requires static libc and zlib).
StaticExecutableWithDynamicLibCHbooleanBuilds a statically linked executable with libc dynamically linked.
StaticLibStdCppHbooleanBuilds image with libstdc++ statically linked into the image (if needed).
StrengthenGraphWithConstantsHbooleanPerform constant folding in StrengthenGraphs.
StressExplicitExceptionCodeHbooleanStress the code emitting explicit exception throwing code.
StressInvokeWithExceptionNodeHbooleanStress the code emitting invokes with explicit exception edges.
StressTestEarlyReadsHbooleanStress the code by emitting reads at earliest instead of latest point.
StrictConfigurationHbooleanWhen configuration files do not match their schema, abort the image build instead of emitting a warning.
StrictDeoptInsertionChecksHbooleanPerform checks that guards and deopts aren't introduced in graphs that should handle exceptions explicitly.
StrictImageHeapHbooleanEnable 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.
StrictProfilesHbooleanThrow an error if an attempt is made to overwrite/update a profile loaded from disk.
StrictQueryCodeCompilationHbooleanUse strict checks when performing query code compilation.
StringIndexOfConstantLimitHlong4096String.indexOf invocations will be evaluated at compile time if the receiver is a constant and its length is smaller than this value.
StripDebugInfoHbooleanUse a separate file for debug info.
StripMineALotHbooleanForce strip mining of all loops that can be strip mined.
StripMineCountedLoopsHboolean
StripMineInvertedLoopsHbooleanStrip mine inverted loops.
StripMineNonCountedLoopsHboolean
SubstitutionChecksumResultHstringNoneInstead of reporting substitution mismatches on the command line, write the result to the specified JSON file.
SupportCompileInIsolatesHbooleanSupport runtime compilation in separate isolates (enable at runtime with option CompileInIsolates).
SupportJsrBytecodesHboolean
SupportOSRWithLocksHbooleanSupport 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.
SupportPredefinedClassesHbooleanEnable support for predefining additional classes.
SupportRecurringCallbackHbooleanSupport a per-thread timer that is called at a specific interval.
SuppressStderrHbooleanSuppress console error output for unittests.
SuppressStdoutHbooleanSuppress console normal output for unittests.
SystemicCompilationFailureRateHlong1Compilation 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.
TargetPlatformHstringSelects native-image compilation target (in <OS>-<architecture> format). Defaults to host's OS-architecture pair.
TempDirectoryHstring<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.
ThrowLinkAtBuildTimeIOExceptionsHbooleanInstead of warning, throw IOExceptions for link-at-build-time resources at build time.
ThrowMissingRegistrationErrorsHstring<string>*Throw Native Image-specific errors when trying to access an element that has not been registered.
ThrowMissingRegistrationErrorsPathsHstring<string>*Trigger missing registration errors from all types in the given class or module-path entries.
ThrowUnsafeOffsetErrorsHbooleanThrow unsafe operation offset errors.
TimeHstringNonePattern for specifying scopes in which timing is enabled. See the Dump option for the pattern syntax. An empty value enables all timers unconditionally.
TimeStampProfilingHbooleanProfile method execution time.
TimedDynamicCountersHlong-1Turn on the benchmark counters, and displays the results every n milliseconds.
TimersHstringNoneComma separated names of timers that are enabled irrespective of the value for Time option. An empty value enables all timers unconditionally.
TraceBytecodeParserLevelHlong0The 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.
TraceClassInitializationHstring<string>*Comma-separated list of fully-qualified class names that class initialization is traced for.
TraceDuplicatedMethodsHbooleanTrace duplicated methods.
TraceEscapeAnalysisHboolean
TraceExceptionHandlerStubHbooleanTrace execution of stub used to handle an exception thrown by a callee.
TraceInlineDuringParsingHbooleanTraces inlining performed during bytecode parsing.
TraceInliningHbooleanEnable tracing of inlining decisions.
TraceInliningForStubsAndSnippetsHbooleanEnable inlining decision tracing in stubs and snippets.
TraceLIRGeneratorLevelHlong0The trace level for the LIR generator.
TraceLocalizationFeatureHbooleanWhen enabled, localization feature details are printed.
TraceLoggingFeatureHbooleanWhen enabled, logging feature details are printed.
TraceMonitorsMethodFilterHstringNoneTrace monitor operations in methods whose fully qualified name contains this substring.
TraceMonitorsTypeFilterHstringNoneTrace monitor operations on objects whose type contains this substring.
TraceNativeToolUsageHbooleanTrace all native tool invocations as part of image building.
TraceObjectInstantiationHstring<string>*Comma-separated list of fully-qualified class names that object instantiation is traced for.
TraceParserPluginsHbooleanTraces use of plugins during bytecode parsing.
TraceSecurityServicesHbooleanEnable tracing of security services automatic registration.
TraceUnwindStubHbooleanTrace execution of the stub that routes an exception to a handler in the calling frame.
TraceVMOperationsHbooleanTrace VMOperation execution.
TrackAccessChainHbooleanTrack the callers for methods and accessing methods for fields.
TrackGraphSizesInDuplicationHbooleanEnable (if Count is enabled) graph size tracking during every duplication iteration.
TrackIPEAStatisticsHstringnoneTrack IPEA statistics in substratePriorityInliner.
TrackInliningStatisticsHstringnoneTrack inlining statistics (inlining duration, call tree size, compiler node counts, and the number of callsites). One of: none, interactive.
TrackInputFlowsHbooleanTrack the input for type flows.
TrackMemUseHstringNonePattern 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.
TrackNodeInsertionHbooleanTrack source stack trace where a node was inserted into the graph.
TrackNodeSourcePositionHbooleanTrack the NodeSourcePosition.
TrackPrimitiveValuesHbooleanTrack primitive values using the infrastructure of points-to analysis.
TreatRuntimeCodeInfoReferencesAsWeakHbooleanDetermines if references from runtime-compiled code to Java heap objects should be treated as strong or weak.
TrivialInliningSizeHlong10Graphs with less than this number of nodes are trivial and therefore always inlined.
TrivialLoopSizeLimitForPeelingHdouble512Loop 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.
TruffleCompilerConfigurationHstringNoneSelect a compiler configuration for Truffle compilation (default: use Graal system compiler configuration).
TruffleHostInliningHbooleanWhether Truffle host inlining is enabled.
TruffleHostInliningBaseBudgetHlong5000Maximum budget for Truffle host inlining for runtime compiled methods.
TruffleHostInliningByteCodeInterpreterBudgetHlong100000Maximum budget for Truffle host inlining for runtime compiled methods with a BytecodeInterpreterSwitch annotation.
TruffleHostInliningMaxExplorationDepthHlong1000Determines the maximum call depth for exploration during host inlining.
TruffleHostInliningMaxSubtreeInvokesHlong20Maximum number of subtree invokes for a subtree to get inlined until it is considered too complex.
TruffleHostInliningMinFrequencyHdouble0.001Minimum relative frequency for calls to get inlined. Default 0.001 on HotSpot and no minimum frequency on SVM.
TruffleHostInliningPrintExploredHbooleanWhen logging is activated for this phase enables printing of only explored, but ultimately not inlined call trees.
TruffleImmutableFrameFieldsHbooleanWhether Truffle should mark final frame fields as immutable.
TruffleTrustedNonNullCastHbooleanWhether Truffle trusted non-null casts are enabled.
TruffleTrustedTypeCastHbooleanWhether Truffle trusted type casts are enabled.
TrustFinalDefaultFieldsHbooleanDetermines whether to treat final fields with default values as constant.
TryExplodeOverPhisHbooleanPullThroughPhiOptimization: Enable floating node duplication over multiple phi nodes at once.
TryPhiPhiPullsHbooleanPullThroughPhiOptimization: Enable floating node duplication over phis where the target node has different phis as input.
TuneInlinerExplorationHdouble0Increases 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.
TypeCheckMaxHintsHlong2The 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.
TypeCheckMinProfileHitProbabilityHdouble0.5If 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.
TypeFlowPrinterInRadiusHlong0How many levels of inputs to print. A value of 0 prints only the target flow.
TypeFlowPrinterOutRadiusHlong0How many levels of outputs to print. A value of 0 prints only the target flow.
TypeFlowSaturationCutoffHlong20The maximum number of types recorded in a type flow. -1 indicates no limitation.
TypicalCallGraphSizeHlong100Denotes the call graph size that is considered medium size.
TypicalGraphSizeHlong3250The typical graph size at which inlining pressure must start growing.
TypicalGraphSizeInvokeBonusHlong70The increase in estimated typical graph size after inlining, per each extra invoke.
TypicalGraphSizeMaxHlong15000The maximum in estimated inlined typical graph size.
UnlockExperimentalVMOptionsHbooleanEnable and disable normal processing of flags relating to experimental options.
UnresolvedIsErrorHbooleanDeprecated, option no longer has any effect.
UnrollEmptyLoopsHbooleanUnroll empty loops.
UnrollInvertedLoopsHbooleanUnroll inverted (tail counted) loops.
UnrollMaxIterationsHlong16
UnrollMultiEndLoopsHbooleanUnroll loops with multiple loop ends.
UnrollMultiExitLoopsHbooleanUnroll loops with multiple loop exits.
UnsafeOffsetWarningsAreFatalHbooleanPrint unsafe operation offset warnings.
UseApplicationCodeSourceLocationHbooleanReturn the application path as the Class.getProtectionDomain().getCodeSource().getLocation() for all classes that have no explicit ProtectionDomain.
UseBranchesWithin32ByteBoundaryHbooleanForce 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.
UseCAPCacheHbooleanIndicate the C Annotation Processor to use previously cached native information when generating C Type information.
UseCalleeSavedRegistersHbooleanUse callee saved registers to reduce spilling for low-frequency calls to stubs (if callee saved registers are supported by the architecture).
UseCompilationStatisticsHbooleanEnables CompilationStatistics.
UseCompressedReferenceShiftHbooleanUse bit-shifting to enlarge the address range with narrow references.
UseCompressedReferencesHbooleanUse compressed references (32-bit instead of 64-bit references to Java objects).
UseContainerSupportHbooleanEnable detection and runtime container configuration support.
UseDedicatedVMOperationThreadHbooleanDetermines if VM operations should be executed in a dedicated thread.
UseDirectCallTrampolinesALotHbooleanForce 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.
UseEpsilonGCHbooleanUse a no-op GC.
UseExceptionProbabilityHboolean
UseExperimentalReachabilityAnalysisHbooleanUse experimental Reachability Analysis instead of points-to.
UseG1GCHbooleanDetermines if the G1 garbage collector should be used.
UseGraphCacheHbooleanTurn on graph caching.
UseIPEAHbooleanUse InterproceduralPartialEscapeAnalysisPhase in priorityInliner.
UseImagebuildDebugSectionsHbooleanEmit debuginfo debug.svm.imagebuild.* sections with detailed image-build options.
UseLibCHstringNoneSelects the libc implementation to use. Available implementations: glibc, musl, bionic.
UseLoopEndFrequenciesHbooleanDerive loop frequencies only from backedge frequencies instead of from loop exit frequencies.
UseLoopLimitChecksHboolean
UseMethodChecksHbooleanPerform method-based checks during inlining.
UseMonitorFastPathHbooleanUse thin locking fast path in snippets.
UseNullRegionHbooleanDetermines if a null region is present between the heap base and the image heap.
UseOldMethodHandleIntrinsicsHbooleanForce using legacy method handle intrinsics.
UsePartialEscapeSelectiveInliningHbooleanUse PartialEscapeSelectiveInliningPhase to give PartialEscape phase more opportunities.
UsePriorityInliningHbooleanUse priority-based inlining.
UsePriorityInliningPEAHbooleanTurn on partial escape analysis during inlining.
UseReachabilityMethodSummariesHbooleanUse method summaries for Reachability Analysis.
UseRememberedSetHbooleanDetermines if a remembered sets is used, which is necessary for collecting the young and old generation independently.
UseSerialGCHbooleanUse a serial GC.
UseServiceLoaderFeatureHbooleanAutomatically register services for run-time lookup using ServiceLoader.
UseSnippetGraphCacheHbooleanUse a cache for snippet graphs.
UseSnippetTemplateCacheHbooleanUse a LRU cache for snippet templates.
UseStringInliningHbooleanDetermines if the string inlining optimization should be used.
UseTLABHbooleanUse thread-local object allocation. G1 GC only.
UseThinLockingHbooleanUse thin locking to optimize monitor operations.
UseTrappingNullChecksHbooleanUse traps for null checks instead of explicit null-checks.
UseTypeCheckHintsHboolean
VMContinuationsHbooleanSupport 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.
VTunePathHstringPath to VTune installation (usually /opt/intel/oneapi/vtune/latest/ or /opt/intel/vtune_amplifier).
VectorFoldMinIterationsHlong4Only generate SIMD loops for vector folds expected to iterate at least this many times.
VectorIntrinsicsHbooleanEnable vectorized array copy intrinsics.
VectorPolynomialIntrinsicsHbooleanEnable vectorized polynomial intrinsics.
VectorUnrollHlong1Unroll vectorized loops.
VectorizationHbooleanEnable vectorization.
VectorizeAllocationHbooleanEnable vectorized array initialization.
VectorizeConditionalHbooleanEnable vectorization of conditional code.
VectorizeDeoptsHbooleanEnable vectorization of loops with conditional deopts before writes.
VectorizeFoldShapedHbooleanEnable vectorization of loops implementing a higher-order 'fold' function.
VectorizeGatherHbooleanEnable vectorization of vector gather operations.
VectorizeHashesHbooleanEnable vectorization of hashCode patterns.
VectorizeIntegerMinMaxHbooleanEnable vectorization of integer min/max operations.
VectorizeLoopsHbooleanEnable vectorization of loops.
VectorizeMapShapedHbooleanEnable vectorization of loops implementing a higher-order 'map' function.
VectorizeNegativeStrideHbooleanEnable vectorization of loops with negative strides.
VectorizeReachabilityFencesHbooleanEnable vectorization of loops with reachability fences.
VectorizeSIMDHbooleanEnable detection of SIMD patterns.
VectorizeSafepointsHbooleanEnable vectorization of loops with safepoints.
VectorizeSequenceHbooleanEnable vectorization of sequence values.
VerifyHstringNonePattern for specifying scopes in which logging is enabled. See the Dump option for the pattern syntax.
VerifyAfterGCHbooleanVerify the heap after doing a garbage collection if VerifyHeap is enabled. Serial GC only.
VerifyBalancedMonitorsHbooleanEmit extra code to dynamically check monitor operations are balanced.
VerifyBeforeGCHbooleanVerify the heap before doing a garbage collection if VerifyHeap is enabled. Serial GC only.
VerifyDeoptimizationEntryPointsHbooleanVerify that all possible deoptimization entry points have been properly compiled and registered in the metadata.
VerifyDuplicationOperationsHboolean
VerifyGraalGraphEdgesHbooleanPerform expensive verification of graph inputs, usages, successors and predecessors.
VerifyGraalGraphsHbooleanVerify graphs often during compilation when assertions are turned on.
VerifyGraalPhasesSizeHbooleanVerify before - after relation of the relative, computed, code size of a graph.
VerifyHeapHbooleanVerify the heap before and after each collection.
VerifyHeapAtReturnHbooleanPerform platform dependent validation of the Java heap at returns.
VerifyKillCFGUnusedNodesHbooleanVerify that there are no new unused nodes when performing killCFG.
VerifyLoopVectorizationHbooleanRun expensive checks to verify the graph after loop vectorization.
VerifyNamingConventionsHbooleanVerify naming conventions during image construction.
VerifyPhasesHboolean
VerifyReferencesHbooleanVerify all object references if VerifyHeap is enabled. Serial GC only.
VerifyReferencesPointIntoValidChunkHbooleanVerify that object references point into valid heap chunks if VerifyHeap is enabled. Serial GC only.
VerifyRememberedSetHbooleanVerify the remembered set if VerifyHeap is enabled. Serial GC only.
VerifySubstitutionChecksumHstringNoneVerify substitution checksums in the specified directory.
VerifyTypesHbooleanVerify 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.
VerifyWriteBarrierEliminationHbooleanAdd code to verify that eliminated barriers weren't needed.
VerifyWriteBarriersHbooleanVerify write barriers. Serial GC only.
VirtualizeHstringBuild the native image for a virtualized environment. The argument is a path to a JSON file that specifies the virtualized environment properties.
WarnAboutCodeSignatureMismatchHbooleanPrint to stdout when a compilation performed with different profiles generates different backend code.
WarnAboutGraphSignatureMismatchHbooleanPrint to stdout when a compilation performed with different profiles generates different frontend IR.
WarnAboutMissingReflectionOrJNIMetadataElementsHbooleanWarn when reflection and JNI configuration files have elements that could not be found on the classpath or modulepath.
WarnAboutNotCachedLoadedAccessHbooleanPrint to stdout when requesting profiling info not present in a loaded profile.
WarnMissingIntrinsicHbooleanPrint a warning when a missing intrinsic is seen.
WriteSinkingExcludeFieldsHstringNoneExclude certain fields from write sinking. Fields are specified with the same syntax as method filters, minus the signature part.
WriteSubstitutionChecksumHstringNoneWrite substitution checksums to the specified directory.
ZapChunksHbooleanFill unused memory chunks with a sentinel value. Serial and epsilon GC only.
ZapConsumedHeapChunksHbooleanAfter use, Fill memory chunks with a sentinel value. Serial and epsilon GC only.
ZapProducedHeapChunksHbooleanBefore use, fill memory chunks with a sentinel value. Serial and epsilon GC only.
ZapStackOnMethodEntryHboolean
AbortOnBenchmarkCounterOverflowRbooleanAbort VM with SIGILL if benchmark counters controlled by the (Generic|Timed|Benchmark)DynamicCounters.
ActiveProcessorCountRlong-1Overwrites the available number of processors provided by the OS. Any value < 0 means using the processor count from the OS.
AggregatedMetricsFileRstringNoneFile 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.
AliasArrayTypeFlowsRbooleanModel all array type flows using a unique elements type flow abstraction.
AllocationProfilingThresholdRlong1048576The minimum size in bytes required for printing an allocation profiling entry.
AllocationSiteSensitiveHeapRbooleanA context sensitive heap means that each heap allocated object is modeled by using at least the allocation site.
AlwaysInlineIntrinsicsRbooleanUnconditionally inline intrinsics.
AlwaysInlineVTableStubsRboolean
AlwaysPreTouchRbooleanForce all freshly committed pages to be pre-touched. G1 GC only.
AnalysisContextSensitivityRstringinsensControls 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).
AnalysisSizeCutoffRlong8The maximum size of type and method profiles returned by the static analysis. -1 indicates no limitation.
ArrayRegionEqualsConstantLimitRlong4096Array region equality checks will be evaluated at compile time if the receiver is a constant and its length is smaller than this value.
AutomaticReferenceHandlingRbooleanDetermines if the reference handling is executed automatically or manually.
BaseTargetSpendingRlong120The base target spending used to estimate the inlining threshold; the higher, the likelier it is to inline.
BenchmarkCounterPrintingCutoffRbooleanUse a cutoff to print only most significant counters.
BenchmarkCountersDumpDynamicRbooleanDump dynamic counters.
BenchmarkCountersDumpStaticRbooleanDump static counters.
BenchmarkCountersFileRstringNoneFile 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.
BenchmarkDynamicCountersRstringNoneTurn on the benchmark counters. The format of this option is:.
BlindConstantsRbooleanBlind constants in code with a random key.
BootstrapInitializeOnlyRbooleanDo not compile anything on bootstrap but just initialize the compiler.
BootstrapTimeoutRdouble15Maximum time in minutes to spend bootstrapping (0 to disable this limit).
BootstrapWatchDogCriticalRateRatioRdouble0.25Ratio of the maximum compilation rate below which the bootstrap compilation rate must not fall (0 or less disables monitoring).
BreakChainedPhisRbooleanBreak chained phis.
CAIAggressivelyOptimizeHotRbooleanPerform more aggressive optimization on compilation units deemed to be hot.
CAIApplyProfilesWhileExpandingRbooleanApply sampling based profiles to candidates for inlining before doing the inlining.
CAIHotBonusWhileExpandingRlong50Apply a bonus to the priority of hot cutoff nodes during exploration. Set to 0 to disable.
CAIHotBonusWhileInliningRlong0Apply a bonus to the priority of hot nodes during inlining. Set to 0 to disable.
CMoveALotRbooleanPerform CMove transformation on every IfNode possible.
CallGraphCompilerNodeLimitRlong35000Controls the maximum number of compiler nodes that can appear in the call graph.
CallGraphSizeLimitRlong1200Controls the maximum size of the call graph before ceasing inlining.
CallGraphSizePenaltyCoefficientRdouble0.01Reduces the likelihood of exploring call graph subtrees that are large.
CanonicalGraphStringsCheckConstantsRbooleanExclude virtual nodes when dumping canonical text for graphs.
CanonicalGraphStringsExcludeVirtualsRbooleanExclude virtual nodes when dumping canonical text for graphs.
CanonicalGraphStringsRemoveIdentitiesRbooleanAttempts to remove object identity hashes when dumping canonical text for graphs.
CanonicalizerVerifyGVNAllowedRbooleanVerify if the current graph state allows GVN to be performed.
ClearMetricsAfterBootstrapRbooleanClear the debug metrics after bootstrap.
CollectImageBuildStatisticsRbooleanCollect information during image build about devirtualized invokes and bytecode exceptions.
CollectYoungGenerationSeparatelyRbooleanDetermines if a full GC collects the young generation separately or together with the old generation. Serial GC only.
CompilationBailoutAsFailureRbooleanTreat compilation bailouts like compilation failures.
CompilationCountLimitRlong0The number of compilations allowed for any method before the VM exits (a value of 0 means there is no limit).
CompilationExcludePhasesRstringNoneExclude 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.
CompilationExpirationPeriodRdouble300Time 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.
CompilationFailureActionRstringSilentSpecifies the action to take when compilation fails.
CompilationIsolateAddressSpaceSizeRlong0Size of the reserved address space of each compilation isolate (0: default for new isolates).
CompilationNoProgressPeriodRdouble30Time limit in seconds before a compilation expires (0 to disable the limit) because no progress was made in the compiler.
CompilationNoProgressStartTrackingProgressPeriodRdouble10Delay in seconds before compilation progress detection starts.
CompilationWatchDogStartDelayRlong0Delay in seconds before watch dog monitors a compilation (0 disables monitoring).
CompilationWatchDogVMExitDelayRlong0Number of seconds after which a compilation appearing to make no progress causes the VM to exit (0 disables VM exiting).
CompileGraalWithC1OnlyRbooleanIn tiered mode compile Graal and JVMCI using optimized first tier code.
CompileInIsolatesRbooleanActivate runtime compilation in separate isolates (enable support during image build with option SupportCompileInIsolates).
CompileInPerThreadReusedIsolatesRbooleanCreate one reusable isolate per compilation thread as opposed to one isolate per compilation (enable through CompileInIsolates).
CompilerConfigurationRstringNoneNames 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.
CompilerNodePenaltyCoefficientRdouble0.006Controls the likelihood of exploring subtrees that already have a lot of code during inlining.
ConcGCThreadsRlong0Number of concurrent GC threads G1 will use.
ConditionalEliminationRboolean
ConditionalEliminationBeforeAnalysisRbooleanRun conditional elimination before static analysis.
ConditionalEliminationMaxIterationsRlong4
ConsiderVectorizableLoopsRbooleanConsider the vectorizability of loop during the duplication of a merge inside a loop.There are rare cases where duplication can destroy vectorization.
CostNewLiveVariableRlong4PullThroughPhiOptimization: Abstract cost for the creation of a new live value: new values can have a negativeimpact on register allocation, therefore we penalize it.
CostReductionFactorRdouble32PullThroughPhiOptimization: Cost/Benefit heuristic for EE floating node duplication: reduce cost by a constant factor when comparing with relative benefit.
CostReductionFactorHotCodeRdouble128See CostReductionFactor.
CountRstringNonePattern for specifying scopes in which counters are enabled. See the Dump option for the pattern syntax. An empty value enables all counters unconditionally.
CountedStripMiningBudgetRdouble0.1Code size budget of the strip mining transformation in terms of NodeCostSize.
CountedStripMiningBudgetHotCodeRdouble2.5See CountedStripMiningBudget.
CountedStripMiningInnerLoopTripsRlong4096The max number of iterations the counted inner loop takes.
CountedStripMiningLogCountersRbooleanPrint counter phi values on each outer and inner loop iteration.
CountedStripMiningMinFrequencyRlong4Minimal frequency to consider a loop for strip mining.
CountedStripMiningNodeSizeSmallGraphsRlong2000Code size in NodeSize defining when code size heuristics starts capping strip mining.
CountersRstringNoneComma separated names of counters that are enabled irrespective of the value for Count option. An empty value enables all counters unconditionally.
CrashAtRstringNonePattern 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.
CutoffCodeSizePenaltyCoefficientRdouble0.00001Controls the likelihood of further exploring subtrees with a lot of code during inlining.
DebugPeelingSynonymsRbooleanDebug simulation synonyms during simulation-based loop peeling.
DebugStubsAndSnippetsRbooleanEnable debug output for stub code generation and snippet preparation.
DefaultLoopFrequencyRdouble100Default frequency for loops with unknown local frequency.
DefaultUnswitchFactorRdouble0.7Default unswitching factor for control split node with unkown profile data.
DeoptALotRboolean
DeoptAfterOSRRbooleanDeoptimize OSR compiled code when the OSR entry loop is finished if there is no mature profile available for the rest of the method.
DeoptsToDisableOptimisticOptimizationRlong40
DetailedAssertsRbooleanEnable expensive assertions if normal assertions (i.e. -ea or -esa) are enabled.
DetectInvertedLoopsAsCountedRboolean
DevirtualizeHotCalleesRbooleanDevirtualizes callees that are hot.
DiagnoseDumpLevelRstring:3Specify the dump level if CompilationFailureAction#Diagnose is used.See CompilationFailureAction for details. file:doc-files/CompilationFailureActionHelp.txt.
DiagnosticDetailsRstringSpecifies 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.
DisableExplicitGCRbooleanIgnore calls to System.gc().
DisableInterceptRbooleanDisable intercepting exceptions in debug scopes.
DisableIntrinsicsRstringNoneDisable 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').
DominatorUsageTreeMaxDepthRlong16
DumpRstringNoneFilter pattern for specifying scopes in which dumping is enabled.
DumpAfterEveryBCIRbooleanDump the current graph after every bci to IGV.
DumpAfterEveryLoweringRbooleanDump lowering after every node to igv.
DumpDetailedNodeTypeStatsRbooleanGather statistics on local variables and their lifetimes relative to FrameStates.
DumpEndVersusExitLoopFrequenciesRbooleanDebug 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.
DumpHeapAndExitRbooleanCreate a heap dump and exit.
DumpMethodsDataRbooleanDump a JSON array containing all methods included in the image and exit.
DumpOnErrorRbooleanSend compiler IR to dump handlers on error.
DumpOnPhaseChangeRstringNoneDump 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.
DumpPathRstringgraal_dumpsThe directory where various Graal dump files are written.
DumpingErrorsAreFatalRbooleanTreat any exceptions during dumping as fatal.
DuplicateALotRbooleanPerform Duplications as long as there is any sane improvement.
DuplicateMethodsRbooleanEnable or Disable the Hot method duplication phase.
DuplicationBudgetFactorRdouble0.25Percentage in node cost graph size for the duplication budget. Computed relative to the methods code size.
DuplicationBudgetFactorHotCodeRdouble2.5See DuplicationBudgetFactor.
DuplicationBudgetFactorLateRdouble0.5Percentage in node cost graph size for the late duplication budget. Computed relative to the methods code size.
DuplicationCostReductionFactorRlong64Cost/Benefit heuristic for EE simulation-based code duplication: reduce cost by a constant factor when comparing with relative benefit.
DuplicationCostReductionFactorHotCodeRlong256See DuplicationCostReductionFactor.
DuplicationMinBranchFrequencyRdouble0.66Ignore low frequency branches during duplication.
DynamicCountersPrintGroupSeparatorRbooleanUse grouping separators for number printing.
EEPeelAlotRboolean
EagerSnippetsRbooleanEagerly construct extra snippet info.
EarlyCodeEmissionOrderRbooleanEnable early code emission order computation instead of late code emission order computation.
EarlyExpandCheckCastRbooleanTry to improve code generation by making checkcast operations better optimizable early in the compilation pipeline.
EarlyGVNRbooleanPerform early global value numbering.
EarlyLICMRbooleanPerform early loop invariant code motion.
EmitStringSubstitutionsRbooleanEmit substitutions for String methods.
EnableSignalHandlingRbooleanEnables signal handling.
EnterpriseCloneReadEliminationRbooleanTry to eliminate array clone operations by handling clone operations in early read elimination.
EnterpriseEAIterationsRlong3Enterprise PEA Iterations.
EnterpriseEarlyGVNRbooleanPerform an extended version of early global value numbering on a graph.Considers only graphs without floating guards.
EnterpriseEarlyInversionGVNRbooleanEnterprise Loop Inversion for GVN.
EnterpriseExactIVOptRbooleanTry to improve counted loop detection by specially handling math exact operations with code duplication.
EnterprisePartialUnrollRbooleanEnable EE version of partial loop unrolling that considers more loop shapes for unrolling.
EnterpriseRCELogRangeCheckValuesRbooleanLog all range check sub values to stdout.
EnterpriseRangeCheckEliminationRbooleanPerform range check elimination for java long type range checks.
EnterpriseReadEliminationRbooleanRun more read eliminations early in the compilation pipeline.
ErgoHeapSizeLimitRlong0Maximum ergonomically set heap size (in bytes); zero means use MaxRAM * MaxRAMPercentage / 100. G1 GC only.
EscapeAnalysisBeforeAnalysisRbooleanRun partial escape analysis on compiler graphs before static analysis.
EscapeAnalysisIterationsRlong2
EscapeAnalysisLoopCutoffRlong20
EscapeAnalyzeOnlyRstringNone
ExactFullUnrollMaxNodesRlong800
ExactPartialUnrollMaxNodesRlong200
ExcludeFunctionFromDuplicationRstringNoneExclude compilations that MethodFilter.match this string from the duplication optimization.
ExitOnOutOfMemoryErrorRbooleanExit on the first occurrence of an out-of-memory error that is thrown because the Java heap is out of memory.
ExpandAllProximityBonusRdouble6The decrease in call graph expansion pressure when there are few call nodes left to explore.
ExpandAllProximityBonusInertiaRdouble2The inertia at which the expand-all proximity bonus decreases with the number of yet unexpanded nodes.
ExpansionInertiaBaseValueRlong550The slowness at which the expansion pressure grows with code size; the higher it is, the slower the pressure growth.
ExpansionInertiaInvokeBonusRlong14The extra slowness at which the expansion pressure grows with the code size, for each extra invoke node.
ExpansionInertiaMaxRlong2000The max slowness at which the expansion pressure grows with the code size.
ExpectedEdenSizeRlong33554432Soft upper limit for used eden size. The hinted GC will be performed if the used eden size exceeds this value.
ExplicitGCInvokesConcurrentRbooleanA System.gc() request invokes a concurrent collection. G1 GC only.
ExtendedAssertsRbooleanEnable extended asserts which slow down analysis.
FailedLoopExplosionIsFatalRbooleanDo not bail out but throw an exception on failed loop explosion.
FallbackExecutorRuntimeJavaArgRstring<string>*Internal option used to specify runtime java arguments for FallbackExecutor.
FlightRecorderRbooleanEnable Java Flight Recorder.
FlightRecorderLoggingRstringallwarningUsage: -XX:FlightRecorderLogging[tag1[+tag2...][*][level][,...]].
FloatingDivNodesRbooleanTry to float non-constant division operations to expose global value numbering of divisions.
ForceAdversarialLayoutRbooleanPlace 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.
ForceDumpGraphsBeforeCompilationRbooleanForce-dump graphs before compilation.
ForceExplicitReachabilityFenceRbooleanForce an explicit compiler node for Reference.reachabilityFence, instead of relying on FrameState liveness.
ForceGuardHoistingLoopDuplicationWithoutPGORbooleanConsider methods for guard hoisting loop duplication even if not using PGO.
ForceUnrollRbooleanForce partial unrolling of loops if at all possible.
FrameStateLivenessStatisticsRbooleanGather statistics on local variables and their lifetimes relative to FrameStates.
FullUnrollRboolean
FullUnrollAsPEACleanupRbooleanPerform full unrolling as a Partial Escape Analysis Cleanup.
FullUnrollCodeSizeBudgetFactorForLargeGraphsRdouble2Maximum factor by which full unrolling can increase code size for large graphs. The FullUnrollSmallGraphThreshold option determines which graphs are small.
FullUnrollCodeSizeBudgetFactorForSmallGraphsRdouble10Maximum factor by which full unrolling can increase code size for small graphs. The FullUnrollSmallGraphThreshold option determines which graphs are small.
FullUnrollConstantCompareBoostRlong15
FullUnrollMaxApplicationRlong60
FullUnrollMaxIterationsRlong600
FullUnrollMaxNodesRlong700
FullUnrollSmallGraphThresholdRlong1000The 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.
G1ConcMarkStepDurationMillisRdouble10Target duration of individual concurrent marking steps in milliseconds.
G1ConcRefinementThreadsRlong0The number of parallel remembered set update threads. Will be set ergonomically by default.
G1ConfidencePercentRlong50Confidence level for MMU/pause predictions.
G1HeapWastePercentRlong5Amount of space, expressed as a percentage of the heap size, that G1 is willing not to collect to avoid expensive GCs.
G1MixedGCCountTargetRlong8The target number of mixed GCs after a marking cycle.
G1PeriodicGCIntervalRlong0Number of milliseconds after a previous GC to wait before triggering a periodic gc. A value of zero disables periodically enforced gc cycles.
G1PeriodicGCInvokesConcurrentRbooleanDetermines the kind of periodic GC. Set to true to have G1 perform a concurrent GC as periodic GC, otherwise use a STW Full GC.
G1PeriodicGCSystemLoadThresholdRdouble0Maximum 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.
G1RSetUpdatingPauseTimePercentRlong10A target percentage of time that is allowed to be spend on processing remembered set update buffers during the collection pause.
G1RefProcDrainIntervalRlong1000The number of discovered reference objects to process before draining concurrent marking work queues.
G1ReservePercentRlong10It determines the minimum reserve we should have in the heap to minimize the probability of promotion failure.
G1SATBBufferEnqueueingThresholdPercentRlong60Before 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.
G1SATBBufferSizeRlong1024Number of entries in an SATB log buffer.
G1UpdateBufferSizeRlong256Size of an update buffer.
G1UseAdaptiveIHOPRbooleanAdaptively adjust the initiating heap occupancy from the initial value of InitiatingHeapOccupancyPercent. The policy attempts to start marking in time based on application behavior.
G1UseConcRefinementRbooleanControl whether concurrent refinement is performed. Disabling effectively ignores G1RSetUpdatingPauseTimePercent.
G1VerifyHeapRegionCodeRootsRbooleanVerify the code root lists attached to each heap region.
GCDebugStartCycleRlong-1Start tracing compiled GC barriers after N garbage collections (disabled if N < 0).
GCDrainStackTargetSizeRlong64Number of entries we will try to leave on the stack during gc. G1 GC only.
GCPauseIntervalMillisRlong201Time slice for MMU specification. G1 GC only.
GCTimeRatioRlong12Adaptive size policy application time to GC time ratio. G1 GC only.
GenJavaCodeFilterRstringNoneGenerate Java code before high tier lowering for methods that MethodFilter.match this string.
GenJavaCodeSaveDirectoryRstringNonePath for saving generated Java code. If the value is omitted the debug dump path will be used.
GenJavaCodeWithCommentsRbooleanGenerate comments alongside variable declarations.
GenLoopSafepointsRboolean
GenericDynamicCountersRbooleanTurn on the benchmark counters, and displays the results on VM shutdown.
GraalArithmeticStubsRbooleanUse Graal arithmetic stubs instead of HotSpot stubs where possible.
GraalCompileOnlyRstringNoneA 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.
GraphCompressionThresholdRlong70Graal graph compression is performed when percent of live nodes falls below this value.
GuardHoistingLoopDuplicationRbooleanDuplicate certain loops and eliminate their guards.
GuardHoistingLoopDuplicationHoistFractionRdouble0.5Duplicate only loops where at least this fraction of guards can be hoisted.
GuardHoistingLoopDuplicationMaxSizeRlong64Duplicate only loops up to this estimated size.
GuardHoistingLoopDuplicationMaxSizeHotCodeRlong2048See GuardHoistingLoopDuplicationMaxSize.
GuardHoistingLoopDuplicationMinBodyIterationsRlong4Duplicate only loops with at least this many expected iterations of the loop body.
GuardHoistingLoopDuplicationMinBodyIterationsHotCodeRlong0See GuardHoistingLoopDuplicationMinBodyIterations.
GuardHoistingLoopDuplicationMinHotnessRlong1Duplicate only loops in methods executed at least this number of times.
GuardPrioritiesRboolean
HeapDumpOnOutOfMemoryErrorRbooleanDump heap to file (see HeapDumpPath) the first time the image throws java.lang.OutOfMemoryError because it ran out of Java heap.
HeapDumpPathRstringPath 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.
HeapSizePerGCThreadRlong44040192Size of heap (bytes) per GC thread used in calculating the number of GC threads. G1 GC only.
HeapVerifierVerbosityRlong0Control heap verifier verbosity level: 0 - quiet, 1 - info, 2 - warning, 3 - all.
HighTierInversionRboolean
HighTierPartialUnrollingRbooleanEnable EE partial unrolling in high tier.
HotCodeMinSelfTimeRdouble0.001Minimal self time for a compilation unit to be considered hot globally.
HotSpotDeoptExplicitExceptionsRbooleanTesting only option that forces deopts for exception throws.
HotSpotPostOnExceptionsRbooleanTesting only option that forces deopts for exception throws.
HotSpotPrintInliningRbooleanPrint inlining optimizations.
HybridStaticContextRbooleanEnable hybrid context for static methods, i.e. uses invocation site as context for static methods.
IgnoreBadDuplicationsRbooleanIgnore duplications with a bad benefit cost relation.
IgnoreDeoptUsagesRboolean
ImageObjectTreeExpandRootsRstringOverride the default suppression of specified roots. See: StaticAnalysisReports.md.
ImageObjectTreeExpandTypesRstringOverride the default suppression of specified types. See: StaticAnalysisReports.md.
ImageObjectTreeSuppressRootsRstringSuppress the expansion of specified roots. See: StaticAnalysisReports.md.
ImageObjectTreeSuppressTypesRstringSuppress the expansion of specified types. See: StaticAnalysisReports.md.
ImplicitExceptionWithoutStacktraceIsFatalRbooleanDetermines if implicit exceptions are fatal if they don't have a stack trace.
InfeasiblePathCorrelationRboolean
InfeasiblePathCorrelationWindowSizeRlong10Limit of the number of dominating if nodes to consider in infeasible path correlation to avoid compile time explosion.
InitialHeapSizeRlong0Initial heap size (in bytes); zero means use ergonomics. G1 GC only.
InitialRAMPercentageRdouble1.5625Percentage of real memory used for initial heap size. G1 GC only.
InitiatingHeapOccupancyPercentRlong45The 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.
InjectedCompilationDelayRlong0The 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.
InlineRbooleanEnable inlining.
InlineAllBonusRdouble1The bonus applied to call nodes that can be fully inlined.
InlineBeforeAnalysisRbooleanDeprecated, option no longer has any effect.
InlineDuringParsingRbooleanInlines trivial methods during bytecode parsing.
InlineDuringParsingMaxDepthRlong10Maximum depth when inlining during bytecode parsing.
InlineEverythingRboolean
InlineGraalStubsRbooleanEmbed all the emitted code for Graal-generated stubs.
InlineMegamorphicCallsRbooleanInline calls with megamorphic type profile (i.e., not all types could be recorded).
InlineMonomorphicCallsRbooleanInline calls with monomorphic type profile.
InlinePartialIntrinsicExitDuringParsingRbooleanInlines 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.
InlinePolymorphicCallsRbooleanInline calls with polymorphic type profile.
InlineVTableStubsRboolean
InlinedCompilerNodeLimitRlong20000Controls the maximum number of compiler nodes that can be inlined into the compiled method.
InliningCoefficientRdouble0.02The coefficient used to compute the inlining threshold; the higher, the more to inline.
InliningDepthErrorRlong1000Maximum inlining depth during partial evaluation before reporting an infinite recursion.
InsertPreMainPostOnlyRbooleanDo not unroll the main loop, only create pre-main-post.
InspectGraphsRbooleanInspect analysis graphs.
InspectServerContentPathRstringinspectPath to the contents of the Inspect web server.
InstallSegfaultHandlerRbooleanInstall segfault handler that prints register contents and full Java stacktrace.
InterceptBailoutRbooleanIntercept also bailout exceptions.
IntrinsifyRbooleanUse compiler intrinsifications.
InversionMinLocalFrequencyRdouble2Minimal loop frequency for a loop to be considered for inversion.
InversionMinRelativeFrequencyRdouble1Minimal relative frequency for a loop to be considered for inversion.
InvertMultiEndLoopsRboolean
InvertNonLeafLoopsRboolean
InvertVectorizableLoopsRboolean
IsolatedLoopHeaderAlignmentRlong32Alignment in bytes for loop header blocks that have no fall through paths.
IterativePeelingLimitRlong2Allow iterative peeling of loops up to this many times (each time the peeling phase runs).
IterativePeelingOuterFrequencyBonusThresholdRdouble4Allow iterative peeling of loops with an outer frequency bonus above this value.
JfrBasedExecutionSamplerStatisticsRbooleanPrint statistics collected during JFR-based execution sampler run.
LIRDynMoveProfileMethodRbooleanEnable dynamic move profiling per method.
LIRInstructionVerifierPathRstringNonePath to jar file containing LIR instruction verifier.
LIROptConstantLoadOptimizationRbooleanEnable constant load optimization.
LIROptControlFlowOptimizerRboolean
LIROptEdgeMoveOptimizerRboolean
LIROptLSRAEliminateSpillMovesRbooleanEnable spill move elimination.
LIROptLSRAOptimizeSpillPositionRbooleanEnable spill position optimization.
LIROptLSStackSlotAllocatorRbooleanUse linear scan stack slot allocation.
LIROptNullCheckOptimizerRboolean
LIROptRedundantMoveEliminationRboolean
LIROptStackMoveOptimizerRboolean
LIROptimizationRbooleanEnable LIR level optimizations.
LIRProfileMethodsRbooleanEnables profiling of methods.
LIRProfileMovesRbooleanEnables 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).
LSRAOptSplitOnlyRbooleanLSRA optimization: Only split but do not reassign.
LSRAOptimizationRbooleanEnable LSRA optimization.
LargeChildrenCountPenaltyCoefficientRdouble0.005Reduces the likelihood of exploring call graphs that have a lot of children below the root.
LimitInlinedInvokesRdouble5
LimitObjectArrayLengthRbooleanEnable 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.
ListMetricsRbooleanLists 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.
LoadExceptionObjectInVMRbooleanUse a VM runtime call to load and clear the exception object from the thread at the start of a compiled exception handler.
LoadProfilesRstringNoneLoad per compilation profile information.
LocalsPerCounterRlong16Number of cpu locals per counter. It has to be a power of 2.
LogRstringNonePattern for specifying scopes in which logging is enabled. See the Dump option for the pattern syntax.
LogFileRstringNoneFile 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.
LogVerboseRbooleanEnable more verbose log output when available.
LoopBoundOptimizationPhaseRbooleanTry to improve counted loop detection by finding more precise loop bounds.
LoopExitVsLoopEndFrequencyDiffRdouble1000Scaling factor of frequency difference computed based on loop ends or exits.
LoopHeaderAlignmentRlong16Alignment in bytes for loop header blocks.
LoopInversionRboolean
LoopMaxUnswitchRlong3
LoopOnFatalErrorRbooleanExecute an endless loop before printing diagnostics for a fatal error.
LoopPeelingRboolean
LoopPredicationRbooleanHoists array bounds checks out of simple loops. This is ignored if SpeculativeGuardMovement is enabled.
LoopPredicationMainPathRbooleanRestricts LoopPredication to only focus on array bounds checks that dominate the back edge of a loop.
LoopRotationRbooleanEnable Loop Rotation to let the compiler detect more loops as counted.
LoopRotationAssertCountedAfterRboolean
LoopRotationToxicNodeSetMaxNodecostRlong512Maximum size in NodeSize of the code to be duplicated during rotation.
LoopUnswitchRboolean
LoopUnswitchFrequencyBoostRdouble20Number 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.
LoopUnswitchFrequencyMaxFactorRdouble0.95Maximun value for the frequency factor of an invariant.
LoopUnswitchFrequencyMinFactorRdouble0.05Minimum value for the frequency factor of an invariant.
LoopUnswitchMaxIncreaseRlong2000Maximum loop unswitching code size increase in nodes.
LoopUnswitchMinSplitFrequencyRdouble1Lower bound for the minimun frequency of an invariant condition to be unswitched.
LoopUnswitchTrivialRlong20Number of nodes allowed for a loop unswitching regardless of the loop frequency.
LoopVectorizationKeepPostLoopRbooleanKeep the original loop as the post-loop during loop vectorization.
LoopVectorizationMaxBodyNodesRlong16The maximal number of fixed body nodes to consider in loop vectorization.
MarkStackSizeRlong4194304Size of marking stack. G1 GC only.
MarkStackSizeMaxRlong536870912Maximum size of marking stack. G1 GC only.
MatchExpressionsRbooleanAllow backend to match complex expressions.
MaxCallingContextDepthRlong0The maximum length of the methods context chains.
MaxCallingContextWidthRlong0The maximum number of contexts to record for a method. It only affects the analysis when the max and min calling context depth are different.
MaxCompilationProblemsPerActionRlong2The 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.
MaxConstantObjectsPerTypeRlong0The 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.
MaxDirectMemorySizeRlong0Maximum total size of NIO direct-buffer allocations.
MaxDuplicationAnchorRlong2147483647Maximum duplication anchor number.
MaxDuplicationFactorRdouble2Max amount of extra effort to expend handling irreducible loops. A value < 1 disables support for irreducible loops.
MaxGCPauseMillisRlong200Adaptive size policy maximum GC pause time goal in millisecond, or the maximum GC time per MMU time slice. G1 GC only.
MaxGraphSizeNodeCostRlong100000Maximum node cost graph size for duplication. If a graph is bigger duplication will stop.
MaxHeapContextDepthRlong0The maximum length of the context used to model a heap object in addition to the allocation site; used only when ContextSensitiveHeap is enabled.
MaxHeapContextWidthRlong0The 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.
MaxHeapFreeRlong0The maximum free bytes reserved for allocations, in bytes (0 for automatic according to GC policy). Serial GC only.
MaxHeapSizeRlong0The maximum heap size at run-time, in bytes.
MaxJavaStackTraceDepthRlong1024The maximum number of lines in the stack trace for Java exceptions (0 means all).
MaxMispredictionCostIncreaseFactorRdouble2Abstract measure of the cost of branch misprediction. Higher values make generation of conditional moves more likely.
MaxNewSizeRlong0The maximum size of the young generation at run-time, in bytes.
MaxObjectSetSizeRlong100The 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.
MaxPolymorphicDispatchesRlong4The maximum number of dispatches in guarded polymorphic inlining.
MaxPriorityInliningPeelingIterationsRlong10Max number of precise inlining peeling iterations.
MaxRAMRlong0Physical memory size (in bytes). By default, the value is queried from the OS/container during VM startup.
MaxRAMPercentageRdouble25Maximum percentage of real memory used for maximum heap size. G1 GC only.
MaxRoundsRlong1000Maximum number of expand/inline rounds during a single run of the phase.
MaxSimulationIterationsRlong2Maximum simulation-duplication iterations of the duplication optimization per invocation.
MaxSimulationIterationsHotCodeRlong4See MaxSimulationIterations.
MaxSplitsPerNodeRlong32
MaxTemplatesPerSnippetRlong50
MaxTenuringThresholdRlong15Maximum value for tenuring threshold. G1 GC only.
MaxUnswitchSuccessorsRlong64Maximum number of split successors before aborting unswitching.
MaxValueNodesPartialEscapeSelectiveInliningRlong35000Controls the maximum number of value nodes that can appear in the final graph.
MaxVectorAlignmentUnrollRlong4Maximum number of unrolled alignment instructions.
MaxVectorUnrollRlong16Maximum length of linear-code vector operations.
MaximumDesiredSizeRlong20000Maximum desired size of the compiler graph in nodes.
MaximumEscapeAnalysisArrayLengthRlong128The maximum length of an array that will be escape analyzed.
MaximumHeapSizePercentRlong80The maximum heap size as percent of physical memory. Serial and epsilon GC only.
MaximumInliningSizeRlong300Inlining is explored up to this number of nodes in the graph for each call site.
MaximumLoopExplosionCountRlong10000Max number of loop explosions per method.
MaximumRecursiveInliningRlong5Maximum level of recursive inlining.
MaximumTransitiveEnabledPullFactorRlong2PullThroughPhiOptimization: Maximum number of algorithm iterations per optimization invocation.
MaximumYoungGenerationSizePercentRlong10The maximum size of the young generation as a percentage of the maximum heap size. Serial and epsilon GC only.
MegamorphicInliningMinMethodProbabilityRdouble0.33Minimum probability for methods to be inlined for megamorphic type profiles.
MemUseTrackersRstringNoneComma 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.
MethodFilterRstringNonePattern for matching methods. The syntax for a pattern is:.
MethodFilterRootOnlyRbooleanOnly check MethodFilter against the root method in the context if true, otherwise check all methods.
MethodInlineBailoutLimitRlong5000Per-compilation method inlining exploration limit before giving up (use 0 to disable).
MetricsFileRstringNoneFile to which metrics are dumped per compilation.
MidTierInversionRboolean
MidTierPartialUnrollingRbooleanEnable EE partial unrolling in mid tier.
MinBlockFrequencyPullRdouble0.66PullThroughPhiOptimization: Ignore low frequency branches during duplication.
MinCallingContextDepthRlong0The minimum length of the methods context chains.
MinDuplicationAnchorRlong1Skip n duplication anchors.
MinHeapContextDepthRlong0The minimum length of the context used to model a heap object in addition to the allocation site; used only when ContextSensitiveHeap is enabled.
MinHeapDeltaBytesRlong172032The minimum change in heap space due to GC (in bytes). G1 GC only.
MinHeapFreeRatioRlong40The minimum percentage of heap free after GC to avoid expansion. G1 GC only.
MinHeapSizeRlong0The minimum heap size at run-time, in bytes.
MinPolymorphicDispatchProbabilityRdouble0.1The minimum probability for using a dispatch in guarded polymorphic inlining.
MinRAMPercentageRdouble50Minimum percentage of real memory used for maximum heap size on systems with small physical memory size. G1 GC only.
MinTLABSizeRlong2048Minimum allowed TLAB size (in bytes). G1 GC only.
MinifyInvertedPhisRbooleanBreak chained phis.
MinimalBulkZeroingSizeRlong2048If applicable, use bulk zeroing instructions when the zeroing size in bytes exceeds this threshold.
MinimalGraphNodeSizeCheckSizeRlong1000Minimal size in NodeSize to check the graph size increases of phases.
MinimalRegionsRbooleanTry to reduce duplication code size to the minimal amount of code.
MinimumBlindedConstantSizeRlong4Minimum size (in bytes) of constants to blind.
MinimumPeelFrequencyRdouble0.35
MoveGuardsUpwardsRbooleanMove guard nodes to earlier places in the dominator tree if all successors of basic block share a common guard condition.
MultiExitCostFactorRlong32Cost/Benefit heuristic for EE unrolling: If a loop has multiple exits, cost is increased by this value for every none-sinking loop exit.
MultiExitCostFactorSinkRlong2Cost/Benefit heuristic for EE unrolling: If a loop has multiple exits, cost is increased by this value for every sinking loop exit.
NDCVRlong0Run level for NoDeadCodeVerifyHandler (0 off, 1 info, 2 verbose, 3 fatal).
NewRatioRlong2Ratio of old/new generation sizes. G1 GC only.
NewSizeRlong1048576Initial new generation size (in bytes). G1 GC only.
NonCountedStripMinedBenefitBoostRlong64Benefit boost for strip mined non counted loops.
NonCountedStripMiningBudgetRdouble0.1Code size budget of the non-counted strip mining transformation in terms of NodeCostSize.
NonCountedStripMiningBudgetHotCodeRdouble2.5See NonCountedStripMiningBudget.
NonCountedStripMiningForceStripAllRbooleanForce non-counted strip mining for all loops (also counted ones), test flag only.
NonCountedStripMiningIgnoreSmallLoopsRbooleanIgnore small loops from strip mining, the iv overhead can cause slowdowns.
NonCountedStripMiningInnerLoopTripsRlong-1The max number of iterations the counted inner loop takes. If -1, the frequency of the loop will be used to derive an inner frequency.
NonCountedStripMiningMaximumInnerLoopTripsRlong8192If NonCountedStripMiningInnerLoopTrips -1: Maximum loop trips for strip mined non-counted loops.
NonCountedStripMiningMinFrequencyRdouble16Minimal loop frequency to consider a non-counted loop for strip mining.
NonCountedStripMiningMinimumInnerLoopTripsRlong512If NonCountedStripMiningInnerLoopTrips -1: Minimum loop trips for strip mined non-counted loops.
NonCountedStripMiningReuseIVsRbooleanTry to reuse pre-existing induction variables inside non-counted loops for the strip-mined loop's exit check.
ObjdumpExecutablesRstringNoneComma 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.
OldPLABSizeRlong1024Size of old gen promotion LAB's (in HeapWords). G1 GC only.
OldSizeRlong5242880Initial tenured generation size (in bytes). G1 GC only.
OmitHotExceptionStacktraceRboolean
OptAssumptionsRboolean
OptBulkAllocationRboolean
OptCompressedFrameStateValuesRboolean
OptConditionalMovesRbooleanOptimize simple if branches with conditional moves.
OptConvertDeoptsToGuardsRboolean
OptDeDuplicationRboolean
OptDeoptimizationGroupingRboolean
OptDevirtualizeInvokesOptimisticallyRboolean
OptDuplicationRboolean
OptEarlyReadEliminationRboolean
OptEliminateGuardsRboolean
OptExactArithmeticRboolean
OptFloatingReadsRboolean
OptGuardRangeGroupingRboolean
OptImplicitNullChecksRboolean
OptLockEliminationRboolean
OptLoopPhiStampsRbooleanInject stamps on induction variables.
OptMethodDuplicationRbooleanDuplicate methods to form hot part and cold part areas.
OptPropagateEqualityRbooleanPropagate equality into dominated nodes.
OptPullThroughPhiRboolean
OptReadEliminationRboolean
OptScheduleOutOfLoopsRboolean
OptStringConcatRbooleanOptimize StringBuilder construction.
OptStringConcatDumpRbooleanDump graphs to help debug operation.
OptStringConcatDumpUnhandledRbooleanDump graphs to help debug operation.
OptWriteBarrierEliminationRbooleanEliminate redundant write barriers.
OptWriteMotionRbooleanPerform write sinking, which moves writes inside loops after them, effectively reducing their frequency.
OptimisticAliasingAnalysisRboolean
OptimisticAliasingUseSpeculationRbooleanUse speculation and deoptimization in optimistic aliasing analysis.
OptimizationLogRstringNoneEnable the structured optimization log and specify where it is printed.
OptimizationLogPathRstringNonePath to the directory where the optimization log is saved if OptimizationLog is set to Directory. Directories are created if they do no exist.
OptimizeLoopAccessesRbooleanEnable access node optimizations for loops.
OptimizeReturnedParameterRbooleanAnalysis: Detect methods that return one of their parameters and hardwire the parameter straight to the return.
OptimizeVectorAPIRbooleanExpand Vector API operations to optimized machine instructions.
OverrideProfilesRbooleanAllow multiple compilations of the same method by overriding existing profiles.
PLABWeightRlong75Percentage (0-100) used to weight the current sample when computing exponentially decaying average for ResizePLAB. G1 GC only.
ParGCArrayScanChunkRlong50Scan a subset of object array and push remainder, if array is bigger than this. G1 GC only.
ParallelGCBufferWastePctRlong10Wasted fraction of parallel allocation buffer. G1 GC only.
ParallelGCThreadsRlong0Number of parallel threads G1 will use.
ParallelRefProcBalancingEnabledRbooleanEnable balancing of reference processing queues. G1 GC only.
ParallelRefProcEnabledRbooleanEnable parallel reference processing whenever possible. G1 GC only.
ParsingContextMaxDepthRlong100Limit the parsing context depth. Default value is arbitrary set at 100.
PartialEscapeAnalysisRboolean
PartialRedundancyEliminationRbooleanEnable partial redundancy elimination.
PartialUnrollRboolean
PartialUnrollCostReductionFactorHighTierRlong2Cost/Benefit heuristic for EE unrolling in high tier: reduce cost by a constant factor when comparing with relative benefit.
PartialUnrollCostReductionFactorHotCodeMidTierRlong32See PartialUnrollCostReductionFactorMidTier.
PartialUnrollCostReductionFactorMidTierRlong8Cost/Benefit heuristic for EE unrolling in mid tier: reduce cost by a constant factor when comparing with relative benefit.
PartialUnrollMaxIterationsHighTierRlong4Maximum number of iterations to unroll for a high tier main loop.
PartialUnrollMaxIterationsMidTierRlong16Maximum number of iterations to unroll for a mid tier main loop.
PartialUnrollMaxSizeHighTierRlong256Maximum node cost size of a loop to be considered for high tier unrolling.
PartialUnrollMaxSizeHotCodeMidTierRlong1024See PartialUnrollMaxSizeMidTier.
PartialUnrollMaxSizeMidTierRlong256Maximum node cost size of a loop to be considered for mid tier tier unrolling.
PartialUnrollMinFrequencyRlong4Minimal loop frequency to consider a loop for partial unrolling.
PathProfileCutThresholdRlong10The limit on the number of paths at control-flow merges. Decreasing this value reduces the number of paths, but also shortens them.
PathProfileDumpFileRstringNoneDump information for path profile (null or file name). If set to null, then dumping is disabled.
PathProfileFrequentThresholdRlong500Maximum acceptable number of paths coming from the inbound of a merge if both of them are frequent.
PathProfileGlobalLowFrequencyRatioRdouble0.1If some block's relative frequency drops below this number times the maximum relative frequency in the graph, then the block is considered infrequent.
PathProfileLocalLowFrequencyRatioRdouble10If the ratio of the merge's frequency with its inbound's frequency is greater than this threshold, then the inbound is considered infrequent.
PathProfileMaxTotalCountersRlong4000000Maximum number of counters to use in path profiling for all instrumented methods.
PathProfilePolicyRstringNoneEnable or disable the path-profiling algorithm. If it enables it, it also allows to select which mode to execute.
PathProfileRegenerateRbooleanControls whether the path-regeneration algorithm is executed.
PeelALotRbooleanStress test for the loop peeling optimization by applying it aggressively.
PeelOnlyLoopWithNodeIDRlong-1Peel only the loop with the specific loop begin node ID for debugging purposes.
PeelingConsideredMinLoopIterationsRdouble1.5Minimal loop body iterations necessary to consider peeling.
PeelingConsideredMinRelativeFrequencyRdouble4Minimal relative frequency of loop begin necessary to consider peeling.
PeelingHighTierCostReductionFactorRdouble64Cost/Benefit heuristic for EE simulation-based loop peeling in high tier: reduce cost by a constant factor when comparing with relative benefit.
PeelingMidTierCostReductionFactorRdouble8Cost/Benefit heuristic for EE simulation-based loop peeling in mid tier: reduce cost by a constant factor when comparing with relative benefit.
PenalizeComplexLoopControlFlowRbooleanIncrease 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.
PercentTimeInIncrementalCollectionRlong50Percentage of total collection time that should be spent on young generation collections. Serial GC with collection policy 'BySpaceAndTime' only.
PerfDataMemorySizeRlong32768Size of performance data memory region. Will be rounded up to a multiple of the native os page size.
PerfDataSamplingIntervalRlong200Jvmstat instrumentation sampling interval (in milliseconds).
PerfMaxStringConstLengthRlong1024Maximum PerfStringConstant string length before truncation.
PhiMinificationMinimalLoopFrequencyRdouble2Minimal loop frequency to consider a loop for inverted phi minifaction.
PreTouchParallelChunkSizeRlong1073741824Per-thread chunk size for parallel memory pre-touch. G1 GC only.
PreferUnsignedComparisonRbooleanRewrite signed comparisons to unsigned ones if the result is equal.
PrefetchCopyIntervalInBytesRlong-1How far ahead to prefetch destination area (< 0 means off). G1 GC only.
PrefetchScanIntervalInBytesRlong-1How far ahead to prefetch scan area (< 0 means off). G1 GC only.
PrintAnalysisCallTreeRbooleanPrint analysis call tree, a breadth-first tree reduction of the call graph.
PrintAnalysisCallTreeTypeRstringTXTChange the output format of the analysis call tree, available options are TXT and CSV. See: Reports.md.
PrintAnalysisStatisticsRbooleanPrint analysis results statistics.
PrintBBInfoRbooleanEnables dumping of basic blocks relative PC and frequencies in the dump directory.
PrintBackendCFGRbooleanEnable dumping scheduled HIR, LIR, register allocation and code generation info to the C1Visualizer.
PrintBlockMappingRbooleanEnable dumping CFG built during initial BciBlockMapping.
PrintCallEdgesRbooleanPrint call edges with other analysis results statistics.
PrintCanonicalGraphStringFlavorRlong0Choose 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).
PrintCanonicalGraphStringsRbooleanEnable dumping canonical text from for graphs.
PrintCompilationRbooleanPrint an informational line to the console for each completed compilation.
PrintDetailedAllocationProfilingRbooleanPrint detailed information for each allocation site.
PrintFlagsRstringNoneShow available options based on comma-separated option-types (allowed categories: User, Expert, Debug).
PrintFlagsWithExtraHelpRstringNonePrint extra help, if available, based on comma-separated option names. Pass * to show all options that contain extra help.
PrintGCRbooleanPrint summary GC information after each collection.
PrintGCSummaryRbooleanPrint summary GC information after application main method returns. Serial GC only.
PrintGCTimesRbooleanPrint the time for each of the phases of each collection, if +VerboseGC. Serial GC only.
PrintGraphRstringFileWhere IdealGraphVisualizer graph dumps triggered by Dump or DumpOnError should be written.
PrintGraphFileRbooleanSetting to true sets PrintGraphfile, setting to false sets PrintGraphnetwork.
PrintGraphHostRstring127.0.0.1Host part of the address to which graphs are dumped.
PrintGraphPortRlong4445Port part of the address to which graphs are dumped in binary format.
PrintGraphStateDiffRbooleanPrints the difference in the graph state caused by each phase of the suite.
PrintGraphWithScheduleRbooleanSchedule graphs as they are dumped.
PrintIRWithLIRRbooleanPrint HIR along side LIR as the latter is generated.
PrintImageObjectTreeRbooleanPrint image object hierarchy.
PrintIntrinsicsRbooleanPrint the registered intrinsics in a format compatible with DisableIntrinsics.
PrintLIRWithAssemblyRbooleanInclude the LIR as comments with the final assembly.
PrintLoweringScheduleToTTYRbooleanPrint schedule result pre lowering to TTY.
PrintPointsToStatisticsRbooleanReport analysis statistics.
PrintProfileLoadingRbooleanPrint to stdout when a profile is loaded.
PrintProfilingInformationRbooleanPrint profiling information when parsing a method's bytecode.
PrintSynchronizedAnalysisRbooleanPrint types used for Java synchronization.
PrintUnmodifiedGraphsRbooleanDump 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.
PriorityForceInlineRstringNoneUnconditionally inline all methods matching the pattern using the priority-based inliner. See the MethodFilter option for a description of the pattern syntax.
PriorityInliningPolicyRstringThe policy to use, must be empty for automatic resolution.
PriorityInliningTuningPolicyRstringDomainSpecificComma-separated list of analysis policies for exploring the methods in the call graph and for inlining, empty for no policy.
PriorityNeverInlineRstringNoneNever inline methods matching the pattern using the priority-based inliner. See the MethodFilter option for a description of the pattern syntax.
ProfileAllocationsRbooleanEnable profiling of allocation sites.
ProfileAllocationsContextRstringAllocatingMethodControl the naming and granularity of the counters when using ProfileAllocations.
ProfileAnalysisOperationsRbooleanTrack the progress of the static analysis.
ProfileCompiledMethodsRboolean
ProfileConstantObjectsRbooleanTrack the creation of constant objects.
ProfileLockEliminationRboolean
ProfileMethodFilterRstringNoneRestrict saving or loading of profiles based on this filter. See the MethodFilter option for the pattern syntax.
ProfileMonitorsRbooleanEnable profiling of monitor operations.
ProfileOptBulkAllocationRboolean
ProfileSelfTimeRbooleanExcludes time spent in invoked methods; measures total time including subcalls when turned off.
ProfilesDumpFileRstringdefault.iprofValue should point to a profile dump file.
ProfilingDumpPeriodRlong-1Integer 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.
ProfilingDumpVerboseRbooleanEmit a message to stderr after dumping a profile.
PropagateEqualityDepthRlong6Maximum depth of dependency when propagating equals property.
PruneLargeDominatorUsageTreesRboolean
PullThroughPhiCodeSizeIncreaseRdouble0.1PullThroughPhiOptimization: Percentage in node cost graph size for the floating node duplication budget. Computed relative to the method's graph size.
PullThroughPhiCodeSizeIncreaseHotCodeRdouble2.5See PullThroughPhiCodeSizeIncrease.
QueuedAllocationWarningCountRlong0Number of times an allocation that queues behind a GC will retry before printing a warning. G1 GC only.
RawConditionalEliminationRboolean
ReadEliminationMaxLoopVisitsRlong5
ReadProxySchedulingStrategyRstringLATEST_OUT_OF_LOOPSChose the scheduling strategy for inserting the read proxies.
ReassociateExpressionsRbooleanRe-associate loop invariants and constants.
ReduceDCERbooleanDisable optional dead code eliminations.
RegisterPressureRstringNoneComma separated list of registers that register allocation is limited to.
RelativeBenefitInliningCoefficientRdouble0.001The coefficient used to compute the inlining threshold; the higher, the hard to inline.
RelaxTypeFlowStateConstraintsRbooleanAllow a type flow state to contain types not compatible with its declared type.
RemoveLoopSafepointsRbooleanRemove safepoints on counted loop ends.
RemoveNeverExecutedCodeRboolean
RemoveSaturatedTypeFlowsRbooleanEnable the type flow saturation analysis performance optimization.
ReplaceInputsWithConstantsBasedOnStampsRboolean
ReservedAddressSpaceSizeRlong0The number of bytes that should be reserved for the heap address space.
ResizePLABRbooleanDynamically resize (survivor space) promotion LAB's. G1 GC only.
ResizeTLABRbooleanDynamically resize TLAB size for threads. G1 GC only.
RespectVectorizationRbooleanTry avoid unrolling vectorizable loops.
ReuseRecursiveDuplicatedMethodsRbooleanDo not duplicate recursive methods but rather reuse a previous duplicate.
RewriteStripMinedCounterTo32BitRbooleanRewrite the counter of a strip mined loop to have a 32bit type.
RootSizePenaltyCoefficientRdouble0.1Reduces likelihood of spending a lot of time inlining when the IR is already large.
RootSizePenaltyTypicalGraphSizeRlong3250At what size of the root IR graph do we start to consider applying a exploration penalty.
RotateNonLeafLoopsRboolean
RotationMinLocalFrequencyRdouble2Minimal loop frequency for a loop to be considered for rotation.
RotationMinRelativeFrequencyRdouble1Minimal relative frequency for a loop to be considered for rotation.
SIMDArithmeticReduceMinLengthRlong16Minimum vector length for matching SIMD arithmetic reduce patterns.
SIMDVectorizationCheckLoadGroupProfitabilityRbooleanCheck for profitability when grouping memory loads to SIMD loads.
SIMDVectorizationDirectLoadStoreRbooleanAllow SIMDVectorization to vectorize load to store opportunities when there are no matching SIMD operations between load and store.
SIMDVectorizationSingletonsRbooleanEnable matching of singleton groups to increase corner-case matching.
SIMDVectorizationVolatileLoadsRbooleanAllow load grouping to include grouping of volatile loads. Note currently this may generate incorrect results.
SIMDVectorizationVolatileWritesRbooleanAllow store grouping to include grouping of volatile writes. Note currently this may generate incorrect results.
SIMDVectorizationWindowSizeRlong4Set the number of dominating and dominated blocks scanned per block.
SafepointPromptnessFailureNanosRlong0Exit the VM if I can not come to a safepoint in this many nanoseconds. 0 implies forever.
SafepointPromptnessWarningNanosRlong0Print a warning if I can not come to a safepoint in this many nanoseconds. 0 implies forever.
SaveProfilesRbooleanSave per compilation profile information.
SaveProfilesPathRstringNonePath for saving compilation profiles. If the value is omitted the debug dump path will be used.
ScanObjectsParallelRbooleanObject scanning in parallel.
ScheduledDuplicationSimulationRbooleanSimulation can either only process fixed nodes or schedule the graph and also process floating nodes.
ShowConfigurationRstringnoneWrites to the VM log information about the compiler configuration selected.
ShowDumpFilesRbooleanPrint the name of each dump file path as it's created.
ShowSubstitutionSourceInfoRbooleanControls 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.
SimulationBasedLoopPeelingRbooleanUse DBDS algorithm to simulate the impact of peeling on a loop.
SimulationPruneUnlikelyBranchesRbooleanIgnore low frequency branches during simulation.
SmallCompiledLowLevelGraphSizeRlong330If the previous low-level graph size of the method exceeds the threshold, it is not inlined.
SmallGraphDuplicationBudgetFactorRdouble1See 'DuplicationBudgetFactor': for small graphs.
SmallGraphSizeRlong2000Node cost graph size for a graph to be considered 'small'.
SmallRootIrPenaltyCoefficientRdouble0.02Reduces the likelihood of exploring call graphs with IR size much larger than the root.
SnippetCountersRbooleanEnable counters for various paths in snippets.
SoftRefLRUPolicyMSPerMBRlong1000Number of milliseconds per MB of free space in the heap. G1 GC only.
SpectrePHTBarriersRstringNoneSelect a strategy to mitigate speculative bounds check bypass (aka Spectre-PHT or Spectre V1).
SpectrePHTIndexMaskingRbooleanMask indices to scope access to allocation size after bounds check.
SpeculativeExecutionBarriersRbooleanStop speculative execution on all branch targets with execution barrier instructions.
SpeculativeGuardMovementRbooleanMove loop invariant guards (e.g., array bounds checks) out of loops.
SpeculativeStoreCheckRbooleanSpeculates that arrays have exact type to optimize store checks.
StackSizeRlong0The size of each thread stack at run-time, in bytes.
StartFlightRecordingRstringStart flight recording with options.
StrengthenGraphWithConstantsRbooleanPerform constant folding in StrengthenGraphs.
StressExplicitExceptionCodeRbooleanStress the code emitting explicit exception throwing code.
StressInvokeWithExceptionNodeRbooleanStress the code emitting invokes with explicit exception edges.
StressTestEarlyReadsRbooleanStress the code by emitting reads at earliest instead of latest point.
StrictDeoptInsertionChecksRbooleanPerform checks that guards and deopts aren't introduced in graphs that should handle exceptions explicitly.
StrictProfilesRbooleanThrow an error if an attempt is made to overwrite/update a profile loaded from disk.
StringIndexOfConstantLimitRlong4096String.indexOf invocations will be evaluated at compile time if the receiver is a constant and its length is smaller than this value.
StripMineALotRbooleanForce strip mining of all loops that can be strip mined.
StripMineCountedLoopsRboolean
StripMineInvertedLoopsRbooleanStrip mine inverted loops.
StripMineNonCountedLoopsRboolean
SupportJsrBytecodesRboolean
SupportOSRWithLocksRbooleanSupport 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.
SurvivorRatioRlong8Ratio of eden/survivor space size. G1 GC only.
SystemicCompilationFailureRateRlong1Compilation 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.
TLABAllocationWeightRlong35Allocation averaging weight. G1 GC only.
TLABRefillWasteFractionRlong64Maximum TLAB waste at a refill (internal fragmentation). G1 GC only.
TLABSizeRlong0Starting TLAB size (in bytes); zero means set ergonomically. G1 GC only.
TLABWasteIncrementRlong4Increment allowed waste at slow allocation. G1 GC only.
TLABWasteTargetPercentRlong1Percentage of Eden that can be wasted. G1 GC only.
TargetPLABWastePctRlong10Target wasted space in last buffer as percent of overall allocation. G1 GC only.
TargetSurvivorRatioRlong50Desired percentage of survivor space used after scavenge. G1 GC only.
TearDownFailureNanosRlong0The number of nanoseconds before tearing down an isolate gives a failure message. 0 implies no message.
TearDownWarningNanosRlong0The number of nanoseconds before and between which tearing down an isolate gives a warning message. 0 implies no warning.
TimeRstringNonePattern for specifying scopes in which timing is enabled. See the Dump option for the pattern syntax. An empty value enables all timers unconditionally.
TimeStampProfilingRbooleanProfile method execution time.
TimedDynamicCountersRlong-1Turn on the benchmark counters, and displays the results every n milliseconds.
TimersRstringNoneComma separated names of timers that are enabled irrespective of the value for Time option. An empty value enables all timers unconditionally.
TraceAuxiliaryImageClassHistogramRbooleanEnables detailed tracing of auxiliary image events.
TraceAuxiliaryImageReferenceTreeRbooleanEnables detailed tracing of auxiliary image events.
TraceBytecodeParserLevelRlong0The 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.
TraceCodeCacheRbooleanPrint logging information for runtime code cache modifications.
TraceDeoptimizationRbooleanPrint logging information for every deoptimization.
TraceDeoptimizationDetailsRbooleanPrint verbose logging information for every deoptimization.
TraceDuplicatedMethodsRbooleanTrace duplicated methods.
TraceEscapeAnalysisRboolean
TraceExceptionHandlerStubRbooleanTrace execution of stub used to handle an exception thrown by a callee.
TraceHeapChunksRbooleanTrace heap chunks during collections, if +VerboseGC. Serial GC only.
TraceInlineDuringParsingRbooleanTraces inlining performed during bytecode parsing.
TraceInliningRbooleanEnable tracing of inlining decisions.
TraceInliningForStubsAndSnippetsRbooleanEnable inlining decision tracing in stubs and snippets.
TraceLIRGeneratorLevelRlong0The trace level for the LIR generator.
TraceMonitorsMethodFilterRstringNoneTrace monitor operations in methods whose fully qualified name contains this substring.
TraceMonitorsTypeFilterRstringNoneTrace monitor operations on objects whose type contains this substring.
TraceParserPluginsRbooleanTraces use of plugins during bytecode parsing.
TraceUnwindStubRbooleanTrace execution of the stub that routes an exception to a handler in the calling frame.
TrackAccessChainRbooleanTrack the callers for methods and accessing methods for fields.
TrackGraphSizesInDuplicationRbooleanEnable (if Count is enabled) graph size tracking during every duplication iteration.
TrackIPEAStatisticsRstringnoneTrack IPEA statistics in substratePriorityInliner.
TrackInliningStatisticsRstringnoneTrack inlining statistics (inlining duration, call tree size, compiler node counts, and the number of callsites). One of: none, interactive.
TrackInputFlowsRbooleanTrack the input for type flows.
TrackMemUseRstringNonePattern 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.
TrackNodeInsertionRbooleanTrack source stack trace where a node was inserted into the graph.
TrackNodeSourcePositionRbooleanTrack the NodeSourcePosition.
TrackPrimitiveValuesRbooleanTrack primitive values using the infrastructure of points-to analysis.
TrivialInliningSizeRlong10Graphs with less than this number of nodes are trivial and therefore always inlined.
TrivialLoopSizeLimitForPeelingRdouble512Loop 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.
TruffleCompilerConfigurationRstringNoneSelect a compiler configuration for Truffle compilation (default: use Graal system compiler configuration).
TruffleHostInliningRbooleanWhether Truffle host inlining is enabled.
TruffleHostInliningBaseBudgetRlong5000Maximum budget for Truffle host inlining for runtime compiled methods.
TruffleHostInliningByteCodeInterpreterBudgetRlong100000Maximum budget for Truffle host inlining for runtime compiled methods with a BytecodeInterpreterSwitch annotation.
TruffleHostInliningMaxExplorationDepthRlong1000Determines the maximum call depth for exploration during host inlining.
TruffleHostInliningMaxSubtreeInvokesRlong20Maximum number of subtree invokes for a subtree to get inlined until it is considered too complex.
TruffleHostInliningMinFrequencyRdouble0.001Minimum relative frequency for calls to get inlined. Default 0.001 on HotSpot and no minimum frequency on SVM.
TruffleHostInliningPrintExploredRbooleanWhen logging is activated for this phase enables printing of only explored, but ultimately not inlined call trees.
TruffleImmutableFrameFieldsRbooleanWhether Truffle should mark final frame fields as immutable.
TruffleTrustedNonNullCastRbooleanWhether Truffle trusted non-null casts are enabled.
TruffleTrustedTypeCastRbooleanWhether Truffle trusted type casts are enabled.
TrustFinalDefaultFieldsRbooleanDetermines whether to treat final fields with default values as constant.
TryExplodeOverPhisRbooleanPullThroughPhiOptimization: Enable floating node duplication over multiple phi nodes at once.
TryPhiPhiPullsRbooleanPullThroughPhiOptimization: Enable floating node duplication over phis where the target node has different phis as input.
TuneInlinerExplorationRdouble0Increases 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.
TypeCheckMaxHintsRlong2The 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.
TypeCheckMinProfileHitProbabilityRdouble0.5If 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.
TypeFlowPrinterInRadiusRlong0How many levels of inputs to print. A value of 0 prints only the target flow.
TypeFlowPrinterOutRadiusRlong0How many levels of outputs to print. A value of 0 prints only the target flow.
TypeFlowSaturationCutoffRlong20The maximum number of types recorded in a type flow. -1 indicates no limitation.
TypicalCallGraphSizeRlong100Denotes the call graph size that is considered medium size.
TypicalGraphSizeRlong3250The typical graph size at which inlining pressure must start growing.
TypicalGraphSizeInvokeBonusRlong70The increase in estimated typical graph size after inlining, per each extra invoke.
TypicalGraphSizeMaxRlong15000The maximum in estimated inlined typical graph size.
UnresolvedIsErrorRbooleanDeprecated, option no longer has any effect.
UnrollEmptyLoopsRbooleanUnroll empty loops.
UnrollInvertedLoopsRbooleanUnroll inverted (tail counted) loops.
UnrollMaxIterationsRlong16
UnrollMultiEndLoopsRbooleanUnroll loops with multiple loop ends.
UnrollMultiExitLoopsRbooleanUnroll loops with multiple loop exits.
UseBranchesWithin32ByteBoundaryRbooleanForce 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.
UseCompilationStatisticsRbooleanEnables CompilationStatistics.
UseDynamicNumberOfGCThreadsRbooleanDynamically choose the number of threads up to a maximum of ParallelGCThreads that G1 will use for garbage collection work.
UseExceptionProbabilityRboolean
UseExperimentalReachabilityAnalysisRbooleanUse experimental Reachability Analysis instead of points-to.
UseGraphCacheRbooleanTurn on graph caching.
UseLoopEndFrequenciesRbooleanDerive loop frequencies only from backedge frequencies instead of from loop exit frequencies.
UseLoopLimitChecksRboolean
UsePerfDataRbooleanFlag to disable jvmstat instrumentation for performance testing.
UsePriorityInliningRbooleanUse priority-based inlining.
UsePriorityInliningPEARbooleanTurn on partial escape analysis during inlining.
UseReachabilityMethodSummariesRbooleanUse method summaries for Reachability Analysis.
UseSnippetGraphCacheRbooleanUse a cache for snippet graphs.
UseSnippetTemplateCacheRbooleanUse a LRU cache for snippet templates.
UseTrappingNullChecksRbooleanUse traps for null checks instead of explicit null-checks.
UseTypeCheckHintsRboolean
UsedEdenProportionThresholdRdouble0.75Ratio 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.
VTuneAbsoluteFilenamesRbooleanUse absolute path for source-filenames in VTune events.
VTuneRuntimeSourceDestDirRstringNoneDirectory where Java source-files will be placed for the debugger.
VectorFoldMinIterationsRlong4Only generate SIMD loops for vector folds expected to iterate at least this many times.
VectorIntrinsicsRbooleanEnable vectorized array copy intrinsics.
VectorPolynomialIntrinsicsRbooleanEnable vectorized polynomial intrinsics.
VectorUnrollRlong1Unroll vectorized loops.
VectorizationRbooleanEnable vectorization.
VectorizeAllocationRbooleanEnable vectorized array initialization.
VectorizeConditionalRbooleanEnable vectorization of conditional code.
VectorizeDeoptsRbooleanEnable vectorization of loops with conditional deopts before writes.
VectorizeFoldShapedRbooleanEnable vectorization of loops implementing a higher-order 'fold' function.
VectorizeGatherRbooleanEnable vectorization of vector gather operations.
VectorizeHashesRbooleanEnable vectorization of hashCode patterns.
VectorizeIntegerMinMaxRbooleanEnable vectorization of integer min/max operations.
VectorizeLoopsRbooleanEnable vectorization of loops.
VectorizeMapShapedRbooleanEnable vectorization of loops implementing a higher-order 'map' function.
VectorizeNegativeStrideRbooleanEnable vectorization of loops with negative strides.
VectorizeReachabilityFencesRbooleanEnable vectorization of loops with reachability fences.
VectorizeSIMDRbooleanEnable detection of SIMD patterns.
VectorizeSafepointsRbooleanEnable vectorization of loops with safepoints.
VectorizeSequenceRbooleanEnable vectorization of sequence values.
VerboseGCRbooleanPrint more information about the heap before and after each collection.
VerifyRstringNonePattern for specifying scopes in which logging is enabled. See the Dump option for the pattern syntax.
VerifyAfterGCRbooleanVerify memory system after GC. G1 GC only.
VerifyBalancedMonitorsRbooleanEmit extra code to dynamically check monitor operations are balanced.
VerifyBeforeGCRbooleanVerify memory system before GC. G1 GC only.
VerifyDuplicationOperationsRboolean
VerifyDuringGCRbooleanVerify memory system during GC (between phases). G1 GC only.
VerifyGCStartAtRlong0GC invoke count where +VerifyHeap kicks in. G1 GC only.
VerifyGraalGraphEdgesRbooleanPerform expensive verification of graph inputs, usages, successors and predecessors.
VerifyGraalGraphsRbooleanVerify graphs often during compilation when assertions are turned on.
VerifyGraalPhasesSizeRbooleanVerify before - after relation of the relative, computed, code size of a graph.
VerifyHeapAtReturnRbooleanPerform platform dependent validation of the Java heap at returns.
VerifyKillCFGUnusedNodesRbooleanVerify that there are no new unused nodes when performing killCFG.
VerifyLoopVectorizationRbooleanRun expensive checks to verify the graph after loop vectorization.
VerifyPhasesRboolean
VerifyRememberedSetsRbooleanVerify GC remembered sets. G1 GC only.
VerifyWriteBarrierEliminationRbooleanAdd code to verify that eliminated barriers weren't needed.
WarnAboutCodeSignatureMismatchRbooleanPrint to stdout when a compilation performed with different profiles generates different backend code.
WarnAboutGraphSignatureMismatchRbooleanPrint to stdout when a compilation performed with different profiles generates different frontend IR.
WarnAboutNotCachedLoadedAccessRbooleanPrint to stdout when requesting profiling info not present in a loaded profile.
WarnMissingIntrinsicRbooleanPrint a warning when a missing intrinsic is seen.
WriteSinkingExcludeFieldsRstringNoneExclude certain fields from write sinking. Fields are specified with the same syntax as method filters, minus the signature part.
WriteableCodeCacheRbooleanAllocate code cache with write access, allowing inlining of objects.
YoungPLABSizeRlong4096Size of young gen promotion LAB's (in HeapWords). G1 GC only.
ZapStackOnMethodEntryRboolean
ZeroTLABRbooleanZero out the newly created TLAB. G1 GC only.