Skip to content

Commit a0a3060

Browse files
8353638: C2: deoptimization and re-execution cycle with StringBuilder
Reviewed-by: thartmann, chagedorn
1 parent a6ebcf6 commit a0a3060

File tree

2 files changed

+5
-1
lines changed

2 files changed

+5
-1
lines changed

src/hotspot/share/opto/runtime.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -2037,7 +2037,7 @@ static const TypeFunc* make_rethrow_Type() {
20372037
void OptoRuntime::deoptimize_caller_frame(JavaThread *thread, bool doit) {
20382038
// Deoptimize the caller before continuing, as the compiled
20392039
// exception handler table may not be valid.
2040-
if (!StressCompiledExceptionHandlers && doit) {
2040+
if (DeoptimizeOnAllocationException && doit) {
20412041
deoptimize_caller_frame(thread);
20422042
}
20432043
}

src/hotspot/share/runtime/globals.hpp

+4
Original file line numberDiff line numberDiff line change
@@ -650,6 +650,10 @@ const int ObjectAlignmentInBytes = 8;
650650
develop(bool, StressCompiledExceptionHandlers, false, \
651651
"Exercise compiled exception handlers") \
652652
\
653+
product(bool, DeoptimizeOnAllocationException, false, DIAGNOSTIC, \
654+
"Deoptimize on exception during allocation instead of using the " \
655+
"compiled exception handlers") \
656+
\
653657
develop(bool, InterceptOSException, false, \
654658
"Start debugger when an implicit OS (e.g. null pointer) " \
655659
"exception happens") \

0 commit comments

Comments
 (0)