147 "Insert EndGroup instructions to optimize for Power6.") \
148 \
149 /* Trap based checks. */ \
150 /* Trap based checks use the ppc trap instructions to check certain */ \
151 /* conditions. This instruction raises a SIGTRAP caught by the */ \
152 /* exception handler of the VM. */ \
153 product(bool, UseSIGTRAP, true, \
154 "Allow trap instructions that make use of SIGTRAP. Use this to " \
155 "switch off all optimizations requiring SIGTRAP.") \
156 product(bool, TrapBasedICMissChecks, true, \
157 "Raise and handle SIGTRAP if inline cache miss detected.") \
158 product(bool, TrapBasedNotEntrantChecks, true, \
159 "Raise and handle SIGTRAP if calling not entrant or zombie" \
160 " method.") \
161 product(bool, TraceTraps, false, "Trace all traps the signal handler" \
162 "handles.") \
163 \
164 product(bool, ZapMemory, false, "Write 0x0101... to empty memory." \
165 " Use this to ease debugging.") \
166 \
167 /* Use Restricted Transactional Memory for lock eliding */ \
168 product(bool, UseRTMLocking, false, \
169 "Enable RTM lock eliding for inflated locks in compiled code") \
170 \
171 experimental(bool, UseRTMForStackLocks, false, \
172 "Enable RTM lock eliding for stack locks in compiled code") \
173 \
174 product(bool, UseRTMDeopt, false, \
175 "Perform deopt and recompilation based on RTM abort ratio") \
176 \
177 product(uintx, RTMRetryCount, 5, \
178 "Number of RTM retries on lock abort or busy") \
179 \
180 experimental(intx, RTMSpinLoopCount, 100, \
181 "Spin count for lock to become free before RTM retry") \
182 \
183 experimental(intx, RTMAbortThreshold, 1000, \
184 "Calculate abort ratio after this number of aborts") \
185 \
186 experimental(intx, RTMLockingThreshold, 10000, \
187 "Lock count at which to do RTM lock eliding without " \
188 "abort ratio calculation") \
189 \
190 experimental(intx, RTMAbortRatio, 50, \
191 "Lock abort ratio at which to stop use RTM lock eliding") \
192 \
193 experimental(intx, RTMTotalCountIncrRate, 64, \
194 "Increment total RTM attempted lock count once every n times") \
195 \
196 experimental(intx, RTMLockingCalculationDelay, 0, \
197 "Number of milliseconds to wait before start calculating aborts " \
198 "for RTM locking") \
199 \
200 experimental(bool, UseRTMXendForLockBusy, true, \
201 "Use RTM Xend instead of Xabort when lock busy") \
202
203 #endif // CPU_PPC_VM_GLOBALS_PPC_HPP
|
147 "Insert EndGroup instructions to optimize for Power6.") \
148 \
149 /* Trap based checks. */ \
150 /* Trap based checks use the ppc trap instructions to check certain */ \
151 /* conditions. This instruction raises a SIGTRAP caught by the */ \
152 /* exception handler of the VM. */ \
153 product(bool, UseSIGTRAP, true, \
154 "Allow trap instructions that make use of SIGTRAP. Use this to " \
155 "switch off all optimizations requiring SIGTRAP.") \
156 product(bool, TrapBasedICMissChecks, true, \
157 "Raise and handle SIGTRAP if inline cache miss detected.") \
158 product(bool, TrapBasedNotEntrantChecks, true, \
159 "Raise and handle SIGTRAP if calling not entrant or zombie" \
160 " method.") \
161 product(bool, TraceTraps, false, "Trace all traps the signal handler" \
162 "handles.") \
163 \
164 product(bool, ZapMemory, false, "Write 0x0101... to empty memory." \
165 " Use this to ease debugging.") \
166 \
167 /* Use Restricted Transactional Memory for lock elision */ \
168 product(bool, UseRTMLocking, false, \
169 "Enable RTM lock eliding for inflated locks in compiled code") \
170 \
171 experimental(bool, UseRTMForStackLocks, false, \
172 "Enable RTM lock eliding for stack locks in compiled code") \
173 \
174 product(bool, UseRTMDeopt, false, \
175 "Perform deopt and recompilation based on RTM abort ratio") \
176 \
177 product(int, RTMRetryCount, 5, \
178 "Number of RTM retries on lock abort or busy") \
179 range(0, max_jint) \
180 \
181 experimental(int, RTMSpinLoopCount, 100, \
182 "Spin count for lock to become free before RTM retry") \
183 range(0, 32767) /* immediate operand limit on ppc */ \
184 \
185 experimental(int, RTMAbortThreshold, 1000, \
186 "Calculate abort ratio after this number of aborts") \
187 range(0, max_jint) \
188 \
189 experimental(int, RTMLockingThreshold, 10000, \
190 "Lock count at which to do RTM lock eliding without " \
191 "abort ratio calculation") \
192 range(0, max_jint) \
193 \
194 experimental(int, RTMAbortRatio, 50, \
195 "Lock abort ratio at which to stop use RTM lock eliding") \
196 range(0, 100) /* natural range, checked in vm_version_ppc.cpp */ \
197 \
198 experimental(int, RTMTotalCountIncrRate, 64, \
199 "Increment total RTM attempted lock count once every n times") \
200 range(1, 32767) /* immediate operand limit on ppc */ \
201 \
202 experimental(intx, RTMLockingCalculationDelay, 0, \
203 "Number of milliseconds to wait before start calculating aborts " \
204 "for RTM locking") \
205 \
206 experimental(bool, UseRTMXendForLockBusy, true, \
207 "Use RTM Xend instead of Xabort when lock busy") \
208
209 #endif // CPU_PPC_VM_GLOBALS_PPC_HPP
|