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