comparison 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
comparison
equal deleted inserted replaced
7656:01aeaf194641 7660:0b646334c5f7
207 // Create a growable array of VFrames where each VFrame represents an inlined 207 // Create a growable array of VFrames where each VFrame represents an inlined
208 // Java frame. This storage is allocated with the usual system arena. 208 // Java frame. This storage is allocated with the usual system arena.
209 assert(deoptee.is_compiled_frame(), "Wrong frame type"); 209 assert(deoptee.is_compiled_frame(), "Wrong frame type");
210 210
211 #ifdef GRAAL 211 #ifdef GRAAL
212 PcDesc* pc_desc = ((nmethod*) deoptee.cb())->pc_desc_at(deoptee.pc()); 212 nmethod* nm = (nmethod*) deoptee.cb();
213 if (pc_desc != NULL && pc_desc->leaf_graph_id() != -1) { 213 GraalCompiler* compiler = (GraalCompiler*) nm->compiler();
214 GraalCompiler* compiler = (GraalCompiler*) ((nmethod*) deoptee.cb())->compiler(); 214 for (jlong* p = nm->leaf_graph_ids_begin(); p != nm->leaf_graph_ids_end(); p++) {
215 if (PrintDeoptimizationDetails) { 215 if (PrintDeoptimizationDetails) {
216 tty->print_cr("leaf graph id: %d", pc_desc->leaf_graph_id()); 216 tty->print_cr("leaf graph id: %d", *p);
217 } 217 }
218 compiler->deopt_leaf_graph(pc_desc->leaf_graph_id()); 218 compiler->deopt_leaf_graph(*p);
219 } 219 }
220 #endif 220 #endif
221 221
222 GrowableArray<compiledVFrame*>* chunk = new GrowableArray<compiledVFrame*>(10); 222 GrowableArray<compiledVFrame*>* chunk = new GrowableArray<compiledVFrame*>(10);
223 vframe* vf = vframe::new_vframe(&deoptee, &map, thread); 223 vframe* vf = vframe::new_vframe(&deoptee, &map, thread);