Mercurial > hg > truffle
comparison src/share/vm/opto/parse1.cpp @ 20283:dbb05f6d93c4
8051344: JVM crashed in Compile::start() during method parsing w/ UseRTMDeopt turned on
Summary: call rtm_deopt() only if there were no compilation bailouts before.
Reviewed-by: kvn
author | fzhinkin |
---|---|
date | Mon, 28 Jul 2014 15:06:38 -0700 |
parents | 78bbf4d43a14 |
children | 411e30e5fbb8 |
comparison
equal
deleted
inserted
replaced
20282:f3aeae1f9fc5 | 20283:dbb05f6d93c4 |
---|---|
563 load_interpreter_state(osr_buf); | 563 load_interpreter_state(osr_buf); |
564 } else { | 564 } else { |
565 set_map(entry_map); | 565 set_map(entry_map); |
566 do_method_entry(); | 566 do_method_entry(); |
567 } | 567 } |
568 if (depth() == 1) { | 568 |
569 if (depth() == 1 && !failing()) { | |
569 // Add check to deoptimize the nmethod if RTM state was changed | 570 // Add check to deoptimize the nmethod if RTM state was changed |
570 rtm_deopt(); | 571 rtm_deopt(); |
571 } | 572 } |
572 | 573 |
573 // Check for bailouts during method entry. | 574 // Check for bailouts during method entry or RTM state check setup. |
574 if (failing()) { | 575 if (failing()) { |
575 if (log) log->done("parse"); | 576 if (log) log->done("parse"); |
576 C->set_default_node_notes(caller_nn); | 577 C->set_default_node_notes(caller_nn); |
577 return; | 578 return; |
578 } | 579 } |