Mercurial > hg > graal-jvmci-8
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); |