792 range(min_intx, max_intx) \
793 \
794 product(bool, EagerXrunInit, false, \
795 "Eagerly initialize -Xrun libraries; allows startup profiling, " \
796 "but not all -Xrun libraries may support the state of the VM " \
797 "at this time") \
798 \
799 product(bool, PreserveAllAnnotations, false, \
800 "Preserve RuntimeInvisibleAnnotations as well " \
801 "as RuntimeVisibleAnnotations") \
802 \
803 develop(uintx, PreallocatedOutOfMemoryErrorCount, 4, \
804 "Number of OutOfMemoryErrors preallocated with backtrace") \
805 \
806 product(bool, UseXMMForArrayCopy, false, \
807 "Use SSE2 MOVQ instruction for Arraycopy") \
808 \
809 notproduct(bool, PrintFieldLayout, false, \
810 "Print field layout for each class") \
811 \
812 /* Need to limit the extent of the padding to reasonable size. */\
813 /* 8K is well beyond the reasonable HW cache line size, even with */\
814 /* aggressive prefetching, while still leaving the room for segregating */\
815 /* among the distinct pages. */\
816 product(int, ContendedPaddingWidth, 128, \
817 "How many bytes to pad the fields/classes marked @Contended with")\
818 range(0, 8192) \
819 constraint(ContendedPaddingWidthConstraintFunc,AfterErgo) \
820 \
821 product(bool, EnableContended, true, \
822 "Enable @Contended annotation support") \
823 \
824 product(bool, RestrictContended, true, \
825 "Restrict @Contended to trusted classes") \
826 \
827 product(int, DiagnoseSyncOnValueBasedClasses, 0, DIAGNOSTIC, \
828 "Detect and take action upon identifying synchronization on " \
829 "value based classes. Modes: " \
830 "0: off; " \
831 "1: exit with fatal error; " \
1957 "On internal errors, include registers in error report.") \
1958 \
1959 product(bool, UseSwitchProfiling, true, DIAGNOSTIC, \
1960 "leverage profiling for table/lookup switch") \
1961 \
1962 develop(bool, TraceMemoryWriteback, false, \
1963 "Trace memory writeback operations") \
1964 \
1965 JFR_ONLY(product(bool, FlightRecorder, false, \
1966 "(Deprecated) Enable Flight Recorder")) \
1967 \
1968 JFR_ONLY(product(ccstr, FlightRecorderOptions, nullptr, \
1969 "Flight Recorder options")) \
1970 \
1971 JFR_ONLY(product(ccstr, StartFlightRecording, nullptr, \
1972 "Start flight recording with options")) \
1973 \
1974 product(bool, UseFastUnorderedTimeStamps, false, EXPERIMENTAL, \
1975 "Use platform unstable time where supported for timestamps only") \
1976 \
1977 product(bool, UseEmptySlotsInSupers, true, \
1978 "Allow allocating fields in empty slots of super-classes") \
1979 \
1980 product(bool, DeoptimizeNMethodBarriersALot, false, DIAGNOSTIC, \
1981 "Make nmethod barriers deoptimise a lot.") \
1982 \
1983 develop(bool, VerifyCrossModifyFence, \
1984 false AARCH64_ONLY(DEBUG_ONLY(||true)), \
1985 "Mark all threads after a safepoint, and clear on a modify " \
1986 "fence. Add cleanliness checks.") \
1987 \
1988 product(int, LockingMode, LM_LEGACY, \
1989 "Select locking mode: " \
1990 "0: monitors only (LM_MONITOR), " \
1991 "1: monitors & legacy stack-locking (LM_LEGACY, default), " \
1992 "2: monitors & new lightweight locking (LM_LIGHTWEIGHT)") \
1993 range(0, 2) \
1994 \
1995 product(uint, TrimNativeHeapInterval, 0, EXPERIMENTAL, \
1996 "Interval, in ms, at which the JVM will trim the native heap if " \
|
792 range(min_intx, max_intx) \
793 \
794 product(bool, EagerXrunInit, false, \
795 "Eagerly initialize -Xrun libraries; allows startup profiling, " \
796 "but not all -Xrun libraries may support the state of the VM " \
797 "at this time") \
798 \
799 product(bool, PreserveAllAnnotations, false, \
800 "Preserve RuntimeInvisibleAnnotations as well " \
801 "as RuntimeVisibleAnnotations") \
802 \
803 develop(uintx, PreallocatedOutOfMemoryErrorCount, 4, \
804 "Number of OutOfMemoryErrors preallocated with backtrace") \
805 \
806 product(bool, UseXMMForArrayCopy, false, \
807 "Use SSE2 MOVQ instruction for Arraycopy") \
808 \
809 notproduct(bool, PrintFieldLayout, false, \
810 "Print field layout for each class") \
811 \
812 notproduct(bool, PrintInlineLayout, false, \
813 "Print field layout for each inline type") \
814 \
815 notproduct(bool, PrintFlatArrayLayout, false, \
816 "Print array layout for each inline type array") \
817 \
818 product(intx, FlatArrayElementMaxSize, -1, \
819 "Max size for flattening inline array elements, <0 no limit") \
820 \
821 product(intx, InlineFieldMaxFlatSize, 128, \
822 "Max size for flattening inline type fields, <0 no limit") \
823 \
824 product(intx, FlatArrayElementMaxOops, 4, \
825 "Max nof embedded object references in an inline type to flatten, <0 no limit") \
826 \
827 product(bool, InlineArrayAtomicAccess, false, \
828 "Atomic inline array accesses by-default, for all inline arrays") \
829 \
830 /* Need to limit the extent of the padding to reasonable size. */\
831 /* 8K is well beyond the reasonable HW cache line size, even with */\
832 /* aggressive prefetching, while still leaving the room for segregating */\
833 /* among the distinct pages. */\
834 product(int, ContendedPaddingWidth, 128, \
835 "How many bytes to pad the fields/classes marked @Contended with")\
836 range(0, 8192) \
837 constraint(ContendedPaddingWidthConstraintFunc,AfterErgo) \
838 \
839 product(bool, EnableContended, true, \
840 "Enable @Contended annotation support") \
841 \
842 product(bool, RestrictContended, true, \
843 "Restrict @Contended to trusted classes") \
844 \
845 product(int, DiagnoseSyncOnValueBasedClasses, 0, DIAGNOSTIC, \
846 "Detect and take action upon identifying synchronization on " \
847 "value based classes. Modes: " \
848 "0: off; " \
849 "1: exit with fatal error; " \
1975 "On internal errors, include registers in error report.") \
1976 \
1977 product(bool, UseSwitchProfiling, true, DIAGNOSTIC, \
1978 "leverage profiling for table/lookup switch") \
1979 \
1980 develop(bool, TraceMemoryWriteback, false, \
1981 "Trace memory writeback operations") \
1982 \
1983 JFR_ONLY(product(bool, FlightRecorder, false, \
1984 "(Deprecated) Enable Flight Recorder")) \
1985 \
1986 JFR_ONLY(product(ccstr, FlightRecorderOptions, nullptr, \
1987 "Flight Recorder options")) \
1988 \
1989 JFR_ONLY(product(ccstr, StartFlightRecording, nullptr, \
1990 "Start flight recording with options")) \
1991 \
1992 product(bool, UseFastUnorderedTimeStamps, false, EXPERIMENTAL, \
1993 "Use platform unstable time where supported for timestamps only") \
1994 \
1995 product(bool, EnableValhalla, true, \
1996 "Enable experimental Valhalla features") \
1997 \
1998 product_pd(bool, InlineTypePassFieldsAsArgs, \
1999 "Pass each inline type field as an argument at calls") \
2000 \
2001 product_pd(bool, InlineTypeReturnedAsFields, \
2002 "Return fields instead of an inline type reference") \
2003 \
2004 develop(bool, StressCallingConvention, false, \
2005 "Stress the scalarized calling convention.") \
2006 \
2007 product(bool, UseArrayMarkWordCheck, NOT_LP64(false) LP64_ONLY(true), \
2008 "Use bits in the mark word to check for flat/null-free arrays") \
2009 \
2010 product(ccstrlist, ForceNonTearable, "", DIAGNOSTIC, \
2011 "List of inline classes which are forced to be atomic " \
2012 "(whitespace and commas separate names, " \
2013 "and leading and trailing stars '*' are wildcards)") \
2014 \
2015 product(bool, UseEmptySlotsInSupers, true, \
2016 "Allow allocating fields in empty slots of super-classes") \
2017 \
2018 product(bool, DeoptimizeNMethodBarriersALot, false, DIAGNOSTIC, \
2019 "Make nmethod barriers deoptimise a lot.") \
2020 \
2021 develop(bool, VerifyCrossModifyFence, \
2022 false AARCH64_ONLY(DEBUG_ONLY(||true)), \
2023 "Mark all threads after a safepoint, and clear on a modify " \
2024 "fence. Add cleanliness checks.") \
2025 \
2026 product(int, LockingMode, LM_LEGACY, \
2027 "Select locking mode: " \
2028 "0: monitors only (LM_MONITOR), " \
2029 "1: monitors & legacy stack-locking (LM_LEGACY, default), " \
2030 "2: monitors & new lightweight locking (LM_LIGHTWEIGHT)") \
2031 range(0, 2) \
2032 \
2033 product(uint, TrimNativeHeapInterval, 0, EXPERIMENTAL, \
2034 "Interval, in ms, at which the JVM will trim the native heap if " \
|