786 product(bool, UseFastJNIAccessors, true, \
787 "Use optimized versions of Get<Primitive>Field") \
788 \
789 product(intx, MaxJNILocalCapacity, 65536, \
790 "Maximum allowable local JNI handle capacity to " \
791 "EnsureLocalCapacity() and PushLocalFrame(), " \
792 "where <= 0 is unlimited, default: 65536") \
793 range(min_intx, max_intx) \
794 \
795 product(bool, EagerXrunInit, false, \
796 "Eagerly initialize -Xrun libraries; allows startup profiling, " \
797 "but not all -Xrun libraries may support the state of the VM " \
798 "at this time") \
799 \
800 develop(uintx, PreallocatedOutOfMemoryErrorCount, 4, \
801 "Number of OutOfMemoryErrors preallocated with backtrace") \
802 \
803 product(bool, UseXMMForArrayCopy, false, \
804 "Use SSE2 MOVQ instruction for Arraycopy") \
805 \
806 develop(bool, PrintFieldLayout, false, \
807 "Print field layout for each class") \
808 \
809 /* Need to limit the extent of the padding to reasonable size. */\
810 /* 8K is well beyond the reasonable HW cache line size, even with */\
811 /* aggressive prefetching, while still leaving the room for segregating */\
812 /* among the distinct pages. */\
813 product(int, ContendedPaddingWidth, 128, \
814 "How many bytes to pad the fields/classes marked @Contended with")\
815 range(0, 8192) \
816 constraint(ContendedPaddingWidthConstraintFunc,AfterErgo) \
817 \
818 product(bool, EnableContended, true, \
819 "Enable @Contended annotation support") \
820 \
821 product(bool, RestrictContended, true, \
822 "Restrict @Contended to trusted classes") \
823 \
824 product(int, DiagnoseSyncOnValueBasedClasses, 0, DIAGNOSTIC, \
825 "Detect and take action upon identifying synchronization on " \
826 "value based classes. Modes: " \
827 "0: off; " \
828 "1: exit with fatal error; " \
1755 "Create JMX Management Server") \
1756 \
1757 product(bool, DisableAttachMechanism, false, \
1758 "Disable mechanism that allows tools to attach to this VM") \
1759 \
1760 product(bool, StartAttachListener, false, \
1761 "Always start Attach Listener at VM startup") \
1762 \
1763 product(bool, EnableDynamicAgentLoading, true, \
1764 "Allow tools to load agents with the attach mechanism") \
1765 \
1766 product(bool, PrintConcurrentLocks, false, MANAGEABLE, \
1767 "Print java.util.concurrent locks in thread dump") \
1768 \
1769 product(bool, PrintMethodHandleStubs, false, DIAGNOSTIC, \
1770 "Print generated stub code for method handles") \
1771 \
1772 product(bool, VerifyMethodHandles, trueInDebug, DIAGNOSTIC, \
1773 "perform extra checks when constructing method handles") \
1774 \
1775 product(bool, ShowHiddenFrames, false, DIAGNOSTIC, \
1776 "show method handle implementation frames (usually hidden)") \
1777 \
1778 product(bool, ShowCarrierFrames, false, DIAGNOSTIC, \
1779 "show virtual threads' carrier frames in exceptions") \
1780 \
1781 product(bool, TrustFinalNonStaticFields, false, EXPERIMENTAL, \
1782 "trust final non-static declarations for constant folding") \
1783 \
1784 product(bool, FoldStableValues, true, DIAGNOSTIC, \
1785 "Optimize loads from stable fields (marked w/ @Stable)") \
1786 \
1787 product(int, UseBootstrapCallInfo, 1, DIAGNOSTIC, \
1788 "0: when resolving InDy or ConDy, force all BSM arguments to be " \
1789 "resolved before the bootstrap method is called; 1: when a BSM " \
1790 "that may accept a BootstrapCallInfo is detected, use that API " \
1791 "to pass BSM arguments, which allows the BSM to delay their " \
1792 "resolution; 2+: stress test the BCI API by calling more BSMs " \
1793 "via that API, instead of with the eagerly-resolved array.") \
1794 \
1926 "On internal errors, include registers in error report.") \
1927 \
1928 product(bool, UseSwitchProfiling, true, DIAGNOSTIC, \
1929 "leverage profiling for table/lookup switch") \
1930 \
1931 develop(bool, TraceMemoryWriteback, false, \
1932 "Trace memory writeback operations") \
1933 \
1934 JFR_ONLY(product(bool, FlightRecorder, false, \
1935 "(Deprecated) Enable Flight Recorder")) \
1936 \
1937 JFR_ONLY(product(ccstr, FlightRecorderOptions, nullptr, \
1938 "Flight Recorder options")) \
1939 \
1940 JFR_ONLY(product(ccstr, StartFlightRecording, nullptr, \
1941 "Start flight recording with options")) \
1942 \
1943 product(bool, UseFastUnorderedTimeStamps, false, EXPERIMENTAL, \
1944 "Use platform unstable time where supported for timestamps only") \
1945 \
1946 product(bool, DeoptimizeNMethodBarriersALot, false, DIAGNOSTIC, \
1947 "Make nmethod barriers deoptimise a lot.") \
1948 \
1949 develop(bool, VerifyCrossModifyFence, \
1950 false AARCH64_ONLY(DEBUG_ONLY(||true)), \
1951 "Mark all threads after a safepoint, and clear on a modify " \
1952 "fence. Add cleanliness checks.") \
1953 \
1954 product(int, LockingMode, LM_LIGHTWEIGHT, \
1955 "(Deprecated) Select locking mode: " \
1956 "0: (Deprecated) monitors only (LM_MONITOR), " \
1957 "1: (Deprecated) monitors & legacy stack-locking (LM_LEGACY), " \
1958 "2: monitors & new lightweight locking (LM_LIGHTWEIGHT, default)") \
1959 range(0, 2) \
1960 \
1961 product(bool, UseObjectMonitorTable, false, DIAGNOSTIC, \
1962 "With Lightweight Locking mode, use a table to record inflated " \
1963 "monitors rather than the first word of the object.") \
1964 \
1965 product(int, LightweightFastLockingSpins, 13, DIAGNOSTIC, \
|
786 product(bool, UseFastJNIAccessors, true, \
787 "Use optimized versions of Get<Primitive>Field") \
788 \
789 product(intx, MaxJNILocalCapacity, 65536, \
790 "Maximum allowable local JNI handle capacity to " \
791 "EnsureLocalCapacity() and PushLocalFrame(), " \
792 "where <= 0 is unlimited, default: 65536") \
793 range(min_intx, max_intx) \
794 \
795 product(bool, EagerXrunInit, false, \
796 "Eagerly initialize -Xrun libraries; allows startup profiling, " \
797 "but not all -Xrun libraries may support the state of the VM " \
798 "at this time") \
799 \
800 develop(uintx, PreallocatedOutOfMemoryErrorCount, 4, \
801 "Number of OutOfMemoryErrors preallocated with backtrace") \
802 \
803 product(bool, UseXMMForArrayCopy, false, \
804 "Use SSE2 MOVQ instruction for Arraycopy") \
805 \
806 product(bool, PrintFieldLayout, false, DIAGNOSTIC, \
807 "Print field layout for each class") \
808 \
809 product(bool, PrintInlineLayout, false, DIAGNOSTIC, \
810 "Print field layout for each inline type or class with inline fields") \
811 \
812 product(bool, PrintFlatArrayLayout, false, DIAGNOSTIC, \
813 "Print array layout for each inline type array") \
814 \
815 product(bool, UseArrayFlattening, true, \
816 "Allow the VM to flatten arrays") \
817 \
818 product(bool, UseFieldFlattening, true, \
819 "Allow the VM to flatten value fields") \
820 \
821 product(bool, UseNonAtomicValueFlattening, true, \
822 "Allow the JVM to flatten some non-atomic null-free values") \
823 \
824 product(bool, UseNullableValueFlattening, false, \
825 "Allow the JVM to flatten some nullable values") \
826 \
827 product(bool, UseAtomicValueFlattening, false, \
828 "Allow the JVM to flatten some atomic values") \
829 \
830 product(intx, FlatArrayElementMaxOops, 4, \
831 "Max nof embedded object references in an inline type to flatten, <0 no limit") \
832 \
833 /* Need to limit the extent of the padding to reasonable size. */\
834 /* 8K is well beyond the reasonable HW cache line size, even with */\
835 /* aggressive prefetching, while still leaving the room for segregating */\
836 /* among the distinct pages. */\
837 product(int, ContendedPaddingWidth, 128, \
838 "How many bytes to pad the fields/classes marked @Contended with")\
839 range(0, 8192) \
840 constraint(ContendedPaddingWidthConstraintFunc,AfterErgo) \
841 \
842 product(bool, EnableContended, true, \
843 "Enable @Contended annotation support") \
844 \
845 product(bool, RestrictContended, true, \
846 "Restrict @Contended to trusted classes") \
847 \
848 product(int, DiagnoseSyncOnValueBasedClasses, 0, DIAGNOSTIC, \
849 "Detect and take action upon identifying synchronization on " \
850 "value based classes. Modes: " \
851 "0: off; " \
852 "1: exit with fatal error; " \
1779 "Create JMX Management Server") \
1780 \
1781 product(bool, DisableAttachMechanism, false, \
1782 "Disable mechanism that allows tools to attach to this VM") \
1783 \
1784 product(bool, StartAttachListener, false, \
1785 "Always start Attach Listener at VM startup") \
1786 \
1787 product(bool, EnableDynamicAgentLoading, true, \
1788 "Allow tools to load agents with the attach mechanism") \
1789 \
1790 product(bool, PrintConcurrentLocks, false, MANAGEABLE, \
1791 "Print java.util.concurrent locks in thread dump") \
1792 \
1793 product(bool, PrintMethodHandleStubs, false, DIAGNOSTIC, \
1794 "Print generated stub code for method handles") \
1795 \
1796 product(bool, VerifyMethodHandles, trueInDebug, DIAGNOSTIC, \
1797 "perform extra checks when constructing method handles") \
1798 \
1799 product(bool, IgnoreAssertUnsetFields, false, DIAGNOSTIC, \
1800 "Ignore assert_unset_fields") \
1801 \
1802 product(bool, ShowHiddenFrames, false, DIAGNOSTIC, \
1803 "show method handle implementation frames (usually hidden)") \
1804 \
1805 product(bool, ShowCarrierFrames, false, DIAGNOSTIC, \
1806 "show virtual threads' carrier frames in exceptions") \
1807 \
1808 product(bool, TrustFinalNonStaticFields, false, EXPERIMENTAL, \
1809 "trust final non-static declarations for constant folding") \
1810 \
1811 product(bool, FoldStableValues, true, DIAGNOSTIC, \
1812 "Optimize loads from stable fields (marked w/ @Stable)") \
1813 \
1814 product(int, UseBootstrapCallInfo, 1, DIAGNOSTIC, \
1815 "0: when resolving InDy or ConDy, force all BSM arguments to be " \
1816 "resolved before the bootstrap method is called; 1: when a BSM " \
1817 "that may accept a BootstrapCallInfo is detected, use that API " \
1818 "to pass BSM arguments, which allows the BSM to delay their " \
1819 "resolution; 2+: stress test the BCI API by calling more BSMs " \
1820 "via that API, instead of with the eagerly-resolved array.") \
1821 \
1953 "On internal errors, include registers in error report.") \
1954 \
1955 product(bool, UseSwitchProfiling, true, DIAGNOSTIC, \
1956 "leverage profiling for table/lookup switch") \
1957 \
1958 develop(bool, TraceMemoryWriteback, false, \
1959 "Trace memory writeback operations") \
1960 \
1961 JFR_ONLY(product(bool, FlightRecorder, false, \
1962 "(Deprecated) Enable Flight Recorder")) \
1963 \
1964 JFR_ONLY(product(ccstr, FlightRecorderOptions, nullptr, \
1965 "Flight Recorder options")) \
1966 \
1967 JFR_ONLY(product(ccstr, StartFlightRecording, nullptr, \
1968 "Start flight recording with options")) \
1969 \
1970 product(bool, UseFastUnorderedTimeStamps, false, EXPERIMENTAL, \
1971 "Use platform unstable time where supported for timestamps only") \
1972 \
1973 product(bool, EnableValhalla, true, \
1974 "Enable experimental Valhalla features") \
1975 \
1976 product_pd(bool, InlineTypePassFieldsAsArgs, \
1977 "Pass each inline type field as an argument at calls") \
1978 \
1979 product_pd(bool, InlineTypeReturnedAsFields, \
1980 "Return fields instead of an inline type reference") \
1981 \
1982 develop(bool, StressCallingConvention, false, \
1983 "Stress the scalarized calling convention.") \
1984 \
1985 product(ccstrlist, ForceNonTearable, "", DIAGNOSTIC, \
1986 "List of inline classes which are forced to be atomic " \
1987 "(whitespace and commas separate names, " \
1988 "and leading and trailing stars '*' are wildcards)") \
1989 \
1990 product(bool, DeoptimizeNMethodBarriersALot, false, DIAGNOSTIC, \
1991 "Make nmethod barriers deoptimise a lot.") \
1992 \
1993 develop(bool, VerifyCrossModifyFence, \
1994 false AARCH64_ONLY(DEBUG_ONLY(||true)), \
1995 "Mark all threads after a safepoint, and clear on a modify " \
1996 "fence. Add cleanliness checks.") \
1997 \
1998 product(int, LockingMode, LM_LIGHTWEIGHT, \
1999 "(Deprecated) Select locking mode: " \
2000 "0: (Deprecated) monitors only (LM_MONITOR), " \
2001 "1: (Deprecated) monitors & legacy stack-locking (LM_LEGACY), " \
2002 "2: monitors & new lightweight locking (LM_LIGHTWEIGHT, default)") \
2003 range(0, 2) \
2004 \
2005 product(bool, UseObjectMonitorTable, false, DIAGNOSTIC, \
2006 "With Lightweight Locking mode, use a table to record inflated " \
2007 "monitors rather than the first word of the object.") \
2008 \
2009 product(int, LightweightFastLockingSpins, 13, DIAGNOSTIC, \
|