diff src/share/vm/runtime/deoptimization.cpp @ 7660:0b646334c5f7

keep track of leafGraphIds only at the StructuredGraph level (see GRAAL-60)
author Lukas Stadler <lukas.stadler@jku.at>
date Fri, 01 Feb 2013 17:32:59 +0100
parents 310a68c63b69
children c6c72de0537e
line wrap: on
line diff
--- a/src/share/vm/runtime/deoptimization.cpp	Fri Feb 01 15:18:22 2013 +0100
+++ b/src/share/vm/runtime/deoptimization.cpp	Fri Feb 01 17:32:59 2013 +0100
@@ -209,13 +209,13 @@
   assert(deoptee.is_compiled_frame(), "Wrong frame type");
 
 #ifdef GRAAL
-  PcDesc* pc_desc = ((nmethod*) deoptee.cb())->pc_desc_at(deoptee.pc());
-  if (pc_desc != NULL && pc_desc->leaf_graph_id() != -1) {
-    GraalCompiler* compiler = (GraalCompiler*) ((nmethod*) deoptee.cb())->compiler();
+  nmethod* nm = (nmethod*) deoptee.cb();
+  GraalCompiler* compiler = (GraalCompiler*) nm->compiler();
+  for (jlong* p = nm->leaf_graph_ids_begin(); p != nm->leaf_graph_ids_end(); p++) {
     if (PrintDeoptimizationDetails) {
-      tty->print_cr("leaf graph id: %d", pc_desc->leaf_graph_id());
+      tty->print_cr("leaf graph id: %d", *p);
     }
-    compiler->deopt_leaf_graph(pc_desc->leaf_graph_id());
+    compiler->deopt_leaf_graph(*p);
   }
 #endif