comparison src/share/vm/runtime/deoptimization.cpp @ 22466:5e61ca976049

documented other JVMCI-specific fields in JavaThread
author Doug Simon <doug.simon@oracle.com>
date Tue, 25 Aug 2015 15:01:40 +0200
parents f27c163d7dc2
children 02fc27dc1da7
comparison
equal deleted inserted replaced
22465:b14500c9da22 22466:5e61ca976049
1472 methodHandle trap_method = trap_scope->method(); 1472 methodHandle trap_method = trap_scope->method();
1473 int trap_bci = trap_scope->bci(); 1473 int trap_bci = trap_scope->bci();
1474 #if INCLUDE_JVMCI 1474 #if INCLUDE_JVMCI
1475 oop speculation = thread->pending_failed_speculation(); 1475 oop speculation = thread->pending_failed_speculation();
1476 if (nm->is_compiled_by_jvmci()) { 1476 if (nm->is_compiled_by_jvmci()) {
1477 if (speculation != NULL) { 1477 if (speculation != NULL) {
1478 oop speculation_log = nm->speculation_log(); 1478 oop speculation_log = nm->speculation_log();
1479 if (speculation_log != NULL) { 1479 if (speculation_log != NULL) {
1480 if (TraceDeoptimization || TraceUncollectedSpeculations) { 1480 if (TraceDeoptimization || TraceUncollectedSpeculations) {
1481 if (SpeculationLog::lastFailed(speculation_log) != NULL) { 1481 if (SpeculationLog::lastFailed(speculation_log) != NULL) {
1482 tty->print_cr("A speculation that was not collected by the compiler is being overwritten"); 1482 tty->print_cr("A speculation that was not collected by the compiler is being overwritten");
1483 }
1483 } 1484 }
1484 } 1485 if (TraceDeoptimization) {
1485 if (TraceDeoptimization) { 1486 tty->print_cr("Saving speculation to speculation log");
1486 tty->print_cr("Saving speculation to speculation log"); 1487 }
1487 } 1488 SpeculationLog::set_lastFailed(speculation_log, speculation);
1488 SpeculationLog::set_lastFailed(speculation_log, speculation); 1489 } else {
1490 if (TraceDeoptimization) {
1491 tty->print_cr("Speculation present but no speculation log");
1492 }
1493 }
1494 thread->set_pending_failed_speculation(NULL);
1489 } else { 1495 } else {
1490 if (TraceDeoptimization) { 1496 if (TraceDeoptimization) {
1491 tty->print_cr("Speculation present but no speculation log"); 1497 tty->print_cr("No speculation");
1492 } 1498 }
1493 } 1499 }
1494 thread->set_pending_failed_speculation(NULL);
1495 } else { 1500 } else {
1496 if (TraceDeoptimization) { 1501 assert(speculation == NULL, "There should not be a speculation for method compiled by non-JVMCI compilers");
1497 tty->print_cr("No speculation");
1498 }
1499 }
1500 } else {
1501 #ifdef ASSERT
1502 assert(speculation == NULL, "There should not be a speculation for method compiled by other compilers");
1503 #endif
1504 } 1502 }
1505 1503
1506 if (trap_bci == SynchronizationEntryBCI) { 1504 if (trap_bci == SynchronizationEntryBCI) {
1507 trap_bci = 0; 1505 trap_bci = 0;
1508 thread->set_pending_monitorenter(true); 1506 thread->set_pending_monitorenter(true);