comparison src/share/vm/runtime/deoptimization.cpp @ 13713:cffcb8e38c4c

Deoptimization: only process the pendign speculation for Graal-compiled methods This avoid priting useless "No Speculation" messages for C1/C2 compiled methods
author Gilles Duboscq <duboscq@ssw.jku.at>
date Mon, 20 Jan 2014 19:48:53 +0100
parents f82eb515d58d
children a7cb9f383ec4
comparison
equal deleted inserted replaced
13712:190d29710e97 13713:cffcb8e38c4c
1368 1368
1369 methodHandle trap_method = trap_scope->method(); 1369 methodHandle trap_method = trap_scope->method();
1370 int trap_bci = trap_scope->bci(); 1370 int trap_bci = trap_scope->bci();
1371 #ifdef GRAAL 1371 #ifdef GRAAL
1372 oop speculation = thread->pending_failed_speculation(); 1372 oop speculation = thread->pending_failed_speculation();
1373 if (nm->is_compiled_by_graal()) {
1373 if (speculation != NULL) { 1374 if (speculation != NULL) {
1374 oop speculation_log = nm->speculation_log(); 1375 oop speculation_log = nm->speculation_log();
1375 if (speculation_log != NULL) { 1376 if (speculation_log != NULL) {
1376 if (TraceDeoptimization || TraceUncollectedSpeculations) { 1377 if (TraceDeoptimization || TraceUncollectedSpeculations) {
1377 if (SpeculationLog::lastFailed(speculation_log) != NULL) { 1378 if (SpeculationLog::lastFailed(speculation_log) != NULL) {
1390 thread->set_pending_failed_speculation(NULL); 1391 thread->set_pending_failed_speculation(NULL);
1391 } else { 1392 } else {
1392 if (TraceDeoptimization) { 1393 if (TraceDeoptimization) {
1393 tty->print_cr("No speculation"); 1394 tty->print_cr("No speculation");
1394 } 1395 }
1396 }
1397 } else {
1398 #ifdef ASSERT
1399 assert(speculation == NULL, "There should not be a speculation for method compiled by other compilers");
1400 #endif
1395 } 1401 }
1396 1402
1397 if (trap_bci == SynchronizationEntryBCI) { 1403 if (trap_bci == SynchronizationEntryBCI) {
1398 trap_bci = 0; 1404 trap_bci = 0;
1399 Thread::current()->set_pending_monitorenter(true); 1405 Thread::current()->set_pending_monitorenter(true);