comparison src/share/vm/runtime/deoptimization.cpp @ 3090:536528f48708

more escape analysis work: debug info
author Lukas Stadler <lukas.stadler@jku.at>
date Tue, 28 Jun 2011 19:14:28 +0200
parents 79165996a12d
children 4b63eb1197ca
comparison
equal deleted inserted replaced
3089:05b8a7787aaf 3090:536528f48708
204 vf = vf->sender(); 204 vf = vf->sender();
205 } 205 }
206 assert(vf->is_compiled_frame(), "Wrong frame type"); 206 assert(vf->is_compiled_frame(), "Wrong frame type");
207 chunk->push(compiledVFrame::cast(vf)); 207 chunk->push(compiledVFrame::cast(vf));
208 208
209 #ifdef COMPILER2 209 //#ifdef COMPILER2
210 // Reallocate the non-escaping objects and restore their fields. Then 210 // Reallocate the non-escaping objects and restore their fields. Then
211 // relock objects if synchronization on them was eliminated. 211 // relock objects if synchronization on them was eliminated.
212 if (DoEscapeAnalysis) { 212 // if (DoEscapeAnalysis) {
213 if (EliminateAllocations) { 213 // if (EliminateAllocations) {
214 assert (chunk->at(0)->scope() != NULL,"expect only compiled java frames"); 214 assert (chunk->at(0)->scope() != NULL,"expect only compiled java frames");
215 GrowableArray<ScopeValue*>* objects = chunk->at(0)->scope()->objects(); 215 GrowableArray<ScopeValue*>* objects = chunk->at(0)->scope()->objects();
216 216
217 // The flag return_oop() indicates call sites which return oop 217 // The flag return_oop() indicates call sites which return oop
218 // in compiled code. Such sites include java method calls, 218 // in compiled code. Such sites include java method calls,
252 } 252 }
253 if (save_oop_result) { 253 if (save_oop_result) {
254 // Restore result. 254 // Restore result.
255 deoptee.set_saved_oop_result(&map, return_value()); 255 deoptee.set_saved_oop_result(&map, return_value());
256 } 256 }
257 } 257 // }
258 if (EliminateLocks) { 258 // if (EliminateLocks) {
259 #ifndef PRODUCT 259 #ifndef PRODUCT
260 bool first = true; 260 bool first = true;
261 #endif 261 #endif
262 for (int i = 0; i < chunk->length(); i++) { 262 for (int i = 0; i < chunk->length(); i++) {
263 compiledVFrame* cvf = chunk->at(i); 263 compiledVFrame* cvf = chunk->at(i);
280 } 280 }
281 } 281 }
282 #endif 282 #endif
283 } 283 }
284 } 284 }
285 } 285 // }
286 } 286 // }
287 #endif // COMPILER2 287 //#endif // COMPILER2
288 // Ensure that no safepoint is taken after pointers have been stored 288 // Ensure that no safepoint is taken after pointers have been stored
289 // in fields of rematerialized objects. If a safepoint occurs from here on 289 // in fields of rematerialized objects. If a safepoint occurs from here on
290 // out the java state residing in the vframeArray will be missed. 290 // out the java state residing in the vframeArray will be missed.
291 No_Safepoint_Verifier no_safepoint; 291 No_Safepoint_Verifier no_safepoint;
292 292
707 Threads::deoptimized_wrt_marked_nmethods(); 707 Threads::deoptimized_wrt_marked_nmethods();
708 return 0; 708 return 0;
709 } 709 }
710 710
711 711
712 #ifdef COMPILER2 712 //#ifdef COMPILER2
713 bool Deoptimization::realloc_objects(JavaThread* thread, frame* fr, GrowableArray<ScopeValue*>* objects, TRAPS) { 713 bool Deoptimization::realloc_objects(JavaThread* thread, frame* fr, GrowableArray<ScopeValue*>* objects, TRAPS) {
714 Handle pending_exception(thread->pending_exception()); 714 Handle pending_exception(thread->pending_exception());
715 const char* exception_file = thread->exception_file(); 715 const char* exception_file = thread->exception_file();
716 int exception_line = thread->exception_line(); 716 int exception_line = thread->exception_line();
717 thread->clear_pending_exception(); 717 thread->clear_pending_exception();
949 k->oop_print_on(obj(), tty); 949 k->oop_print_on(obj(), tty);
950 } 950 }
951 } 951 }
952 } 952 }
953 #endif 953 #endif
954 #endif // COMPILER2 954 //#endif // COMPILER2
955 955
956 vframeArray* Deoptimization::create_vframeArray(JavaThread* thread, frame fr, RegisterMap *reg_map, GrowableArray<compiledVFrame*>* chunk) { 956 vframeArray* Deoptimization::create_vframeArray(JavaThread* thread, frame fr, RegisterMap *reg_map, GrowableArray<compiledVFrame*>* chunk) {
957 957
958 #ifndef PRODUCT 958 #ifndef PRODUCT
959 if (TraceDeoptimization) { 959 if (TraceDeoptimization) {