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