796 product(bool, UseFastJNIAccessors, true, \
797 "Use optimized versions of Get<Primitive>Field") \
798 \
799 product(intx, MaxJNILocalCapacity, 65536, \
800 "Maximum allowable local JNI handle capacity to " \
801 "EnsureLocalCapacity() and PushLocalFrame(), " \
802 "where <= 0 is unlimited, default: 65536") \
803 range(min_intx, max_intx) \
804 \
805 product(bool, EagerXrunInit, false, \
806 "Eagerly initialize -Xrun libraries; allows startup profiling, " \
807 "but not all -Xrun libraries may support the state of the VM " \
808 "at this time") \
809 \
810 develop(uintx, PreallocatedOutOfMemoryErrorCount, 4, \
811 "Number of OutOfMemoryErrors preallocated with backtrace") \
812 \
813 product(bool, UseXMMForArrayCopy, false, \
814 "Use SSE2 MOVQ instruction for Arraycopy") \
815 \
816 develop(bool, PrintFieldLayout, false, \
817 "Print field layout for each class") \
818 \
819 /* Need to limit the extent of the padding to reasonable size. */\
820 /* 8K is well beyond the reasonable HW cache line size, even with */\
821 /* aggressive prefetching, while still leaving the room for segregating */\
822 /* among the distinct pages. */\
823 product(int, ContendedPaddingWidth, 128, \
824 "How many bytes to pad the fields/classes marked @Contended with")\
825 range(0, 8192) \
826 constraint(ContendedPaddingWidthConstraintFunc,AfterErgo) \
827 \
828 product(bool, EnableContended, true, \
829 "Enable @Contended annotation support") \
830 \
831 product(bool, RestrictContended, true, \
832 "Restrict @Contended to trusted classes") \
833 \
834 product(int, DiagnoseSyncOnValueBasedClasses, 0, DIAGNOSTIC, \
835 "Detect and take action upon identifying synchronization on " \
836 "value based classes. Modes: " \
837 "0: off; " \
838 "1: exit with fatal error; " \
1759 "Create JMX Management Server") \
1760 \
1761 product(bool, DisableAttachMechanism, false, \
1762 "Disable mechanism that allows tools to attach to this VM") \
1763 \
1764 product(bool, StartAttachListener, false, \
1765 "Always start Attach Listener at VM startup") \
1766 \
1767 product(bool, EnableDynamicAgentLoading, true, \
1768 "Allow tools to load agents with the attach mechanism") \
1769 \
1770 product(bool, PrintConcurrentLocks, false, MANAGEABLE, \
1771 "Print java.util.concurrent locks in thread dump") \
1772 \
1773 product(bool, PrintMethodHandleStubs, false, DIAGNOSTIC, \
1774 "Print generated stub code for method handles") \
1775 \
1776 product(bool, VerifyMethodHandles, trueInDebug, DIAGNOSTIC, \
1777 "perform extra checks when constructing method handles") \
1778 \
1779 product(bool, ShowHiddenFrames, false, DIAGNOSTIC, \
1780 "show method handle implementation frames (usually hidden)") \
1781 \
1782 product(bool, ShowCarrierFrames, false, DIAGNOSTIC, \
1783 "show virtual threads' carrier frames in exceptions") \
1784 \
1785 product(bool, TrustFinalNonStaticFields, false, EXPERIMENTAL, \
1786 "trust final non-static declarations for constant folding") \
1787 \
1788 product(bool, FoldStableValues, true, DIAGNOSTIC, \
1789 "Optimize loads from stable fields (marked w/ @Stable)") \
1790 \
1791 product(int, UseBootstrapCallInfo, 1, DIAGNOSTIC, \
1792 "0: when resolving InDy or ConDy, force all BSM arguments to be " \
1793 "resolved before the bootstrap method is called; 1: when a BSM " \
1794 "that may accept a BootstrapCallInfo is detected, use that API " \
1795 "to pass BSM arguments, which allows the BSM to delay their " \
1796 "resolution; 2+: stress test the BCI API by calling more BSMs " \
1797 "via that API, instead of with the eagerly-resolved array.") \
1798 \
1930 "On internal errors, include registers in error report.") \
1931 \
1932 product(bool, UseSwitchProfiling, true, DIAGNOSTIC, \
1933 "leverage profiling for table/lookup switch") \
1934 \
1935 develop(bool, TraceMemoryWriteback, false, \
1936 "Trace memory writeback operations") \
1937 \
1938 JFR_ONLY(product(bool, FlightRecorder, false, \
1939 "(Deprecated) Enable Flight Recorder")) \
1940 \
1941 JFR_ONLY(product(ccstr, FlightRecorderOptions, nullptr, \
1942 "Flight Recorder options")) \
1943 \
1944 JFR_ONLY(product(ccstr, StartFlightRecording, nullptr, \
1945 "Start flight recording with options")) \
1946 \
1947 product(bool, UseFastUnorderedTimeStamps, false, EXPERIMENTAL, \
1948 "Use platform unstable time where supported for timestamps only") \
1949 \
1950 product(bool, DeoptimizeNMethodBarriersALot, false, DIAGNOSTIC, \
1951 "Make nmethod barriers deoptimise a lot.") \
1952 \
1953 develop(bool, VerifyCrossModifyFence, \
1954 false AARCH64_ONLY(DEBUG_ONLY(||true)), \
1955 "Mark all threads after a safepoint, and clear on a modify " \
1956 "fence. Add cleanliness checks.") \
1957 \
1958 product(bool, UseObjectMonitorTable, false, DIAGNOSTIC, \
1959 "Use a table to record inflated monitors rather than the first " \
1960 "word of the object.") \
1961 \
1962 product(int, FastLockingSpins, 13, DIAGNOSTIC, \
1963 "Specifies the number of times fast locking will attempt to " \
1964 "CAS the markWord before inflating. Between each CAS it will " \
1965 "spin for exponentially more time, resulting in a total number " \
1966 "of spins on the order of O(2^value)") \
1967 range(1, 30) \
1968 \
1969 product(uint, TrimNativeHeapInterval, 0, \
1988 product(bool, UseSecondarySupersCache, true, DIAGNOSTIC, \
1989 "Use secondary supers cache during subtype checks.") \
1990 \
1991 product(bool, UseSecondarySupersTable, false, DIAGNOSTIC, \
1992 "Use hash table to lookup secondary supers.") \
1993 \
1994 product(bool, VerifySecondarySupers, false, DIAGNOSTIC, \
1995 "Check that linear and hashed secondary lookups return the same result.") \
1996 \
1997 product(bool, StressSecondarySupers, false, DIAGNOSTIC, \
1998 "Use a terrible hash function in order to generate many collisions.") \
1999 \
2000 product(bool, UseThreadsLockThrottleLock, true, DIAGNOSTIC, \
2001 "Use an extra lock during Thread start and exit to alleviate" \
2002 "contention on Threads_lock.") \
2003 \
2004 develop(uint, BinarySearchThreshold, 16, \
2005 "Minimal number of elements in a sorted collection to prefer" \
2006 "binary search over simple linear search." ) \
2007 \
2008
2009 // end of RUNTIME_FLAGS
2010
2011 DECLARE_FLAGS(LP64_RUNTIME_FLAGS)
2012 DECLARE_ARCH_FLAGS(ARCH_FLAGS)
2013 DECLARE_FLAGS(RUNTIME_FLAGS)
2014 DECLARE_FLAGS(RUNTIME_OS_FLAGS)
2015
2016 #endif // SHARE_RUNTIME_GLOBALS_HPP
|
796 product(bool, UseFastJNIAccessors, true, \
797 "Use optimized versions of Get<Primitive>Field") \
798 \
799 product(intx, MaxJNILocalCapacity, 65536, \
800 "Maximum allowable local JNI handle capacity to " \
801 "EnsureLocalCapacity() and PushLocalFrame(), " \
802 "where <= 0 is unlimited, default: 65536") \
803 range(min_intx, max_intx) \
804 \
805 product(bool, EagerXrunInit, false, \
806 "Eagerly initialize -Xrun libraries; allows startup profiling, " \
807 "but not all -Xrun libraries may support the state of the VM " \
808 "at this time") \
809 \
810 develop(uintx, PreallocatedOutOfMemoryErrorCount, 4, \
811 "Number of OutOfMemoryErrors preallocated with backtrace") \
812 \
813 product(bool, UseXMMForArrayCopy, false, \
814 "Use SSE2 MOVQ instruction for Arraycopy") \
815 \
816 product(bool, PrintFieldLayout, false, DIAGNOSTIC, \
817 "Print field layout for each class") \
818 \
819 product(bool, PrintInlineLayout, false, DIAGNOSTIC, \
820 "Print field layout for each inline type or class with inline fields") \
821 \
822 product(bool, PrintFlatArrayLayout, false, DIAGNOSTIC, \
823 "Print array layout for each inline type array") \
824 \
825 product(bool, UseArrayFlattening, true, \
826 "Allow the VM to flatten arrays") \
827 \
828 product(bool, UseFieldFlattening, true, \
829 "Allow the VM to flatten value fields") \
830 \
831 product(bool, UseNonAtomicValueFlattening, true, \
832 "Allow the JVM to flatten some non-atomic null-free values") \
833 \
834 product(bool, UseNullableValueFlattening, true, \
835 "Allow the JVM to flatten some nullable values") \
836 \
837 product(bool, UseAtomicValueFlattening, true, \
838 "Allow the JVM to flatten some atomic values") \
839 \
840 product(intx, FlatArrayElementMaxOops, 4, \
841 "Max nof embedded object references in an inline type to flatten, <0 no limit") \
842 \
843 develop(ccstrlist, PrintInlineKlassFields, "", \
844 "Print fields collected by InlineKlass::collect_fields") \
845 \
846 /* Need to limit the extent of the padding to reasonable size. */\
847 /* 8K is well beyond the reasonable HW cache line size, even with */\
848 /* aggressive prefetching, while still leaving the room for segregating */\
849 /* among the distinct pages. */\
850 product(int, ContendedPaddingWidth, 128, \
851 "How many bytes to pad the fields/classes marked @Contended with")\
852 range(0, 8192) \
853 constraint(ContendedPaddingWidthConstraintFunc,AfterErgo) \
854 \
855 product(bool, EnableContended, true, \
856 "Enable @Contended annotation support") \
857 \
858 product(bool, RestrictContended, true, \
859 "Restrict @Contended to trusted classes") \
860 \
861 product(int, DiagnoseSyncOnValueBasedClasses, 0, DIAGNOSTIC, \
862 "Detect and take action upon identifying synchronization on " \
863 "value based classes. Modes: " \
864 "0: off; " \
865 "1: exit with fatal error; " \
1786 "Create JMX Management Server") \
1787 \
1788 product(bool, DisableAttachMechanism, false, \
1789 "Disable mechanism that allows tools to attach to this VM") \
1790 \
1791 product(bool, StartAttachListener, false, \
1792 "Always start Attach Listener at VM startup") \
1793 \
1794 product(bool, EnableDynamicAgentLoading, true, \
1795 "Allow tools to load agents with the attach mechanism") \
1796 \
1797 product(bool, PrintConcurrentLocks, false, MANAGEABLE, \
1798 "Print java.util.concurrent locks in thread dump") \
1799 \
1800 product(bool, PrintMethodHandleStubs, false, DIAGNOSTIC, \
1801 "Print generated stub code for method handles") \
1802 \
1803 product(bool, VerifyMethodHandles, trueInDebug, DIAGNOSTIC, \
1804 "perform extra checks when constructing method handles") \
1805 \
1806 product(bool, IgnoreAssertUnsetFields, false, DIAGNOSTIC, \
1807 "Ignore assert_unset_fields") \
1808 \
1809 product(bool, ShowHiddenFrames, false, DIAGNOSTIC, \
1810 "show method handle implementation frames (usually hidden)") \
1811 \
1812 product(bool, ShowCarrierFrames, false, DIAGNOSTIC, \
1813 "show virtual threads' carrier frames in exceptions") \
1814 \
1815 product(bool, TrustFinalNonStaticFields, false, EXPERIMENTAL, \
1816 "trust final non-static declarations for constant folding") \
1817 \
1818 product(bool, FoldStableValues, true, DIAGNOSTIC, \
1819 "Optimize loads from stable fields (marked w/ @Stable)") \
1820 \
1821 product(int, UseBootstrapCallInfo, 1, DIAGNOSTIC, \
1822 "0: when resolving InDy or ConDy, force all BSM arguments to be " \
1823 "resolved before the bootstrap method is called; 1: when a BSM " \
1824 "that may accept a BootstrapCallInfo is detected, use that API " \
1825 "to pass BSM arguments, which allows the BSM to delay their " \
1826 "resolution; 2+: stress test the BCI API by calling more BSMs " \
1827 "via that API, instead of with the eagerly-resolved array.") \
1828 \
1960 "On internal errors, include registers in error report.") \
1961 \
1962 product(bool, UseSwitchProfiling, true, DIAGNOSTIC, \
1963 "leverage profiling for table/lookup switch") \
1964 \
1965 develop(bool, TraceMemoryWriteback, false, \
1966 "Trace memory writeback operations") \
1967 \
1968 JFR_ONLY(product(bool, FlightRecorder, false, \
1969 "(Deprecated) Enable Flight Recorder")) \
1970 \
1971 JFR_ONLY(product(ccstr, FlightRecorderOptions, nullptr, \
1972 "Flight Recorder options")) \
1973 \
1974 JFR_ONLY(product(ccstr, StartFlightRecording, nullptr, \
1975 "Start flight recording with options")) \
1976 \
1977 product(bool, UseFastUnorderedTimeStamps, false, EXPERIMENTAL, \
1978 "Use platform unstable time where supported for timestamps only") \
1979 \
1980 product_pd(bool, InlineTypePassFieldsAsArgs, \
1981 "Pass each inline type field as an argument at calls") \
1982 \
1983 product_pd(bool, InlineTypeReturnedAsFields, \
1984 "Return fields instead of an inline type reference") \
1985 \
1986 develop(bool, StressCallingConvention, false, \
1987 "Stress the scalarized calling convention.") \
1988 \
1989 develop(bool, PreloadClasses, true, \
1990 "Preloading all classes from the LoadableDescriptors attribute") \
1991 \
1992 product(ccstrlist, ForceNonTearable, "", DIAGNOSTIC, \
1993 "List of inline classes which are forced to be atomic " \
1994 "(whitespace and commas separate names, " \
1995 "and leading and trailing stars '*' are wildcards)") \
1996 \
1997 product(bool, DeoptimizeNMethodBarriersALot, false, DIAGNOSTIC, \
1998 "Make nmethod barriers deoptimise a lot.") \
1999 \
2000 develop(bool, VerifyCrossModifyFence, \
2001 false AARCH64_ONLY(DEBUG_ONLY(||true)), \
2002 "Mark all threads after a safepoint, and clear on a modify " \
2003 "fence. Add cleanliness checks.") \
2004 \
2005 product(bool, UseObjectMonitorTable, false, DIAGNOSTIC, \
2006 "Use a table to record inflated monitors rather than the first " \
2007 "word of the object.") \
2008 \
2009 product(int, FastLockingSpins, 13, DIAGNOSTIC, \
2010 "Specifies the number of times fast locking will attempt to " \
2011 "CAS the markWord before inflating. Between each CAS it will " \
2012 "spin for exponentially more time, resulting in a total number " \
2013 "of spins on the order of O(2^value)") \
2014 range(1, 30) \
2015 \
2016 product(uint, TrimNativeHeapInterval, 0, \
2035 product(bool, UseSecondarySupersCache, true, DIAGNOSTIC, \
2036 "Use secondary supers cache during subtype checks.") \
2037 \
2038 product(bool, UseSecondarySupersTable, false, DIAGNOSTIC, \
2039 "Use hash table to lookup secondary supers.") \
2040 \
2041 product(bool, VerifySecondarySupers, false, DIAGNOSTIC, \
2042 "Check that linear and hashed secondary lookups return the same result.") \
2043 \
2044 product(bool, StressSecondarySupers, false, DIAGNOSTIC, \
2045 "Use a terrible hash function in order to generate many collisions.") \
2046 \
2047 product(bool, UseThreadsLockThrottleLock, true, DIAGNOSTIC, \
2048 "Use an extra lock during Thread start and exit to alleviate" \
2049 "contention on Threads_lock.") \
2050 \
2051 develop(uint, BinarySearchThreshold, 16, \
2052 "Minimal number of elements in a sorted collection to prefer" \
2053 "binary search over simple linear search." ) \
2054 \
2055 product(bool, UseAltSubstitutabilityMethod, false, \
2056 "Use alternate version of the isSubstitutable method to " \
2057 "compare value class instances") \
2058
2059 // end of RUNTIME_FLAGS
2060
2061 DECLARE_FLAGS(LP64_RUNTIME_FLAGS)
2062 DECLARE_ARCH_FLAGS(ARCH_FLAGS)
2063 DECLARE_FLAGS(RUNTIME_FLAGS)
2064 DECLARE_FLAGS(RUNTIME_OS_FLAGS)
2065
2066 #endif // SHARE_RUNTIME_GLOBALS_HPP
|