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