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