diff src/share/vm/shark/sharkFunction.cpp @ 7600:c095a7f289aa

8005818: Shark: fix OSR for non-empty incoming stack Reviewed-by: twisti Contributed-by: Roman Kennke <rkennke@redhat.com>
author twisti
date Fri, 11 Jan 2013 16:47:23 -0800
parents f95d63e2154a
children de6a9e811145
line wrap: on
line diff
--- a/src/share/vm/shark/sharkFunction.cpp	Fri Jan 11 16:47:23 2013 -0800
+++ b/src/share/vm/shark/sharkFunction.cpp	Fri Jan 11 16:47:23 2013 -0800
@@ -77,6 +77,10 @@
   // Walk the tree from the start block to determine which
   // blocks are entered and which blocks require phis
   SharkTopLevelBlock *start_block = block(flow()->start_block_num());
+  if (is_osr() && start_block->stack_depth_at_entry() != 0) {
+    env()->record_method_not_compilable("can't compile OSR block with incoming stack-depth > 0");
+    return;
+  }
   assert(start_block->start() == flow()->start_bci(), "blocks out of order");
   start_block->enter();