mirror of
https://github.com/JetBrains/JetBrainsRuntime.git
synced 2025-12-06 09:29:38 +01:00
8269574: C2: Avoid redundant uncommon traps in GraphKit::builtin_throw() for JVMTI exception events
Backport-of:72530ef666(cherry picked from commita575f5c090)
This commit is contained in:
committed by
Vitaly Provodin
parent
0eb220c53f
commit
d45fb152cd
@@ -529,13 +529,6 @@ void GraphKit::uncommon_trap_if_should_post_on_exceptions(Deoptimization::DeoptR
|
||||
void GraphKit::builtin_throw(Deoptimization::DeoptReason reason, Node* arg) {
|
||||
bool must_throw = true;
|
||||
|
||||
if (env()->jvmti_can_post_on_exceptions()) {
|
||||
// check if we must post exception events, take uncommon trap if so
|
||||
uncommon_trap_if_should_post_on_exceptions(reason, must_throw);
|
||||
// here if should_post_on_exceptions is false
|
||||
// continue on with the normal codegen
|
||||
}
|
||||
|
||||
// If this particular condition has not yet happened at this
|
||||
// bytecode, then use the uncommon trap mechanism, and allow for
|
||||
// a future recompilation if several traps occur here.
|
||||
@@ -598,6 +591,13 @@ void GraphKit::builtin_throw(Deoptimization::DeoptReason reason, Node* arg) {
|
||||
}
|
||||
if (failing()) { stop(); return; } // exception allocation might fail
|
||||
if (ex_obj != NULL) {
|
||||
if (env()->jvmti_can_post_on_exceptions()) {
|
||||
// check if we must post exception events, take uncommon trap if so
|
||||
uncommon_trap_if_should_post_on_exceptions(reason, must_throw);
|
||||
// here if should_post_on_exceptions is false
|
||||
// continue on with the normal codegen
|
||||
}
|
||||
|
||||
// Cheat with a preallocated exception object.
|
||||
if (C->log() != NULL)
|
||||
C->log()->elem("hot_throw preallocated='1' reason='%s'",
|
||||
|
||||
Reference in New Issue
Block a user