111 const size_t minimumStringTableSize = 128;
112 const size_t defaultSymbolTableSize = 32768; // 2^15
113 const size_t minimumSymbolTableSize = 1024;
114
115 #ifdef _LP64
116 #define LP64_RUNTIME_FLAGS(develop, \
117 develop_pd, \
118 product, \
119 product_pd, \
120 range, \
121 constraint) \
122 \
123 product(bool, UseCompressedOops, false, \
124 "Use 32-bit object references in 64-bit VM. " \
125 "lp64_product means flag is always constant in 32 bit VM") \
126 \
127 product(bool, UseCompressedClassPointers, true, \
128 "Use 32-bit class pointers in 64-bit VM. " \
129 "lp64_product means flag is always constant in 32 bit VM") \
130 \
131 product(int, ObjectAlignmentInBytes, 8, \
132 "Default object alignment in bytes, 8 is minimum") \
133 range(8, 256) \
134 constraint(ObjectAlignmentInBytesConstraintFunc, AtParse)
135
136 #else
137 // !_LP64
138
139 #define LP64_RUNTIME_FLAGS(develop, \
140 develop_pd, \
141 product, \
142 product_pd, \
143 range, \
144 constraint)
145 const bool UseCompressedOops = false;
146 const bool UseCompressedClassPointers = false;
147 const int ObjectAlignmentInBytes = 8;
148
149 #endif // _LP64
150
151 #define RUNTIME_FLAGS(develop, \
152 develop_pd, \
153 product, \
154 product_pd, \
155 range, \
156 constraint) \
157 \
158 develop(bool, CheckCompressedOops, true, \
159 "Generate checks in encoding/decoding code in debug VM") \
160 \
161 product(uintx, HeapSearchSteps, 3 PPC64_ONLY(+17), \
162 "Heap allocation steps through preferred address regions to find" \
163 " where it can allocate the heap. Number of steps to take per " \
164 "region.") \
165 range(1, max_uintx) \
166 \
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, \
1971 "Interval, in ms, at which the JVM will trim the native heap if " \
1972 "the platform supports that. Lower values will reclaim memory " \
1973 "more eagerly at the cost of higher overhead. A value of 0 " \
1974 "(default) disables native heap trimming.") \
1975 range(0, UINT_MAX) \
1976 \
1977 develop(bool, SimulateFullAddressSpace, false, \
1978 "Simulates a very populated, fragmented address space; no " \
1979 "targeted reservations will succeed.") \
1980 \
1981 product(bool, ProfileExceptionHandlers, true, \
1982 "Profile exception handlers") \
1983 \
1984 product(bool, AlwaysRecordEvolDependencies, true, EXPERIMENTAL, \
1985 "Unconditionally record nmethod dependencies on class " \
1986 "rewriting/transformation independently of the JVMTI " \
1987 "can_{retransform/redefine}_classes capabilities.") \
1988 \
1989 product(bool, UseSecondarySupersCache, true, DIAGNOSTIC, \
|
111 const size_t minimumStringTableSize = 128;
112 const size_t defaultSymbolTableSize = 32768; // 2^15
113 const size_t minimumSymbolTableSize = 1024;
114
115 #ifdef _LP64
116 #define LP64_RUNTIME_FLAGS(develop, \
117 develop_pd, \
118 product, \
119 product_pd, \
120 range, \
121 constraint) \
122 \
123 product(bool, UseCompressedOops, false, \
124 "Use 32-bit object references in 64-bit VM. " \
125 "lp64_product means flag is always constant in 32 bit VM") \
126 \
127 product(bool, UseCompressedClassPointers, true, \
128 "Use 32-bit class pointers in 64-bit VM. " \
129 "lp64_product means flag is always constant in 32 bit VM") \
130 \
131 product(bool, UseCompactObjectHeaders, false, EXPERIMENTAL, \
132 "Use compact 64-bit object headers in 64-bit VM") \
133 \
134 product(int, ObjectAlignmentInBytes, 8, \
135 "Default object alignment in bytes, 8 is minimum") \
136 range(8, 256) \
137 constraint(ObjectAlignmentInBytesConstraintFunc, AtParse)
138
139 #else
140 // !_LP64
141
142 #define LP64_RUNTIME_FLAGS(develop, \
143 develop_pd, \
144 product, \
145 product_pd, \
146 range, \
147 constraint)
148 const bool UseCompressedOops = false;
149 const bool UseCompressedClassPointers = false;
150 const bool UseCompactObjectHeaders = false;
151 const int ObjectAlignmentInBytes = 8;
152
153 #endif // _LP64
154
155 #define RUNTIME_FLAGS(develop, \
156 develop_pd, \
157 product, \
158 product_pd, \
159 range, \
160 constraint) \
161 \
162 develop(bool, CheckCompressedOops, true, \
163 "Generate checks in encoding/decoding code in debug VM") \
164 \
165 product(uintx, HeapSearchSteps, 3 PPC64_ONLY(+17), \
166 "Heap allocation steps through preferred address regions to find" \
167 " where it can allocate the heap. Number of steps to take per " \
168 "region.") \
169 range(1, max_uintx) \
170 \
1954 \
1955 product(bool, UseEmptySlotsInSupers, true, \
1956 "(Deprecated) Allow allocating fields in empty slots of " \
1957 "super-classes") \
1958 \
1959 product(bool, DeoptimizeNMethodBarriersALot, false, DIAGNOSTIC, \
1960 "Make nmethod barriers deoptimise a lot.") \
1961 \
1962 develop(bool, VerifyCrossModifyFence, \
1963 false AARCH64_ONLY(DEBUG_ONLY(||true)), \
1964 "Mark all threads after a safepoint, and clear on a modify " \
1965 "fence. Add cleanliness checks.") \
1966 \
1967 product(int, LockingMode, LM_LIGHTWEIGHT, \
1968 "Select locking mode: " \
1969 "0: monitors only (LM_MONITOR), " \
1970 "1: monitors & legacy stack-locking (LM_LEGACY), " \
1971 "2: monitors & new lightweight locking (LM_LIGHTWEIGHT, default)") \
1972 range(0, 2) \
1973 \
1974 product(bool, UseObjectMonitorTable, false, DIAGNOSTIC, \
1975 "With Lightweight Locking mode, use a table to record inflated " \
1976 "monitors rather than the first word of the object.") \
1977 \
1978 product(int, LightweightFastLockingSpins, 13, DIAGNOSTIC, \
1979 "Specifies the number of time lightweight fast locking will " \
1980 "attempt to CAS the markWord before inflating. Between each " \
1981 "CAS it will spin for exponentially more time, resulting in " \
1982 "a total number of spins on the order of O(2^value)") \
1983 range(1, 30) \
1984 \
1985 product(uint, TrimNativeHeapInterval, 0, \
1986 "Interval, in ms, at which the JVM will trim the native heap if " \
1987 "the platform supports that. Lower values will reclaim memory " \
1988 "more eagerly at the cost of higher overhead. A value of 0 " \
1989 "(default) disables native heap trimming.") \
1990 range(0, UINT_MAX) \
1991 \
1992 develop(bool, SimulateFullAddressSpace, false, \
1993 "Simulates a very populated, fragmented address space; no " \
1994 "targeted reservations will succeed.") \
1995 \
1996 product(bool, ProfileExceptionHandlers, true, \
1997 "Profile exception handlers") \
1998 \
1999 product(bool, AlwaysRecordEvolDependencies, true, EXPERIMENTAL, \
2000 "Unconditionally record nmethod dependencies on class " \
2001 "rewriting/transformation independently of the JVMTI " \
2002 "can_{retransform/redefine}_classes capabilities.") \
2003 \
2004 product(bool, UseSecondarySupersCache, true, DIAGNOSTIC, \
|