comparison src/share/vm/runtime/deoptimization.cpp @ 22441:fd3d534aecca

virtual object reallocation during deoptimization must always been done if INCLUDE_JVMCI is defined
author Doug Simon <doug.simon@oracle.com>
date Thu, 20 Aug 2015 21:56:50 +0200
parents c28cb37b2e1d
children f27c163d7dc2
comparison
equal deleted inserted replaced
22440:800a7b2335b0 22441:fd3d534aecca
226 bool realloc_failures = false; 226 bool realloc_failures = false;
227 227
228 #if defined(COMPILER2) || INCLUDE_JVMCI 228 #if defined(COMPILER2) || INCLUDE_JVMCI
229 // Reallocate the non-escaping objects and restore their fields. Then 229 // Reallocate the non-escaping objects and restore their fields. Then
230 // relock objects if synchronization on them was eliminated. 230 // relock objects if synchronization on them was eliminated.
231 #ifdef COMPILER2 231 #ifndef INCLUDE_JVMCI
232 if (DoEscapeAnalysis || EliminateNestedLocks) { 232 if (DoEscapeAnalysis || EliminateNestedLocks) {
233 if (EliminateAllocations) { 233 if (EliminateAllocations) {
234 #endif // COMPILER2 234 #endif // INCLUDE_JVMCI
235 assert (chunk->at(0)->scope() != NULL,"expect only compiled java frames"); 235 assert (chunk->at(0)->scope() != NULL,"expect only compiled java frames");
236 GrowableArray<ScopeValue*>* objects = chunk->at(0)->scope()->objects(); 236 GrowableArray<ScopeValue*>* objects = chunk->at(0)->scope()->objects();
237 237
238 // The flag return_oop() indicates call sites which return oop 238 // The flag return_oop() indicates call sites which return oop
239 // in compiled code. Such sites include java method calls, 239 // in compiled code. Such sites include java method calls,
272 } 272 }
273 if (save_oop_result) { 273 if (save_oop_result) {
274 // Restore result. 274 // Restore result.
275 deoptee.set_saved_oop_result(&map, return_value()); 275 deoptee.set_saved_oop_result(&map, return_value());
276 } 276 }
277 #ifdef COMPILER2 277 #ifndef INCLUDE_JVMCI
278 } 278 }
279 if (EliminateLocks) { 279 if (EliminateLocks) {
280 #endif // COMPILER2 280 #endif // INCLUDE_JVMCI
281 #ifndef PRODUCT 281 #ifndef PRODUCT
282 bool first = true; 282 bool first = true;
283 #endif 283 #endif
284 for (int i = 0; i < chunk->length(); i++) { 284 for (int i = 0; i < chunk->length(); i++) {
285 compiledVFrame* cvf = chunk->at(i); 285 compiledVFrame* cvf = chunk->at(i);
307 } 307 }
308 } 308 }
309 #endif 309 #endif
310 } 310 }
311 } 311 }
312 #ifdef COMPILER2 312 #ifndef INCLUDE_JVMCI
313 } 313 }
314 } 314 }
315 #endif // COMPILER2 315 #endif // INCLUDE_JVMCI
316 #endif // COMPILER2 || INCLUDE_JVMCI 316 #endif // COMPILER2 || INCLUDE_JVMCI
317 317
318 // Ensure that no safepoint is taken after pointers have been stored 318 // Ensure that no safepoint is taken after pointers have been stored
319 // in fields of rematerialized objects. If a safepoint occurs from here on 319 // in fields of rematerialized objects. If a safepoint occurs from here on
320 // out the java state residing in the vframeArray will be missed. 320 // out the java state residing in the vframeArray will be missed.