Mercurial > hg > truffle
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); |