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