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