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 \
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_LIGHTWEIGHT, \
1977 "Select locking mode: " \
1978 "0: monitors only (LM_MONITOR), " \
1979 "1: monitors & legacy stack-locking (LM_LEGACY), " \
1980 "2: monitors & new lightweight locking (LM_LIGHTWEIGHT, default)") \
1981 range(0, 2) \
1982 \
1983 product(uint, TrimNativeHeapInterval, 0, \
1984 "Interval, in ms, at which the JVM will trim the native heap if " \
1985 "the platform supports that. Lower values will reclaim memory " \
1986 "more eagerly at the cost of higher overhead. A value of 0 " \
1987 "(default) disables native heap trimming.") \
1988 range(0, UINT_MAX) \
1989 \
1990 develop(bool, SimulateFullAddressSpace, false, \
1991 "Simulates a very populated, fragmented address space; no " \
1992 "targeted reservations will succeed.") \
1993 \
1994 product(bool, ProfileExceptionHandlers, true, \
1995 "Profile exception handlers") \
1996 \
1997 product(bool, AlwaysRecordEvolDependencies, true, EXPERIMENTAL, \
1998 "Unconditionally record nmethod dependencies on class " \
1999 "rewriting/transformation independently of the JVMTI " \
2000 "can_{retransform/redefine}_classes capabilities.") \
2001
2002 // end of RUNTIME_FLAGS
|
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 develop(int, TinyClassPointerShift, 0, "") \
135 \
136 product(int, ObjectAlignmentInBytes, 8, \
137 "Default object alignment in bytes, 8 is minimum") \
138 range(8, 256) \
139 constraint(ObjectAlignmentInBytesConstraintFunc, AtParse)
140
141 #else
142 // !_LP64
143
144 #define LP64_RUNTIME_FLAGS(develop, \
145 develop_pd, \
146 product, \
147 product_pd, \
148 range, \
149 constraint)
150 const bool UseCompressedOops = false;
151 const bool UseCompressedClassPointers = false;
152 const bool UseCompactObjectHeaders = false;
153 const int ObjectAlignmentInBytes = 8;
154
155 #endif // _LP64
156
157 #define RUNTIME_FLAGS(develop, \
158 develop_pd, \
159 product, \
160 product_pd, \
161 range, \
162 constraint) \
163 \
164 develop(bool, CheckCompressedOops, true, \
165 "Generate checks in encoding/decoding code in debug VM") \
166 \
167 product(uintx, HeapSearchSteps, 3 PPC64_ONLY(+17), \
168 "Heap allocation steps through preferred address regions to find" \
169 " where it can allocate the heap. Number of steps to take per " \
170 "region.") \
171 range(1, max_uintx) \
172 \
1969 "Use platform unstable time where supported for timestamps only") \
1970 \
1971 product(bool, UseEmptySlotsInSupers, true, \
1972 "Allow allocating fields in empty slots of super-classes") \
1973 \
1974 product(bool, DeoptimizeNMethodBarriersALot, false, DIAGNOSTIC, \
1975 "Make nmethod barriers deoptimise a lot.") \
1976 \
1977 develop(bool, VerifyCrossModifyFence, \
1978 false AARCH64_ONLY(DEBUG_ONLY(||true)), \
1979 "Mark all threads after a safepoint, and clear on a modify " \
1980 "fence. Add cleanliness checks.") \
1981 \
1982 product(int, LockingMode, LM_LIGHTWEIGHT, \
1983 "Select locking mode: " \
1984 "0: monitors only (LM_MONITOR), " \
1985 "1: monitors & legacy stack-locking (LM_LEGACY), " \
1986 "2: monitors & new lightweight locking (LM_LIGHTWEIGHT, default)") \
1987 range(0, 2) \
1988 \
1989 product(bool, OMUseC2Cache, true, "") \
1990 \
1991 product(bool, OMC2UnrollCacheLookupLoopTail, true, "") \
1992 \
1993 product(int, OMC2UnrollCacheEntries, 0, "") \
1994 range(0, OMCache::CAPACITY) \
1995 \
1996 product(int, OMCacheSize, 8, "") \
1997 range(0, OMCache::CAPACITY) \
1998 \
1999 product(bool, OMShrinkCHT, false, "") \
2000 \
2001 product(int, OMSpins, 20, "") \
2002 \
2003 product(int, OMYields, 5, "") \
2004 \
2005 product(bool, OMCacheHitRate, false, "") \
2006 \
2007 product(bool, OMRecursiveFastPath, true, "Inflated recursion check first")\
2008 \
2009 product(uint, TrimNativeHeapInterval, 0, \
2010 "Interval, in ms, at which the JVM will trim the native heap if " \
2011 "the platform supports that. Lower values will reclaim memory " \
2012 "more eagerly at the cost of higher overhead. A value of 0 " \
2013 "(default) disables native heap trimming.") \
2014 range(0, UINT_MAX) \
2015 \
2016 develop(bool, SimulateFullAddressSpace, false, \
2017 "Simulates a very populated, fragmented address space; no " \
2018 "targeted reservations will succeed.") \
2019 \
2020 product(bool, ProfileExceptionHandlers, true, \
2021 "Profile exception handlers") \
2022 \
2023 product(bool, AlwaysRecordEvolDependencies, true, EXPERIMENTAL, \
2024 "Unconditionally record nmethod dependencies on class " \
2025 "rewriting/transformation independently of the JVMTI " \
2026 "can_{retransform/redefine}_classes capabilities.") \
2027
2028 // end of RUNTIME_FLAGS
|