Skip to main content

native-image Expert Options - 21.3.0

Other versions:22.0.122.3.322.3.222.3.022.2.022.1.022.0.0.220.3.4

Name
Type
Data Type
Default value
Description
AOTInlineHbooleanPerform method inlining in the AOT compiled native image.
AOTInliningDepthToSizeRateHdouble2.5
AOTInliningSizeMaximumHlong300
AOTInliningSizeMinimumHlong50
AOTTrivialInlineHbooleanPerform trivial method inlining in the AOT compiled native image.
AOTVerifyOopsHbooleanGenerate verify oop checks in AOT code.
APIFunctionPrefixHstringgraal_Prefix that is added to the names of API functions.
ASMInstructionProfilingHstringNoneEnables instruction profiling on assembler level. Valid values are a comma separated list of supported instructions. Compare with subclasses of Assembler.InstructionCounter.
AbortOnBenchmarkCounterOverflowHbooleanAbort VM with SIGILL if benchmark counters controlled by the (Generic|Timed|Benchmark)DynamicCounters.
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.
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.
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.
AlignedHeapChunkSizeHlong1048576The size of an aligned chunk.
AllocateInstancePrefetchLinesHlong1Number of cache lines to load after the object address using prefetch instructions.
AllocatePrefetchDistanceHlong256Sets 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.
AllocatePrefetchLinesHlong3Number of cache lines to load after the array allocation using prefetch instructions.
AllocatePrefetchStepSizeHlong16Sets 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.
AllocationBeforePhysicalMemorySizeHlong1048576Bytes that can be allocated before (re-)querying the physical memory size.
AllocationProfilingHbooleanEnable runtime profiling of allocation.
AllocationSiteSensitiveHeapHbooleanA context sensitive heap means that each heap allocated object is modeled by using at least the allocation site.
AllowFoldMethodsHbooleanAllow MethodTypeFlow to see @Fold methods.
AllowIncompleteClasspathHbooleanAllow image building with an incomplete class path: report type resolution errors at run time when they are accessed the first time, instead of during image building.
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 runtime.
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.
AnalysisStatisticsFileHstringNoneAnalysis results statistics file.
AssertInitializationSpecifiedForAllClassesHbooleanAssert class initialization is specified for all classes.
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:.
BitcodeOptimizationsHbooleanEnable LLVM bitcode optimizations.
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).
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.
CLibraryPathHstring<string>*Search path for C libraries passed to the linker (list of comma-separated directories).
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.
CStandardHstringC89C standard to use in header files. Possible values are: [C89, C99, C11].
CanOmitFrameHboolean
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.
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.
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.
CollectImageBuildStatisticsHbooleanCollect information during image build about devirtualized invokes and bytecode exceptions.
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.
CompilationExpirationPeriodHlong300Time 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.
CompilationWatchDogStackTraceIntervalHdouble60Interval in seconds between a watch dog reporting stack traces for long running compilations.
CompilationWatchDogStartDelayHdouble0Delay in seconds before watch dog monitoring a compilation (0 disables monitoring).
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.
ConditionalEliminationHboolean
ConditionalEliminationMaxIterationsHlong4
ConfigurationFileDirectoriesHstring<string>*Directories directly containing configuration files for dynamic features at runtime.
ConfigurationResourceRootsHstring<string>*Resource path above configuration resources for dynamic features at runtime.
ConfigureReflectionMetadataHbooleanLimit method reflection metadata to configuration entries instead of including it for all reachable methods.
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.
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.
CustomLDHstringPath to a custom ld binary for LLVM linking.
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).
DebugInfoSourceCacheRootHstringsourcesDirectory under which to create source file cache for Application or GraalVM classes.
DebugInfoSourceSearchPathHstring<string>*Search path for source files for Application or GraalVM classes (list of comma-separated directories or jar files).
DebugStubsAndSnippetsHbooleanEnable debug output for stub code generation and snippet preparation.
DefaultLocaleHstringen-USDefault locale of the image, by the default it is the same as the default locale of the image builder.
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.
DetectUserDirectoriesInImageHeapHbooleanWhen set to true, the image generator verifies that the image heap does not contain a home directory as a substring.
DiagnoseDumpLevelHlong3Specify the DumpLevel if CompilationFailureAction#Diagnose is used.See CompilationFailureAction for details. file:doc-files/CompilationFailureActionHelp.txt.
DiagnosticsDirHstringreports/diagnostics_20220118_033411Sets the dir where diagnostic information is dumped.
DiagnosticsModeHbooleanEnables the diagnostic mode.
DisableInterceptHbooleanDisable intercepting exceptions in debug scopes.
DisableTypeIdResultVerificationHbooleanFor internal purposes only. Disables type id result verification even when running with assertions enabled.
DivertParameterReturningMethodHbooleanAnalysis: Detect methods that return one of their parameters and hardwire the parameter straight to the return.
DumpHstringNoneFilter pattern for specifying scopes in which dumping is enabled.
DumpAfterEveryBCIHbooleanDump the current graph after every bci to IGV.
DumpHeapHstring<string>*Dump the heap at a specific time during image building.The option accepts a list of comma separated phases, any of: after-analysis, before-compilation.
DumpLLVMStackMapHstringNoneDump contents of the generated stackmap to the specified file.
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.
DumpPathHstringgraal_dumpsThe directory where various Graal dump files are written.
DumpTargetInfoHbooleanShow native-toolchain information and image-build settings.
DumpThreadStacksOnSignalHbooleanDumps all thread stacktraces on SIGQUIT/SIGBREAK.
DumpingErrorsAreFatalHbooleanTreat any exceptions during dumping as fatal.
DuplicateIrreducibleLoopsHbooleanWhen enabled, some limited amount of duplication will be performed in order compile code containing irreducible loops.
DynamicCountersPrintGroupSeparatorHbooleanUse grouping separators for number printing.
DynamicProxyConfigurationFilesHstring<string>*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.
EagerSnippetsHbooleanEagerly construct extra snippet info.
EmitStringSubstitutionsHbooleanEmit substitutions for String methods.
EnableAllSecurityServicesHbooleanAdd all security service classes to the generated image.
EnableLoggingFeatureHbooleanEnable the feature that provides support for logging.
EnableSecurityServicesFeatureHbooleanEnable automatic registration of security services.
EnableSignalAPIHbooleanEnables the signal API (sun.misc.Signal or jdk.internal.misc.Signal). Defaults to false for shared library and true for executables.
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.
EntryPointNamePrefixHstringPrefix that is added to the names of entry point methods.
EscapeAnalysisIterationsHlong2
EscapeAnalysisLoopCutoffHlong20
EscapeAnalyzeOnlyHstringNone
ExactFullUnrollMaxNodesHlong800
ExactPartialUnrollMaxNodesHlong200
ExcludeResourcesHstring<string>*Regexp to match names of resources to be excluded from the image.
ExhaustiveHeapScanHbooleanScan all objects reachable from roots for analysis. By default false.
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.
ExitVMOnExceptionHbooleanAlias for CompilationFailureActionExitVM.
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.
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.
ForceNoROSectionRelocationsHbooleanUse only a writable native image heap (requires ld.gold linker).
FullUnrollHboolean
FullUnrollConstantCompareBoostHlong15
FullUnrollMaxApplicationHlong60
FullUnrollMaxIterationsHlong600
FullUnrollMaxNodesHlong400
GCDebugStartCycleHlong-1Start tracing compiled GC barriers after N garbage collections (disabled if N < 0).
GatherSafepointStatisticsHbooleanGather statistics about each safepoint.
GenLoopSafepointsHboolean
GenerateDebugInfoHlong0Insert debug info into the generated native image or library.
GeneratePICHbooleanGenerate position independent code.
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.
GraphCompressionThresholdHlong70Graal graph compression is performed when percent of live nodes falls below this value.
GreyToBlackObjRefDemographicsHbooleanDevelop demographics of the object references visited.
GreyToBlackObjectVisitorDiagnosticHistoryHlong0Length of GreyToBlackObjectVisitor history for diagnostics. 0 implies no history is kept.
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.
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.
ImageBuildStatisticsFileHstringNoneFile for printing image build statistics.
ImageHeapCardMarkingHbooleanEnables card marking for image heap objects, which arranges them in chunks. Automatically enabled when supported.
ImageObjectTreeExpandRootsHstringOverride the default suppression of specified roots. See: Reports.md.
ImageObjectTreeExpandTypesHstringOverride the default suppression of specified types. See: Reports.md.
ImageObjectTreeSuppressRootsHstringSuppress the expansion of specified roots. See: Reports.md.
ImageObjectTreeSuppressTypesHstringSuppress the expansion of specified types. See: Reports.md.
ImageSymbolsPrefixHstringCommon prefix used by method symbols in image.
ImmutableCodeHbooleanTry to avoid emitting code where patching is required.
IncludeAllLocalesHbooleanMake all hosted locales available at run time.
IncludeAllTimeZonesHbooleanWhen true, all time zones will be pre-initialized in the image.
IncludeLLVMDebugInfoHlong0Include debugging info in the generated image (for LLVM backend).
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.
IncludeTimeZonesHstringThe time zones, in addition to the default zone of the host, that will be pre-initialized in the image.
InitialCollectionPolicyHstringBySpaceAndTimeThe garbage collection policy, either Adaptive or BySpaceAndTime (default).
InlineHbooleanEnable inlining.
InlineBeforeAnalysisHbooleanInline methods before static analysis.
InlineBeforeAnalysisAllowedDepthHlong20Maximum number of invokes 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.
InlineDuringParsingHbooleanInlines trivial methods during bytecode parsing.
InlineDuringParsingMaxDepthHlong10Maximum depth when inlining during bytecode parsing.
InlineEverythingHboolean
InlineIntrinsicsDuringParsingHbooleanInlines intrinsic methods during bytecode parsing.
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
InliningDepthErrorHlong1000Maximum inlining depth during partial evaluation before reporting an infinite recursion.
InspectServerContentPathHstringinspectPath to the contents of the Inspect web server.
InstallExitHandlersHbooleanProvide java.lang.Terminator exit handlers for executable images.
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.
JNIHbooleanEnable Java Native Interface (JNI) support.
JNIConfigurationFilesHstring<string>*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).
JNIExportSymbolsHbooleanExport Invocation API symbols.
JNIVerboseLookupErrorsHbooleanReport information about known JNI elements when lookup fails.
LIRDynMoveProfileMethodHbooleanEnable dynamic move profiling per method.
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 optimiztations.
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).
LLVMMaxFunctionsPerBatchHlong1000Maximum size of batches used for LLVM compilation. 0 means a single batch, 1 means all functions separately.
LSRAOptSplitOnlyHbooleanLSRA optimization: Only split but do not reassign.
LSRAOptimizationHbooleanEnable LSRA optimization.
LargeArrayThresholdHlong0The size at or above which an array will be allocated in its own unaligned chunk. 0 implies (AlignedHeapChunkSize / 8).
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.
LinkerRPathHstring<string>*Path passed to the linker as the -rpath (list of comma-separated directories).
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.
LoadExceptionObjectInVMHbooleanUse a VM runtime call to load and clear the exception object from the thread at the start of a compiled exception handler.
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.
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.
LoopHeaderAlignmentHlong16Alignment in bytes for loop header blocks.
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.
LoopUnswitchHboolean
LoopUnswitchFrequencyBoostHdouble10
LoopUnswitchMaxIncreaseHlong500
LoopUnswitchTrivialHlong10
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.
MaxConstantObjectsPerTypeHlong100The maximum number of constant objects recorded for each type before merging the constants into one unique constant object per type. The analysis must be heap sensitive. It has a minimum value of 1.
MaxDuplicationFactorHdouble2How much duplication can happen because of irreducible loops before bailing out.
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).
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.
MaxReachableTypesHlong-1Maximum number of types allowed in the image. Used for tests where small number of types is necessary.
MaxRuntimeCompileMethodsHstring<string>*Maximum number of methods allowed for runtime compilation.
MaxSurvivorSpacesHstringNoneMaximum number of survivor spaces.
MaxTemplatesPerSnippetHlong50
MaxUnrolledObjectZeroingStoresHlong8Define the maximum number of stores for which the loop that zeroes out objects is unrolled.
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.
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.
MinCallingContextDepthHlong0The minimum length of the methods context chains.
MinHeapContextDepthHlong0The minimum length of the context used to model a heap object in addition to the allocation site; used only when ContextSensitiveHeap is enabled.
MinimalBulkZeroingSizeHlong2048If applicable, use bulk zeroing instructions when the zeroing size in bytes exceeds this threshold.
MinimumPeelFrequencyHdouble0.35
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.
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.
NativeArchitectureHbooleanOverrides CPUFeatures and uses the native architecture, i.e., the architecture of a machine that builds an image. NativeArchitecture takes precedence over CPUFeatures.
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.
NodeCountersHbooleanCounts the number of instances of each node class.
NonFatalIdenticalCompilationSnapshotsHlong20Number of contiguous identical compiler thread stack traces allowed before the VM exits on the basis of a stuck compilation.
NumberOfAnalysisThreadsHlong-1The number of threads to use for analysis during native image generation. The number must be smaller than the NumberOfThreads.
NumberOfThreadsHlong2The 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.
OmitHotExceptionStacktraceHboolean
OmitInlinedMethodDebugLineInfoHbooleanOmit generation of DebugLineInfo originating from inlined methods.
OptAssumptionsHboolean
OptConvertDeoptsToGuardsHboolean
OptDeoptimizationGroupingHboolean
OptDevirtualizeInvokesOptimisticallyHboolean
OptEarlyReadEliminationHboolean
OptEliminateGuardsHboolean
OptFloatingReadsHboolean
OptImplicitNullChecksHboolean
OptReadEliminationHboolean
OptScheduleOutOfLoopsHboolean
OptStaticFinalFieldFoldingHbooleanOptimize static final fields that get a constant assigned in the class initializer.
OptimizeHlong2Control native-image code optimizations: 0 - no optimizations, 1 - basic optimizations, 2 - aggressive optimizations.
PageSizeHlong0Define PageSize of a machine that runs the image. The default 0 ( same as host machine page size).
ParseOnceHbooleanWhen true, compiler graphs are parsed only once before static analysis. When false, compiler graphs are parsed for static analysis and again for AOT compilation.
ParseRuntimeOptionsHbooleanParse and consume standard options and system properties from the command line arguments when the VM is created.
PartialEscapeAnalysisHboolean
PartialUnrollHboolean
PathHstringNoneDirectory of the image file to be generated.
PeelALotHboolean
PlatformInterfaceCompatibilityModeHbooleanEnable the behavior of old GraalVM versions. When enabled, interfaces not available for the current platform are filtered.
PredefinedClassesConfigurationFilesHstring<string>*Files describing predefined classes that can be loaded at runtime.
PredefinedClassesConfigurationResourcesHstring<string>*Resources describing predefined classes that can be loaded at runtime.
PreserveFramePointerHbooleanSaves stack base pointer on the stack on method entry.
PrintAOTCompilationHbooleanPrint logging information during compilation.
PrintAnalysisCallTreeHbooleanPrint analysis call tree, a breadth-first tree reduction of the call graph.
PrintAnalysisStatisticsHbooleanPrint analysis results statistics.
PrintBackendCFGHbooleanEnable dumping LIR, register allocation and code generation info to the C1Visualizer.
PrintBlockMappingHbooleanEnable dumping CFG built during initial BciBlockMapping.
PrintCFGHbooleanEnable dumping to the C1Visualizer. Enabling this option implies PrintBackendCFG.
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.
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.
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.
PrintImageHeapPartitionSizesHbooleanPrint the sizes of the native image heap as the image is built.
PrintImageObjectTreeHbooleanPrint image object hierarchy.
PrintJNIMethodsHbooleanPrint JNI methods added to generated image.
PrintLIRWithAssemblyHbooleanInclude the LIR as comments with the final assembly.
PrintMethodHistogramHbooleanPrint statistics of methods in native image heap.
PrintPointsToStatisticsHbooleanReport analysis statistics.
PrintProfilingInformationHbooleanPrint profiling information when parsing a method's bytecode.
PrintRestrictHeapAccessPathHbooleanPrint path for @RestrictHeapAccess warnings.
PrintRestrictHeapAccessWarningsHbooleanPrint warnings for @RestrictHeapAccess annotations.
PrintRuntimeCompileMethodsHbooleanPrint call tree of methods available for runtime compilation.
PrintStaticTruffleBoundariesHbooleanPrint truffle boundaries found during the analysis.
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.
ProbabilisticProfilingHbooleanControl probabilistic profiling on AMD64.
ProfileAllocationsHbooleanEnable profiling of allocation sites.
ProfileAllocationsContextHstringAllocatingMethodControl the naming and granularity of the counters when using ProfileAllocations.
ProfileAnalysisOperationsHbooleanTrack the progress of the static analysis.
ProfileBackedgesHbooleanEmit profiling of backedges.
ProfileCompiledMethodsHboolean
ProfileConstantObjectsHbooleanTrack the creation of constant objects.
ProfileDeoptimizationHbooleanPrint logging information during object file writing.
ProfileInvokesHbooleanEmit profiling of invokes.
ProfileMonitorsHbooleanEnable profiling of monitor operations.
ProfileSimpleMethodsHbooleanProfile simple methods.
QueryCodeDirHstringDirectory where query code for target platform should be output.
RawConditionalEliminationHboolean
ReadEliminationMaxLoopVisitsHlong5
ReassociateExpressionsHbooleanRe-associate loop invariants and constants.
ReduceDCEHbooleanDisable optional dead code eliminations.
ReflectionConfigurationFilesHstring<string>*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.
RelaxTypeFlowStateConstraintsHbooleanAllow a type flow state to contain types not compatible with its declared type.
RemoveNeverExecutedCodeHboolean
RemoveSaturatedTypeFlowsHbooleanEnable the type flow saturation analysis performance optimization.
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.
ResourceConfigurationFilesHstring<string>*Files describing Java resources to be included in the image.
ResourceConfigurationResourcesHstring<string>*Resources describing Java resources to be included in the image.
ReturnAfterAnalysisHbooleanReturn after analysis.
ReturnSpecialRegsHbooleanReturn special registers from functions in LLVM bitcode. This may decrease performance if the target doesn't support returning multiple values from a function.
RuntimeAssertionsHstring<string>*Enable or disable Java assert statements at run time.
RuntimeSystemAssertionsHbooleanEnable or disable Java system assertions at run time.
ScanObjectsParallelHbooleanObject scanning in parallel.
SerializationConfigurationFilesHstring<string>*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<string>*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.
SimpleFastInflatedLockingHbooleanHandle simple cases for inflated monitors in the fast-path.
SimpleMethodCallsHlong1Maximum number of calls in a simple method.
SimpleMethodGraphSizeHlong256Maximum number of nodes in a graph for a simple method.
SimpleMethodIndirectCallsHlong0Maximum number of indirect calls in a simple moethod.
SmallCompiledLowLevelGraphSizeHlong330If the previous low-level graph size of the method exceeds the threshold, it is not inlined.
SnippetCountersHbooleanEnable counters for various paths in snippets.
SoftRefLRUPolicyMSPerMBHlong1000Soft references: this number of milliseconds multiplied by the free heap memory in MByte is the time span for which a soft reference will keep its referent alive after its last access.
SpawnIsolatesHlong1000Support 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.
SpeculativeGuardMovementHbooleanMove loop invariant guards (e.g., array bounds checks) out of loops.
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.
StackTraceHbooleanProvide method names for stack traces.
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.
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.
StrictConfigurationHbooleanCauses unknown attributes in configuration objects to 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.
StrictQueryCodeCompilationHbooleanUse strict checks when performing query code compilation.
StringIndexOfLimitHlong4096String.indexOf invocations will be evaluated at compile time if the receiver is a constant and its length is lower than this value.
SubstitutionFilesHstring<string>*Comma-separated list of file names with declarative substitutions.
SubstitutionResourcesHstring<string>*Comma-separated list of resource file names with declarative substitutions.
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.
TargetPlatformHstringSelects native-image compilation target (in <OS>-<architecture> format). Defaults to host's OS-architecture pair.
TempDirectoryHstringDirectory 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.
TestFileHstring
ThrowUnsafeOffsetErrorsHbooleanThrow unsafe operation offset errors.).
TierABackedgeNotifyFreqLogHlong16Backedge notification frequency.
TierABackedgeProfileProbabilityLogHlong12Backedge profile probability.
TierAInvokeInlineeNotifyFreqLogHlong-1Inlinee invocation notification frequency (-1 means count, but do not notify).
TierAInvokeNotifyFreqLogHlong13Invocation notification frequency.
TierAInvokeProfileProbabilityLogHlong8Invocation profile probability.
TieredAOTHbooleanDo profiling and callbacks to tiered runtime.
TimeHstringNonePattern for specifying scopes in which timing is enabled. See the Dump option for the pattern syntax. An empty value enables all timers unconditionally.
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.
TraceClassInitializationHstringComma-separated list of fully-qualified class names that class initialization is traced for.
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.
TraceObjectInstantiationHstringComma-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.
TraceServiceLoaderFeatureHbooleanWhen enabled, each service loader resource and class will be printed out to standard output.
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.
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.
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.
TruffleCheckBlackListedMethodsHbooleanFail if a method known as not suitable for partial evaluation is reachable for runtime compilation.
TruffleCheckBlockListMethodsHbooleanFail if a method known as not suitable for partial evaluation is reachable for runtime compilation.
TruffleCheckFrameImplementationHbooleanEnforce that the Truffle runtime provides the only implementation of Frame.
TruffleCheckNeverPartOfCompilationHbooleanCheck that CompilerAsserts.neverPartOfCompilation is not reachable for runtime compilation.
TruffleCompilerConfigurationHstringNoneSelect a compiler configuration for Truffle compilation (default: use Graal system compiler configuration).
TruffleInlineDuringParsingHbooleanInline trivial methods in Truffle graphs during native image generation.
TruffleMultiThreadedHbooleanEnable support for Truffle background compilation.
TrufflePropagateCompilationErrorsHbooleanPropagate Truffle compilation errors.
TrustFinalDefaultFieldsHbooleanDetermines whether to treat final fields with default values as constant.
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.
TypeFlowSaturationCutoffHlong20The maximum number of types recorded in a type flow. -1 indicates no limitation.
UnresolvedIsErrorHbooleanReport unresolved elements as errors.
UnrollMaxIterationsHlong16
UnsafeAutomaticSubstitutionsLogLevelHlong1Unsafe automatic substitutions logging level: Disabled0, Basic1, Info2, Debug3.).
UnsafeOffsetWarningsAreFatalHbooleanPrint unsafe operation offset warnings.).
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.
UseContainerSupportHbooleanEnable detection and runtime container configuration support.
UseDedicatedVMOperationThreadHbooleanDetermines if VM operations should be executed in a dedicated thread.
UseEncodedGraphsHbooleanEncode and decode snippets and substitutions before parsing to test libgraal code path. This option is ignored in the context of libgraal.
UseEpsilonGCHbooleanUse a no-op GC.
UseExceptionProbabilityHboolean
UseGraalStubsHbooleanUse Graal-generated stubs for complicated LIR operations instead of embedding all the emitted code.
UseLibCHstringNoneSelects the libc implementation to use. Available implementations: glibc, musl, bionic.
UseLoomHbooleanBuild with Loom JDK.
UseLoopLimitChecksHboolean
UseNullRegionHbooleanDetermines if a null region is present between the heap base and the image heap.
UseReferenceHandlerThreadHbooleanPopulate reference queues in a separate thread rather than after a garbage collection.
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.
UseTrappingNullChecksHbooleanUse traps for null checks instead of explicit null-checks.
UseTypeCheckHintsHboolean
VerifyHstringNonePattern for specifying scopes in which logging is enabled. See the Dump option for the pattern syntax.
VerifyBalancedMonitorsHbooleanEmit extra code to dynamically check monitor operations are balanced.
VerifyDeoptimizationEntryPointsHbooleanVerify that all possible deoptimization entry points have been properly compiled and registered in the metadata.
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.
VerifyNamingConventionsHbooleanVerify naming conventions during image construction.
VerifyPhasesHboolean
VerifyReferencesHbooleanVerify all object references if VerifyHeap is enabled.
VerifyRememberedSetHbooleanVerify the remembered set if VerifyHeap is enabled.
VerifyWriteBarriersHbooleanVerify write barriers.
ZapChunksHbooleanFill unused memory chunks with a sentinel value.
ZapConsumedHeapChunksHbooleanAfter use, Fill memory chunks with a sentinel value.
ZapProducedHeapChunksHbooleanBefore use, fill memory chunks with a sentinel value.
ZapStackOnMethodEntryHboolean
AOTInliningDepthToSizeRateRdouble2.5
AOTInliningSizeMaximumRlong300
AOTInliningSizeMinimumRlong50
AOTVerifyOopsRbooleanGenerate verify oop checks in AOT code.
ASMInstructionProfilingRstringNoneEnables instruction profiling on assembler level. Valid values are a comma separated list of supported instructions. Compare with subclasses of Assembler.InstructionCounter.
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
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.
AnalysisStatisticsFileRstringNoneAnalysis results statistics file.
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:.
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).
CanOmitFrameRboolean
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.
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.
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.
CompilationExpirationPeriodRlong300Time 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).
CompilationWatchDogStackTraceIntervalRdouble60Interval in seconds between a watch dog reporting stack traces for long running compilations.
CompilationWatchDogStartDelayRdouble0Delay in seconds before watch dog monitoring a compilation (0 disables monitoring).
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).
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.
ConditionalEliminationRboolean
ConditionalEliminationMaxIterationsRlong4
CountRstringNonePattern for specifying scopes in which counters are enabled. See the Dump option for the pattern syntax. An empty value enables all counters unconditionally.
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.
DebugStubsAndSnippetsRbooleanEnable debug output for stub code generation and snippet preparation.
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.
DiagnoseDumpLevelRlong3Specify the DumpLevel 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.
DivertParameterReturningMethodRbooleanAnalysis: Detect methods that return one of their parameters and hardwire the parameter straight to the return.
DumpRstringNoneFilter pattern for specifying scopes in which dumping is enabled.
DumpAfterEveryBCIRbooleanDump the current graph after every bci to IGV.
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.
DuplicateIrreducibleLoopsRbooleanWhen enabled, some limited amount of duplication will be performed in order compile code containing irreducible loops.
DynamicCountersPrintGroupSeparatorRbooleanUse grouping separators for number printing.
EagerSnippetsRbooleanEagerly construct extra snippet info.
EmitStringSubstitutionsRbooleanEmit substitutions for String methods.
EscapeAnalysisIterationsRlong2
EscapeAnalysisLoopCutoffRlong20
EscapeAnalyzeOnlyRstringNone
ExactFullUnrollMaxNodesRlong800
ExactPartialUnrollMaxNodesRlong200
ExhaustiveHeapScanRbooleanScan all objects reachable from roots for analysis. By default false.
ExitVMOnExceptionRbooleanAlias for CompilationFailureActionExitVM.
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][,...]].
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.
FullUnrollRboolean
FullUnrollConstantCompareBoostRlong15
FullUnrollMaxApplicationRlong60
FullUnrollMaxIterationsRlong600
FullUnrollMaxNodesRlong400
GCDebugStartCycleRlong-1Start tracing compiled GC barriers after N garbage collections (disabled if N < 0).
GenLoopSafepointsRboolean
GeneratePICRbooleanGenerate position independent code.
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.
GuardPrioritiesRboolean
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.
ImageBuildStatisticsFileRstringNoneFile for printing image build statistics.
ImageObjectTreeExpandRootsRstringOverride the default suppression of specified roots. See: Reports.md.
ImageObjectTreeExpandTypesRstringOverride the default suppression of specified types. See: Reports.md.
ImageObjectTreeSuppressRootsRstringSuppress the expansion of specified roots. See: Reports.md.
ImageObjectTreeSuppressTypesRstringSuppress the expansion of specified types. See: Reports.md.
ImmutableCodeRbooleanTry to avoid emitting code where patching is required.
InlineRbooleanEnable inlining.
InlineBeforeAnalysisRbooleanInline methods before static analysis.
InlineDuringParsingRbooleanInlines trivial methods during bytecode parsing.
InlineDuringParsingMaxDepthRlong10Maximum depth when inlining during bytecode parsing.
InlineEverythingRboolean
InlineIntrinsicsDuringParsingRbooleanInlines intrinsic methods during bytecode parsing.
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
InliningDepthErrorRlong1000Maximum inlining depth during partial evaluation before reporting an infinite recursion.
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.
LIRDynMoveProfileMethodRbooleanEnable dynamic move profiling per method.
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 optimiztations.
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.
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.
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.
LoopHeaderAlignmentRlong16Alignment in bytes for loop header blocks.
LoopMaxUnswitchRlong3
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.
LoopUnswitchRboolean
LoopUnswitchFrequencyBoostRdouble10
LoopUnswitchMaxIncreaseRlong500
LoopUnswitchTrivialRlong10
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.
MaxConstantObjectsPerTypeRlong100The maximum number of constant objects recorded for each type before merging the constants into one unique constant object per type. The analysis must be heap sensitive. It has a minimum value of 1.
MaxDirectMemorySizeRlong0Maximum total size of NIO direct-buffer allocations.
MaxDuplicationFactorRdouble2How much duplication can happen because of irreducible loops before bailing out.
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).
MaxHeapSizeRlong0The maximum heap size at run-time, in bytes.
MaxJavaStackTraceDepthRlong1024The maximum number of lines in the stack trace for Java exceptions (0 means all).
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.
MaxTemplatesPerSnippetRlong50
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.
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.
MaximumYoungGenerationSizePercentRlong10The maximum size of the young generation as a percentage of the maximum heap size.
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.
MinCallingContextDepthRlong0The minimum length of the methods context chains.
MinHeapContextDepthRlong0The minimum length of the context used to model a heap object in addition to the allocation site; used only when ContextSensitiveHeap is enabled.
MinHeapSizeRlong0The minimum heap size at run-time, in bytes.
MinimalBulkZeroingSizeRlong2048If applicable, use bulk zeroing instructions when the zeroing size in bytes exceeds this threshold.
MinimumPeelFrequencyRdouble0.35
MoveGuardsUpwardsRbooleanMove guard nodes to earlier places in the dominator tree if all successors of basic block share a common guard condition.
NDCVRlong0Run level for NoDeadCodeVerifyHandler (0 off, 1 info, 2 verbose, 3 fatal).
NodeCountersRbooleanCounts the number of instances of each node class.
NonFatalIdenticalCompilationSnapshotsRlong20Number of contiguous identical compiler thread stack traces allowed before the VM exits on the basis of a stuck compilation.
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.
OmitHotExceptionStacktraceRboolean
OptAssumptionsRboolean
OptConvertDeoptsToGuardsRboolean
OptDeoptimizationGroupingRboolean
OptDevirtualizeInvokesOptimisticallyRboolean
OptEarlyReadEliminationRboolean
OptEliminateGuardsRboolean
OptFloatingReadsRboolean
OptImplicitNullChecksRboolean
OptReadEliminationRboolean
OptScheduleOutOfLoopsRboolean
PartialEscapeAnalysisRboolean
PartialUnrollRboolean
PeelALotRboolean
PercentTimeInIncrementalCollectionRlong50Percentage of total collection time that should be spent on young generation collections.
PreferContainerQuotaForCPUCountRbooleanCalculate the container CPU availability based on the value of quotas (if set), when true. Otherwise, use the CPU shares value, provided it is less than quota.
PrintAnalysisCallTreeRbooleanPrint analysis call tree, a breadth-first tree reduction of the call graph.
PrintAnalysisStatisticsRbooleanPrint analysis results statistics.
PrintBackendCFGRbooleanEnable dumping LIR, register allocation and code generation info to the C1Visualizer.
PrintBlockMappingRbooleanEnable dumping CFG built during initial BciBlockMapping.
PrintCFGRbooleanEnable dumping to the C1Visualizer. Enabling this option implies PrintBackendCFG.
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.
PrintGCTimeStampsRbooleanPrint a time stamp at each collection, if +PrintGC or +VerboseGC.
PrintGCTimesRbooleanPrint the time for each of the phases of each collection, if +VerboseGC.
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.
PrintGraphWithScheduleRbooleanSchedule graphs as they are dumped.
PrintHeapShapeRbooleanPrint the shape of the heap before and after each collection, if +VerboseGC.
PrintIRWithLIRRbooleanPrint HIR along side LIR as the latter is generated.
PrintImageObjectTreeRbooleanPrint image object hierarchy.
PrintLIRWithAssemblyRbooleanInclude the LIR as comments with the final assembly.
PrintPointsToStatisticsRbooleanReport analysis statistics.
PrintProfilingInformationRbooleanPrint profiling information when parsing a method's bytecode.
PrintSynchronizedAnalysisRbooleanPrint types used for Java synchronization.
ProbabilisticProfilingRbooleanControl probabilistic profiling on AMD64.
ProfileAllocationsRbooleanEnable profiling of allocation sites.
ProfileAllocationsContextRstringAllocatingMethodControl the naming and granularity of the counters when using ProfileAllocations.
ProfileAnalysisOperationsRbooleanTrack the progress of the static analysis.
ProfileBackedgesRbooleanEmit profiling of backedges.
ProfileCompiledMethodsRboolean
ProfileConstantObjectsRbooleanTrack the creation of constant objects.
ProfileInvokesRbooleanEmit profiling of invokes.
ProfileMonitorsRbooleanEnable profiling of monitor operations.
ProfileSimpleMethodsRbooleanProfile simple methods.
RawConditionalEliminationRboolean
ReadEliminationMaxLoopVisitsRlong5
ReassociateExpressionsRbooleanRe-associate loop invariants and constants.
ReduceDCERbooleanDisable optional dead code eliminations.
RegisterPressureRstringNoneComma separated list of registers that register allocation is limited to.
RelaxTypeFlowStateConstraintsRbooleanAllow a type flow state to contain types not compatible with its declared type.
RemoveNeverExecutedCodeRboolean
RemoveSaturatedTypeFlowsRbooleanEnable the type flow saturation analysis performance optimization.
ReplaceInputsWithConstantsBasedOnStampsRboolean
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.
ScanObjectsParallelRbooleanObject scanning in parallel.
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.
SimpleFastInflatedLockingRbooleanHandle simple cases for inflated monitors in the fast-path.
SimpleMethodCallsRlong1Maximum number of calls in a simple method.
SimpleMethodGraphSizeRlong256Maximum number of nodes in a graph for a simple method.
SimpleMethodIndirectCallsRlong0Maximum number of indirect calls in a simple moethod.
SmallCompiledLowLevelGraphSizeRlong330If the previous low-level graph size of the method exceeds the threshold, it is not inlined.
SnippetCountersRbooleanEnable counters for various paths in snippets.
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.
SpeculativeGuardMovementRbooleanMove loop invariant guards (e.g., array bounds checks) out of loops.
StackSizeRlong0The size of each thread stack at run-time, in bytes.
StartFlightRecordingRstringStart flight recording with options.
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.
StringIndexOfLimitRlong4096String.indexOf invocations will be evaluated at compile time if the receiver is a constant and its length is lower than this value.
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.
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.
TierABackedgeNotifyFreqLogRlong16Backedge notification frequency.
TierABackedgeProfileProbabilityLogRlong12Backedge profile probability.
TierAInvokeInlineeNotifyFreqLogRlong-1Inlinee invocation notification frequency (-1 means count, but do not notify).
TierAInvokeNotifyFreqLogRlong13Invocation notification frequency.
TierAInvokeProfileProbabilityLogRlong8Invocation profile probability.
TieredAOTRbooleanDo profiling and callbacks to tiered runtime.
TimeRstringNonePattern for specifying scopes in which timing is enabled. See the Dump option for the pattern syntax. An empty value enables all timers unconditionally.
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.
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.
TraceEscapeAnalysisRboolean
TraceExceptionHandlerStubRbooleanTrace execution of stub used to handle an exception thrown by a callee.
TraceHeapChunksRbooleanTrace heap chunks during collections, if +VerboseGC and +PrintHeapShape.
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.
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.
TrivialInliningSizeRlong10Graphs with less than this number of nodes are trivial and therefore always inlined.
TruffleCompilerConfigurationRstringNoneSelect a compiler configuration for Truffle compilation (default: use Graal system compiler configuration).
TrustFinalDefaultFieldsRbooleanDetermines whether to treat final fields with default values as constant.
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.
TypeFlowSaturationCutoffRlong20The maximum number of types recorded in a type flow. -1 indicates no limitation.
UnresolvedIsErrorRbooleanReport unresolved elements as errors.
UnrollMaxIterationsRlong16
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.
UseEncodedGraphsRbooleanEncode and decode snippets and substitutions before parsing to test libgraal code path. This option is ignored in the context of libgraal.
UseExceptionProbabilityRboolean
UseGraalStubsRbooleanUse Graal-generated stubs for complicated LIR operations instead of embedding all the emitted code.
UseLoopLimitChecksRboolean
UseSnippetGraphCacheRbooleanUse a cache for snippet graphs.
UseSnippetTemplateCacheRbooleanUse a LRU cache for snippet templates.
UseTrappingNullChecksRbooleanUse traps for null checks instead of explicit null-checks.
UseTypeCheckHintsRboolean
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.
VerifyBalancedMonitorsRbooleanEmit extra code to dynamically check monitor operations are balanced.
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.
VerifyPhasesRboolean
WriteableCodeCacheRbooleanAllocate code cache with write access, allowing inlining of objects.
ZapStackOnMethodEntryRboolean