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