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